Datenherkunft mit Knowledge Catalog

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Auf dieser Seite wird erläutert, wie Sie die Integration der Datenherkunft in Managed Airflow aktivieren.

Einbindung der Datenherkunft

Die Datenherkunft ist eine Knowledge Catalog-Funktion, mit der Sie verfolgen können, wie sich Daten durch Ihre Systeme bewegen – woher sie kommen, wohin sie übergeben werden und welche Transformationen auf sie angewendet werden.

Managed Airflow verwendet das Paket apache-airflow-providers-openlineage, um die Herkunftsereignisse zu generieren, die an die Data Lineage API gesendet werden.

Dieses Paket ist bereits in Managed Airflow-Umgebungen installiert. Wenn Sie eine andere Version dieses Pakets installieren, kann sich die Liste der unterstützten Operatoren ändern. Wir empfehlen, dies nur bei Bedarf zu tun und ansonsten die vorinstallierte Version des Pakets beizubehalten.

  • Die Datenherkunft ist für Umgebungen in denselben Regionen wie Knowledge Catalog-Regionen verfügbar, die die Datenherkunft unterstützen.

  • Wenn die Datenherkunft in Ihrer Managed Service for Apache Airflow-Umgebung aktiviert ist, meldet Managed Service for Apache Airflow Herkunftsinformationen an die Data Lineage API für DAGs, in denen einer der unterstützten Operatoren verwendet wird. Sie können auch benutzerdefinierte Lineage-Ereignisse senden, wenn Sie die Lineage für einen nicht unterstützten Operator melden möchten.

  • Sie können mit folgenden Tools auf Informationen zur Datenherkunft zugreifen:

    • Data Lineage API
    • Herkunftsgraphen für unterstützte Einträge in Knowledge Catalog. Weitere Informationen finden Sie in der Knowledge Catalog-Dokumentation unter Herkunftsgrafiken.

Wenn Sie eine Umgebung erstellen, wird die Integration der Datenherkunft automatisch aktiviert, wenn die folgenden Bedingungen erfüllt sind:

  • Die Data Lineage API ist in Ihrem Projekt aktiviert. Weitere Informationen finden Sie in der Knowledge Catalog-Dokumentation unter Data Lineage API aktivieren.

  • In Airflow ist kein benutzerdefiniertes Lineage-Backend konfiguriert.

Sie können die Datenherkunftsintegration deaktivieren, wenn Sie eine Umgebung erstellen.

Für eine vorhandene Umgebung können Sie die Integration der Datenherkunft jederzeit aktivieren oder deaktivieren.

Überlegungen zu Funktionen in Managed Service for Apache Airflow

In Managed Airflow wird in den folgenden Fällen ein RPC-Aufruf zum Erstellen von Lineage-Ereignissen ausgeführt:

  • Wenn eine Airflow-Aufgabe beginnt oder endet
  • Wenn eine DAG-Ausführung beginnt oder endet

Weitere Informationen zu diesen Entitäten finden Sie in der Knowledge Catalog-Dokumentation unter Lineage-Informationsmodell und Lineage API-Referenz.

Für den ausgegebenen Lineage-Traffic gelten Kontingente in der Data Lineage API. Managed Airflow verbraucht Schreibkontingent.

Die Preise für die Verarbeitung von Herkunftsdaten unterliegen der Herkunftspreisgestaltung. Hinweise zur Data Lineage

Leistungsüberlegungen in Managed Service for Apache Airflow

Die Data Lineage wird am Ende der Ausführung der Airflow-Aufgabe gemeldet. Im Durchschnitt dauert die Berichterstellung zur Datenherkunft etwa 1 bis 2 Sekunden.

Dies hat keine Auswirkungen auf die Leistung der Aufgabe selbst: Airflow-Aufgaben schlagen nicht fehl, wenn die Herkunft nicht erfolgreich an die Lineage API gemeldet wird. Die Hauptoperatorlogik ist davon nicht betroffen, aber die gesamte Aufgabeninstanz wird etwas länger ausgeführt, um die Daten zur Berichterstellungs-Lineage zu berücksichtigen.

In einer Umgebung, in der die Datenherkunft gemeldet wird, fallen geringfügig höhere Kosten an, da für die Meldung der Datenherkunft zusätzliche Zeit benötigt wird.

Compliance

Die Datenherkunft bietet unterschiedliche Supportstufen für Funktionen wie VPC Service Controls. Sehen Sie sich die Überlegungen zur Datenherkunft an, um sicherzustellen, dass die Supportstufen Ihren Umgebungsanforderungen entsprechen.

Hinweis

Prüfen, ob ein Operator unterstützt wird

Die Unterstützung der Datenherkunft wird vom Anbieterpaket bereitgestellt, in dem sich der Operator befindet:

  1. Sehen Sie in den Changelogs des Anbieterpakets, in dem sich der Operator befindet, nach Einträgen, die OpenLineage-Unterstützung hinzufügen.

    BigQueryToBigQueryOperator unterstützt OpenLineage beispielsweise ab apache-airflow-providers-google Version 11.0.0.

  2. Prüfen Sie die Version des Anbieterpakets, das von Ihrer Umgebung verwendet wird. Eine Liste der vorinstallierten Pakete für den in Ihrer Umgebung verwendeten Airflow-Build finden Sie hier. Sie können auch eine andere Version des Pakets in Ihrer Umgebung installieren.

Außerdem finden Sie auf der Seite Unterstützte Klassen in der apache-airflow-providers-openlineage-Dokumentation die neuesten unterstützten Operatoren.

Einbindung der Datenherkunft konfigurieren

Die Integration der Datenherkunft für Managed Service for Apache Airflow wird pro Umgebung verwaltet. Das bedeutet, dass die Aktivierung der Funktion zwei Schritte erfordert:

  1. Aktivieren Sie die Data Lineage API in Ihrem Projekt.
  2. Aktivieren Sie die Integration der Datenherkunft in einer bestimmten Managed Service for Apache Airflow-Umgebung.

Datenherkunft im Managed Service for Apache Airflow aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Wählen Sie den Tab Umgebungskonfiguration aus.

  4. Klicken Sie im Bereich Einbindung der Knowledge Catalog-Herkunft auf Bearbeiten.

  5. Wählen Sie im Bereich Knowledge Catalog-Herkunft einbinden die Option Einbindung in Knowledge Catalog-Herkunft aktivieren aus.

  6. Klicken Sie auf Speichern.

gcloud

Verwenden Sie das Argument --enable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-cloud-data-lineage-integration

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --enable-cloud-data-lineage-integration

Datenherkunft im Managed Service for Apache Airflow deaktivieren

Wenn Sie die Lineage-Integration in einer Managed Service for Apache Airflow-Umgebung deaktivieren, wird die Data Lineage API nicht deaktiviert. Wenn Sie die Lineage-Berichterstellung für Ihr Projekt vollständig deaktivieren möchten, deaktivieren Sie auch die Data Lineage API. Weitere Informationen finden Sie unter Dienste deaktivieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Wählen Sie den Tab Umgebungskonfiguration aus.

  4. Klicken Sie im Bereich Einbindung der Knowledge Catalog-Herkunft auf Bearbeiten.

  5. Wählen Sie im Bereich Einbindung der Knowledge Catalog-Herkunft die Option Einbindung in Knowledge Catalog-Herkunft deaktivieren aus.

  6. Klicken Sie auf Speichern.

gcloud

Verwenden Sie das Argument --disable-cloud-data-lineage-integration.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-cloud-data-lineage-integration

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-cloud-data-lineage-integration

Lineage-Ereignisse in unterstützten Operatoren senden

Wenn die Data Lineage aktiviert ist, senden unterstützte Operatoren automatisch Lineage-Ereignisse. Sie müssen Ihren DAG-Code nicht ändern.

Führen Sie beispielsweise die folgende Aufgabe aus:

task = BigQueryInsertJobOperator(
    task_id='snapshot_task',
    dag=dag,
    location='<dataset-location>',
    configuration={
        'query': {
            'query': 'SELECT * FROM dataset.tableA',
            'useLegacySql': False,
            'destinationTable': {
                'project_id': 'example-project',
                'dataset_id': 'dataset',
                'table_id': 'tableB',
            },
        }
    },
)

Dadurch wird das folgende Lineage-Diagramm in der Knowledge Catalog-Benutzeroberfläche erstellt:

Beispiel für ein Herkunftsgraph in der Knowledge Catalog-Benutzeroberfläche.
Abbildung 1. Beispiel für ein Herkunftsdiagramm für eine BigQuery-Tabelle in der Knowledge Catalog-Benutzeroberfläche.

Benutzerdefinierte Herkunftsereignisse senden

Sie können benutzerdefinierte Lineage-Ereignisse senden, wenn Sie die Lineage für einen Operator melden möchten, der nicht für die automatische Lineage-Berichterstellung unterstützt wird.

So senden Sie beispielsweise benutzerdefinierte Ereignisse mit:

  • BashOperator: Ändern Sie den Parameter inlets oder outlets in der Aufgabendefinition.
  • PythonOperator: Ändern Sie den Parameter task.inlets oder task.outlets in der Aufgabendefinition.
  • Sie können AUTO für den Parameter inlets verwenden. Dadurch wird der Wert auf den outlets der Upstream-Aufgabe festgelegt.

Im folgenden Beispiel wird die Verwendung von Ein- und Ausgängen demonstriert:

from airflow.composer.data_lineage.entities import BigQueryTable
from airflow.lineage import AUTO

...

bash_task = BashOperator(
    task_id="bash_task",
    dag=dag,
    bash_command="sleep 0",
    inlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table1",
        )
    ],
    outlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table2",
        )
    ],
)


def _python_task(task):
    print("Python task")


python_task = PythonOperator(
    task_id="python_task",
    dag=dag,
    python_callable=_python_task,
    inlets=[
        AUTO,
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table3",
        ),
    ],
    outlets=[
        BigQueryTable(
            project_id="example-project",
            dataset_id="dataset",
            table_id="table4",
        )
    ],
)

bash_task >> python_task

Dadurch wird das folgende Lineage-Diagramm in der Knowledge Catalog-Benutzeroberfläche erstellt:

Beispiel für ein Lineage-Diagramm für benutzerdefinierte Ereignisse in der Knowledge Catalog-Benutzeroberfläche.
Abbildung 2. Beispiel für ein Herkunftsdiagramm für mehrere BigQuery-Tabellen in der Knowledge Catalog-UI.

Lineage-Logs in Managed Service for Apache Airflow ansehen

Über den Link auf der Seite Umgebungskonfiguration im Abschnitt Knowledge Catalog-Integration für Datenherkunft können Sie Logs zur Datenherkunft aufrufen.

Fehlerbehebung

Wenn keine Herkunftsdaten an die Lineage API gemeldet werden oder Sie sie nicht im Knowledge Catalog sehen können, führen Sie die folgenden Schritte zur Fehlerbehebung aus:

  • Achten Sie darauf, dass die Data Lineage API im Projekt Ihrer Managed Service for Apache Airflow-Umgebung aktiviert ist.
  • Prüfen Sie, ob die Datenherkunftsintegration in der Managed Service for Apache Airflow-Umgebung aktiviert ist.
  • Prüfen Sie, ob der von Ihnen verwendete Operator in der automatischen Unterstützung für Lineage-Berichte enthalten ist. Weitere Informationen finden Sie unter Unterstützte Airflow-Operatoren.
  • Prüfen Sie die Lineage-Logs in Managed Service for Apache Airflow auf mögliche Probleme.

Nächste Schritte