Open Data Discovery Platform local demo environment
May 25, 2023 · View on GitHub
The following is a set of instructions to run ODD Platform locally using docker and docker-compose. This configuration is basic and best suited as a demo sandbox.
This environment consists of:
- ODD Platform – an application that ingests, structurizes, indexes and provides a collected metadata via REST API and UI
- ODD Platform Enricher – a tool to inject a metadata sample into the Platform
- PostgreSQL sample database
- ODD Collector – a lightweight service which gathers metadata from all your data sources
Prerequisites
- Docker Engine 19.03.0+
- Preferably the latest docker-compose
Step 1: Configuring and running ODD Platform with a metadata sample in it
Assumptions
-
Ports 5432 and 8080 are free. Commands to check that might be:
- Linux/Mac:
lsof -i -P -n | grep LISTEN | grep <PORT_NUMBER> - Windows Powershell:
Get-NetTCPConnection | where Localport -eq <PORT_NUMBER> | select Localport,OwningProcess
Replace
<PORT_NUMBER>with 5432 and 8080. Empty output means that the port is free and ready to go. - Linux/Mac:
Execution
Run from the project root folder docker-compose -f docker/demo.yaml up -d odd-platform-enricher.
Result
- Open http://localhost:8080/management/datasources in your browser
You should be able to see 10 predefined data sources in the list
- Go to the Catalog section
You should be able to see metadata sample injected into the Platform
Step 2: Configuring and running Collector to gather metadata from the sample data source
Create Collector entity
- Go to the http://localhost:8080/management/collectors and select
Add collector - Complete the following fields:
- Name
- Namespace (optional)
- Description (optional)
- Click Save. Your collector should appear in the list
- Copy the token by clicking Copy right to the token value
Configure and run the Collector
- Paste the token obtained in the previous step into the
docker/config/collector_config.yamlfile under thetokenentry - If you'd like, you may change the name of the
postgresqlplugin under thenameentry. - Save the changed file and run from the project root folder
docker-compose -f docker/demo.yaml up -d odd-collector.
Result
- Open http://localhost:8080/management/datasources in your browser
You should be able to see a new data source with the name you've passed into the collector_config.yaml file
(Default is postgresql-step2-test). Overall you should see 11 data sources in the list
- Go to the Catalog section. Select the created data source in the
Datasourcesfilter
You should be able to see 11 new entities of different types injected into the Platform
Step 3 (Optional): Configuring and running Collector to gather metadata from your own data sources
Assumptions
- You've done Step 1 and Step 2
- You already have locally accessible data sources and want to ingest metadata from these data sources into the Platform
- These data sources are supported by Collectors:
Configure the existing Collector
- Add new entries under plugin list in the
docker/config/collector_config.yamlSee a documentation here - Restart the Collector by running from the project root folder
docker-compose -f docker/demo.yaml restart odd-collector
Result
You should be able to see new data sources and data entities that correspond with them
Troubleshooting
My entities from the sample data aren't shown in the platform.
Check the logs by running from the project root folder docker-compose -f docker/demo.yaml logs -f