Build and run ODD Collectors

Developer guide on how to build and run ODD Collectors

For instructions on how to run the ODD Platform and ODD Collectors locally in a Docker environment, please follow Try locally article.

ODD Collectors tech stack

There are 3 main collectors at the moment:

While ODD Collector AWS and ODD Collector GCP use boto3 and Google SDKs respectively, ODD Collector has a bunch dependencies for each data source.

General tech stack is:

  • Python

  • Poetry

  • asyncio

Prerequisites

Build ODD Collector into Docker container

Fork and clone a repository if you haven't done it already.

Go into the repository's root directory

Run the following command, replacing <tag> with any tag name you'd like

Run ODD Collector locally

Run ODD Platform locally as a target for ODD Collector

In order to run ODD Platform locally please follow this guide.

Activate environment

Go into the repository's root directory

Run following commands to create local python environment and install dependencies

Change your python context to created one.

Configure ODD Collector to send request to target catalog

Create collector in the ODD Platform and copy created token using this guide.

Configure collector-config.yaml using this as an example. Replace <COLLECTOR_TOKEN> with token obtained in the previous step.

Run ODD Collector

Run ODD Collector locally using following command:

How to implement new integration

Create configuration entry for new integration

Add new integration plugin derived from BasePlugin and register it in PluginFactory

Implement new integration

Each adapter module (i.e odd_collector.adapters.my_adapter) must have adapter.py python file. That file must have class derived from AbstractAdapter.

Make pull request to the origin repository

Please use this guide for making forks and pull requests

Troubleshooting

Running ODD Collector on M1

libraries pyodbc , confluent-kafka and grpcio have problem during installing and building project on M1 Macbooks.

Possible solution:

The easiest way is to add all export statements to your .bashrc/.zshrc file

Last updated