OpenDataDiscovery Action for dbt
Project description
OpenDataDiscovery dbt tests metadata collecting
CLI tool helps run and ingest dbt test to platform.
It can be used as separated CLI tool or within ODD CLI package which provides some useful additional features for working with OpenDataDiscovery.
Supported adapters
Adapter | version |
---|---|
Snowflake | ^1.6 |
Postgres | ^1.6 |
Profiles inside the file looks different for each type of data source.
Snowflake host_settings value is created from field account
. Field value should be <account_identifier>
For example the URL for an account uses the following format: <account_identifier>
.snowflakecomputing.com
Example Snowflake account identifier hj1234.eu-central-1
.
Supported tests types
- Generic tests
- Singular tests. Currently Singular tests are not supported.
Installation
pip install odd-dbt
To see all available commands
odd_dbt_test --help
Example
For each command that involves sending information to OpenDataDiscovery platform exists set of env variables:
ODD_PLATFORM_HOST
- Where you platform isODD_PLATFORM_TOKEN
- Token for ingesting data to platform (How to create token?)DBT_DATA_SOURCE_ODDRN
- Unique oddrn string describes dbt source, i.e '//dbt/host/localhost'
It is recommended to add them as ENV variables or provide as flags to each command
export ODD_PLATFORM_HOST=http://localhost:8080
export ODD_PLATFORM_TOKEN=token***
export DBT_DATA_SOURCE_ODDRN=//dbt/host/localhost
Commands
create-datasource
- helps to register dbt as data source at OpenDataDiscovery platform. User later for ingesting metadata.
odd_dbt_test create-datasource --name=my_local_dbt --dbt-host=localhost
ingest-test
- Read results_run file under the target folder to parse and ingest metadata.
odd_dbt_test ingest-test --profile=my_profile
test
- Proxy command to dbt test
, then reads results_run file under the target folder to parse and ingest metadata.
odd_dbt_test test --profile=my_profile
Run commands programmatically
You could run that scrip to read, parse and ingest test results to the platform.
# ingest_test_result.py
from odd_dbt import config
from odd_dbt.domain.cli_args import CliArgs
from odd_dbt.libs.dbt import get_context
from odd_dbt.libs.odd import create_dbt_generator_from_oddrn
from odd_dbt.service.odd import ingest_entities
from odd_dbt.mapper.test_results import DbtTestMapper
from odd_dbt.mapper.lineage import DbtLineageMapper
cfg = config.Config() # All fields can be set manually or read from ENV variables
client = config.create_odd_client(host=cfg.odd_platform_host, token=cfg.odd_platform_token)
generator = create_dbt_generator_from_oddrn(oddrn=cfg.dbt_data_source_oddrn)
cli_args = CliArgs.default()
context = get_context(cli_args=cli_args)
# Ingest lineage
data_entities = DbtLineageMapper(context=context, generator=generator).map()
ingest_entities(data_entities, client)
# Or ingest test results
data_entities = DbtTestMapper(context=context, generator=generator).map()
ingest_entities(data_entities, client)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file odd_dbt-0.2.6.tar.gz
.
File metadata
- Download URL: odd_dbt-0.2.6.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.9.1 Linux/6.2.0-1011-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c86910a15d561be45b1746081136e2b5e6b3d78e8759d231edf240a18f64ffe |
|
MD5 | 1dc82703f84ec8fb22c6d8118bd6629b |
|
BLAKE2b-256 | 786c7781fc93f160aacab6e993ad96d306a17568410f75222121fdb594c7e62f |
File details
Details for the file odd_dbt-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: odd_dbt-0.2.6-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.9.1 Linux/6.2.0-1011-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a59ff29f962763a5d3c0aa55b46865e2973c46ecfae25278b0b1e2c1c1f56c5 |
|
MD5 | 7efa20abf7897751fd30bf3f851b60b0 |
|
BLAKE2b-256 | 6eae35666c4d8079111a91efb615c6634786aaee735069ed617a4aa7fc7002da |