Learn how to configure DAG lineage in Airflow using inlets and outlets. Supports tables, dashboards, pipelines, and more with or without ingestion packages.
Regardless of the Airflow ingestion process you follow (Workflow,
Lineage Backend or Lineage Operator),
Collate will try to extract the lineage information based on the tasks inlets and outlets.What’s important to consider here is that when Collate ingests Airflow lineage, it is actually building a graph:
Table A (node) -> DAG (edge) -> Table B (node)
Where tables are nodes and DAGs (Pipelines) are considered edges. This means that the correct way of setting these
parameters is by making sure that both inlets and outlets are informed, so that Collate has the nodes to build
the relationship.
Tip: Collate supports lineage for the following entities: Table, Container, Dashboard, DashboardDataModel, Pipeline, Topic, SearchIndex, REST API, and MlModel.Moreover, note that this example requires the openmetadata-ingestion package to be installed. If you plan to
ingest the Airflow metadata (and lineage) externally and don’t want to install it, see the next section.
Specify the lineage dependencies among different groups of tables. In the example above, the lineage is not built
from all inlets to all outlets, but rather grouped by key (group_A and group_B).
This means that after this lineage is processed, the relationship will be:
Container A (node) -> DAG (edge) -> Table B (node)
and
Table X (node) -> DAG (edge) -> Table Y (node)
It does not matter in which task of the DAG these inlet/outlet information is specified. During the ingestion process,
Collate groups all these details at the DAG level.
Configuring Lineage Without the openmetadata-ingestion Package
Apply the same example as above, but describe the lineage in dictionaries instead, to avoid requiring
the openmetadata-ingestion package to be installed in the environment.
Tip: Make sure to add the table Fully Qualified Name (FQN), which is the unique name of the table in Collate.This name is composed as serviceName.databaseName.schemaName.tableName.
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.