Acceldata OpenLineage
Custom OpenLineage extractors for Acceldata. Adds a dbtCloud run facet to
DbtCloudRunJobOperator lineage events so ADOC can link Airflow tasks to dbt Cloud
runs (InterPipelineRunLink).
By default, the extractor also delegates to Airflow's built-in dbt Cloud OpenLineage integration. If the Acceldata dbt Cloud Data Source connector already collects detailed dbt lineage, you can disable that delegation (see below).
Prerequisites
OpenLineage must already be enabled in Airflow, plus:
| Component | Notes |
|---|---|
| Apache Airflow | 2.10+ |
apache-airflow-providers-openlineage |
Custom extractors |
apache-airflow-providers-dbt-cloud |
DbtCloudRunJobOperator |
Install
Install on workers, scheduler, and triggerer (if used):
pip install acceldata-openlineage==1.1.0
Restart Airflow processes after install.
Setup
1. Register the extractor
Append to existing extractors (semicolon-separated); do not replace the full list unless intended:
# airflow.cfg
[openlineage]
extractors = acceldata_openlineage.extractors.dbt.dbt_cloud.DbtCloudRunJobOperatorExtractor
Or via environment variable:
AIRFLOW__OPENLINEAGE__EXTRACTORS=acceldata_openlineage.extractors.dbt.dbt_cloud.DbtCloudRunJobOperatorExtractor
Composer: add the package under PyPI packages, set
AIRFLOW__OPENLINEAGE__EXTRACTORS under Environment variables, then apply
the environment update.
2. dbt Cloud connection
| Field | Value |
|---|---|
| Conn Id | Same as dbt_cloud_conn_id (default: dbt_cloud_default) |
| Login | dbt Cloud Account ID |
| Password | dbt Cloud API token |
If account_id is unset on the operator, dbtCloudAccountId is taken from the
connection login.
3. Verify
Run a DbtCloudRunJobOperator task and check logs for Attached dbtCloud facet.
On COMPLETE / FAIL the facet should include dbtCloudRunId, dbtCloudJobId, and
dbtCloudAccountId.
Built-in dbt artifact extraction (optional)
1.1.0+. The setting dbt_cloud_lineage_extraction_enabled controls whether
the extractor delegates to Airflow's built-in dbt Cloud OpenLineage methods
(get_openlineage_facets_on_*).
| Value | Behavior |
|---|---|
true (default) |
Built-in extraction runs (same as prior releases). |
false |
Built-in extraction is skipped. Task-level events and the dbtCloud facet are still emitted. |
Set to false when the Acceldata dbt Cloud Data Source connector already
collects model/test/dataset lineage in ADOC and you only need orchestration
lineage plus the dbtCloud linking facet from Airflow.
[openlineage]
dbt_cloud_lineage_extraction_enabled = false
AIRFLOW__OPENLINEAGE__DBT_CLOUD_LINEAGE_EXTRACTION_ENABLED=false
Restart scheduler and workers after changing this.
Note: built-in extraction also requires wait_for_termination=True on the
operator. With wait_for_termination=False, artifact extraction is already a
no-op regardless of this flag.
dbtCloud facet
| Field | Source |
|---|---|
dbtCloudRunId |
operator.run_id |
dbtCloudJobId |
operator.job_id |
dbtCloudAccountId |
operator.account_id, or connection login |
Present on COMPLETE / FAIL once run_id is set (START only if the run was reused).
Troubleshooting
- No facet — confirm the extractor path in config, package on the worker, and
task reached COMPLETE / FAIL with a
run_id. - Missing
dbtCloudAccountId— setaccount_idon the operator or Account ID in the connection login. - Flag has no effect — set
wait_for_termination=Trueto test; withFalse, built-in extraction never runs anyway. - Duplicate lineage or upstream errors (
KeyError: 'host',catalog.json404) — setdbt_cloud_lineage_extraction_enabled = false.
Metadata
Release files for acceldata-openlineage 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| acceldata_openlineage-1.1.0.tar.gz | 7.8 kB | Without provenance | Details for acceldata_openlineage-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| acceldata_openlineage-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for acceldata_openlineage-1.1.0-py3-none-any.whl |
Total release size: 15.2 kB
Release files / acceldata_openlineage-1.1.0.tar.gz
| Download URL | acceldata_openlineage-1.1.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8beff5b9f37e08d2e901da4180e3af91e8c0faf3784cde3c1e625cbb66697b87
|
|
BLAKE2b-256 checksum How to use checksums |
9c11c1cdba1701e69c78bb00563a9d22aba30fe94d6622e9acd050cde30f20b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / acceldata_openlineage-1.1.0-py3-none-any.whl
| Download URL | acceldata_openlineage-1.1.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f7a9bb99ceb53fe4eb028b83603d6720758da148244706ff7490551ffe86b13
|
|
BLAKE2b-256 checksum How to use checksums |
e8389423d957df55004b547b5dfd277ff03c1a5dd6842b16ee4538547aeb45ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for acceldata-openlineage 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.