Skip to content

Add tap-oracle-godzilla extractor#2237

Closed
Hamza-Bouali wants to merge 9 commits intomeltano:mainfrom
Hamza-Bouali:main
Closed

Add tap-oracle-godzilla extractor#2237
Hamza-Bouali wants to merge 9 commits intomeltano:mainfrom
Hamza-Bouali:main

Conversation

@Hamza-Bouali
Copy link
Copy Markdown
Contributor

Add tap-oracle-godzilla extractor

Description

This PR adds tap-oracle-godzilla, a modern Singer tap for Oracle databases built with the Meltano Singer SDK and the latest oracledb Python driver.

Features

  • Modern oracledb driver (2.0+) - thin and thick mode support
  • SQLAlchemy 2.0+ - auto-discovery with type mapping for Oracle-specific types
  • Python 3.10–3.14 - full compatibility with modern Python versions
  • Service name & SID support - flexible Oracle connection options
  • Schema & table filtering - optimize discovery performance
  • Incremental replication - efficient data sync with state management
  • Complete Singer capabilities - catalog, discover, state, about

Why Add This?

The existing pipelinewise-tap-oracle (s7clarke10 variant) relies on the legacy cx_Oracle driver and is no longer actively maintained. This modern implementation:

  • Uses the actively maintained oracledb driver (modern, performant)
  • Supports latest SQLAlchemy and Python versions
  • Built on the Singer SDK standard architecture
  • Fully open source on GitHub with active development

Installation

meltano add extractor tap-oracle-godzilla

PyPI Package

https://pypi.org/project/tap-oracle-godzilla/

Repository

https://github.com/Hamza-Bouali/tap-oracle

Settings Supported

  • host - Oracle hostname
  • port - Oracle port (default 1521)
  • user - Oracle username
  • password - Oracle password
  • service_name - Service name (preferred for PDB connections)
  • sid - System ID (alternative connection method)
  • filter_schemas - Comma-separated schema names
  • filter_tables - Array of tables (SCHEMA-TABLE format)
  • cursor_array_size - Batch fetch size (default 1000)
  • thick_mode - Use thick mode for oracledb driver
  • https_proxy - Proxy URL for connections
  • start_date - ISO format start date for incremental replication

Testing

  • ✅ Validated discovery against real Oracle databases (23MB+ catalogs)
  • ✅ Type mapping tested with NUMBER, CLOB, BLOB, XMLTYPE, SDO_GEOMETRY
  • ✅ Service name vs SID connection methods verified
  • ✅ Schema filtering performance optimized
  • ✅ PyPI package published and installable

Related Issues

Modernizes Oracle extraction for data ELT/ELT pipelines using Singer SDK standards.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 1, 2026

Deploy Preview for meltano-hub ready!

Name Link
🔨 Latest commit 177e738
🔍 Latest deploy log https://app.netlify.com/projects/meltano-hub/deploys/69d7edd5cc12220008308db3
😎 Deploy Preview https://deploy-preview-2237--meltano-hub.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 1, 2026

Testing plugin tap-oracle-godzilla (null variant):

Starting test job...
...
Job completed.

Usage info
melty-bot % meltano invoke tap-oracle-godzilla --help
Detected capabilities
  • ❌ 'discover'
  • ❌ 'catalog'
  • ❌ 'properties'
  • ❌ 'state'
  • ❌ 'about'

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 1, 2026

Testing plugin tap-oracle-godzilla (hamza-bouali variant):

Starting test job...
...
Job completed.

Usage info
melty-bot % meltano invoke tap-oracle-godzilla --help
Detected capabilities
  • ❌ 'discover'
  • ❌ 'catalog'
  • ❌ 'properties'
  • ❌ 'state'
  • ❌ 'about'

@Hamza-Bouali Hamza-Bouali reopened this Apr 1, 2026
@Hamza-Bouali
Copy link
Copy Markdown
Contributor Author

@edgarrmondragon i think that you might intereset in this ?

@Hamza-Bouali Hamza-Bouali marked this pull request as draft April 4, 2026 18:23
@Hamza-Bouali Hamza-Bouali marked this pull request as ready for review April 4, 2026 18:30
@Hamza-Bouali Hamza-Bouali marked this pull request as draft April 4, 2026 18:30
@Hamza-Bouali Hamza-Bouali marked this pull request as ready for review April 4, 2026 18:30
Comment thread _data/maintainers.yml Outdated
Copy link
Copy Markdown
Collaborator

@edgarrmondragon edgarrmondragon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Hamza-Bouali!

Does the "Godzilla" qualifier means this is for a source different from the one supported by https://hub.meltano.com/extractors/tap-oracle?

If so, it makes sense to have this as a distinct extractor as this PR currently does. Otherwise, it would be preferable to make it a new variant of tap-oracle.

@Hamza-Bouali
Copy link
Copy Markdown
Contributor Author

Hamza-Bouali commented Apr 4, 2026

@edgarrmondragon
Yes, because the last version of Python supported by tap-oracle was 3.11, so I thought it maybe better to create a modern one, starting from Python 3.13, so it can be maintained for a long period (5 years at least).

so i think it is a good idea to just change the variant name

and thank you for the correction :)

@edgarrmondragon
Copy link
Copy Markdown
Collaborator

This is on my TODO list for tomorrow

@edgarrmondragon
Copy link
Copy Markdown
Collaborator

I'll make this a new variant then.

@edgarrmondragon
Copy link
Copy Markdown
Collaborator

superseded by #2240, since I can't push to this branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants