Framework for customizing existing connectors of the OpenMetadata platform. Simply it allows replacing or extending the original implementation while still using the OpenMetadata UI integration of the connectors.
Existing connectors will be shadowed by the newly developed solutions.
Installations is similar to adding a custom connector, see Prepare the Ingestion Image
Additionally a config file needs to be provided, which enables the patching / shadowing of the existing connector.
patch-service-specs:
# <contrib implementation name>: <target connector>
"mariadb_example": mariadb
"kafka_example": kafkaFinally the patching can be executed with
patch-service-specsFor a whole example see Dockerfile
-
./srccontains the connector implementations like in the official OpenMetadata repository. The package structure needs to be identical except for the last connector name.service_spec.pyfiles should point the new customized implementation. It also provides some example connectors. -
local-openmetadata-stackcontains a Docker Compose file to deploy a Open Metadata instance locally. It should be started using theMakefilein the root directory.
The patch process can be configured with the config.yaml.
The config.yaml file needs to exist where the command patch-service-specs is executed.
patch-service-specs contains a list of connectors whose service_spec.py files should be patched.
patch-service-specs:
# <contrib implementation name>: <target connector>
"mariadb_example": mariadb
"kafka_example": kafkaThe modules names are derived from the directory in which the service_spec.py files are placed (for
src/ingestion_contrib/ingestion/source/database/mariadb_example/service_spec.py the config entry is mariadb_example).
- Setup a virtual environment for Python and install dependencies with
pip install -e . - Start local Docker containers with
make local-openmetadata-stack
- Set up a new service and ingestion in the Open Metadata dashboard at http://localhost:8585 to test custom connectors. Refer to the documentation for the various connectors for a step-by-step guide how to set them up.
Run make update-ingestion-container to restart the local Open Metadata stack with a rebuild of the ingestion container.