mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-24 09:50:01 +00:00
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
![]() |
"""
|
||
|
OpenMetadata Airflow Lineage Backend example. Airflow provides a pluggable lineage backend that can
|
||
|
read a DAG's configured inlets and outlets to compose a lineage. With OpenMetadata we have a airflow lineage backend
|
||
|
to get all of the workflows in Airflow and also any lineage user's configured.
|
||
|
Please refer to https://docs.open-metadata.org/lineage/configure-airflow-lineage on how to configure the lineage backend
|
||
|
with Airflow Scheduler
|
||
|
This is an example to demonstrate on how to configure a Airflow DAG's inlets and outlets
|
||
|
"""
|
||
|
|
||
|
|
||
|
from datetime import timedelta
|
||
|
|
||
|
from airflow.decorators import dag, task
|
||
|
from airflow.utils.dates import days_ago
|
||
|
|
||
|
from metadata.ingestion.models.table_metadata import Table
|
||
|
|
||
|
default_args = {
|
||
|
"owner": "openmetadata_airflow_example",
|
||
|
"depends_on_past": False,
|
||
|
"email": ["user@company.com"],
|
||
|
"execution_timeout": timedelta(minutes=5),
|
||
|
}
|
||
|
|
||
|
|
||
|
@dag(
|
||
|
default_args=default_args,
|
||
|
description="OpenMetadata Airflow Lineage example DAG",
|
||
|
schedule_interval=timedelta(days=1),
|
||
|
start_date=days_ago(1),
|
||
|
catchup=False,
|
||
|
)
|
||
|
def openmetadata_airflow_lineage_example():
|
||
|
@task(
|
||
|
inlets={
|
||
|
"tables": [
|
||
|
Table(fullyQualifiedName="bigquery.shopify.raw_order"),
|
||
|
Table(fullyQualifiedName="bigquery.shopify.raw_customer")
|
||
|
],
|
||
|
},
|
||
|
outlets={"tables": [Table(fullyQualifiedName="bigquery.shopify.fact_order")]},
|
||
|
)
|
||
|
def generate_data():
|
||
|
""" write your query to generate ETL"""
|
||
|
pass
|
||
|
|
||
|
generate_data()
|
||
|
|
||
|
openmetadata_airflow_lineage_example_dag = openmetadata_airflow_lineage_example()
|