Data Lineage mit Dataplex

Cloud Composer 1 Cloud Composer 2

Einbindung von Data Lineage

Data Lineage ist ein Dataplex-Feature, mit dem Sie verfolgen können, wie sich Daten durch Ihre Systeme bewegen: woher sie kommen, wo sie übergeben werden und welche Transformationen auf sie angewendet werden. Data Lineage ist verfügbar für:

Sobald das Feature in Ihrer Cloud Composer-Umgebung aktiviert ist, meldet Cloud Composer durch die Ausführung von DAGs, die einen der unterstützten Operatoren verwenden, Herkunftsinformationen an die Data Lineage API.

So können Sie dann auf diese Informationen zugreifen:

Unterstützte Operatoren

Die folgenden Operatoren unterstützen die automatische Herkunftsberichte in Cloud Composer:

  • airflow.providers.google.cloud.operators.bigquery.BigQueryExecuteQueryOperator
  • airflow.providers.google.cloud.operators.bigquery.BigQueryInsertJobOperator
  • airflow.providers.google.cloud.transfers.bigquery_to_bigquery.BigQueryToBigQueryOperator
  • airflow.contrib.operators.bigquery_to_gcs.BigQueryToCloudStorageOperator
  • airflow.providers.google.cloud.transfers.bigquery_to_gcs.BigQueryToGCSOperator
  • airflow.providers.google.cloud.transfers.gcs_to_bigquery.GCSToBigQueryOperator
  • airflow.contrib.operators.gcs_to_bq.GoogleCloudStorageToBigQueryOperator
  • airflow.providers.google.cloud.operators.dataproc.DataprocSubmitJobOperator

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': GCP_PROJECT,
                'dataset_id': 'dataset',
                'table_id': 'tableB',
            },
        }
    },
)

Führt zum Erstellen des folgenden Lineage-Diagramms in der Dataplex-UI:

Beispiel für Herkunftsdiagramm in der Dataplex-UI
Abbildung 1. Beispiel für das Herkunftsdiagramm einer BigQuery-Tabelle in der Dataplex-UI.

Überlegungen zu Features für Cloud Composer

Jede Ausführung von Airflow-Aufgaben, die Datenherkunft meldet, führt Folgendes aus:

  • Eine Erstellungs- oder Aktualisierungs-RPC-Anfrage für einen Herkunftsprozess
  • Eine Erstellungs- oder Aktualisierungs-RPC-Anfrage für eine Herkunftsausführung
  • Eine oder mehrere RPC-Anfragen zum Erstellen von Herkunftsereignissen (meist 0 oder 1)

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

Der ausgegebene Lineage-Traffic unterliegt den Kontingenten in der Data Lineage API. Cloud Composer verbraucht das Schreibkontingent.

Die Preise für die Verarbeitung von Herkunftsdaten unterliegen den Preisen für die Herkunft. Siehe Überlegungen zur Data-Lineage.

Auswirkungen auf die Leistung

Die Datenherkunft wird am Ende der Airflow-Taskausführung gemeldet. Im Durchschnitt dauert die Berichterstellung zur Herkunft der Daten etwa ein bis zwei Sekunden.

Dies wirkt sich nicht auf die Leistung der Aufgabe selbst aus: Airflow-Tasks schlagen nicht fehl, wenn Lineage nicht erfolgreich an die Lineage API gemeldet wurde. Dies hat keine Auswirkungen auf die Logik des Hauptoperators, aber die gesamte Aufgabeninstanz dauert etwas länger, um die Herkunftsdaten der Berichterstellung zu berücksichtigen.

Bei einer Umgebung, in der die Datenherkunft gemeldet wird, sind die Kosten etwas höher, da die Erstellung der Berichte über die Herkunft der Daten länger dauert.

Compliance

Data Lineage bietet verschiedene Supportstufen für Features wie VPC Service Controls. Lesen Sie die Überlegungen zur Datenherkunft, um sicherzustellen, dass die Supportstufen Ihren Umgebungsanforderungen entsprechen.

Data-Lineage-Integration nutzen

Die Einbindung von Data Lineage für Cloud Composer wird pro Umgebung verwaltet. Das bedeutet, dass für die Aktivierung der Funktion zwei Schritte erforderlich sind:

  1. Aktivieren Sie die Data Lineage API in Ihrem Projekt.
  2. Aktivieren Sie die Einbindung von Data Lineage in einer bestimmten Cloud Composer-Umgebung.

Hinweise

Beim Erstellen einer Umgebung wird die Data-Lineage-Integration automatisch aktiviert, wenn die folgenden Bedingungen erfüllt sind:

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

  • Ein benutzerdefiniertes Lineage-Back-End ist in Airflow nicht konfiguriert.

In einer vorhandenen Umgebung können Sie die Einbindung von Data Lineage jederzeit enable oder deaktivieren.

Erforderliche Rollen

Für die Integration in Data Lineage sind die folgenden Berechtigungen für das Dienstkonto der Cloud Composer-Umgebung erforderlich:

  • Für die Standarddienstkonten: keine Änderungen erforderlich. Standarddienstkonten enthalten die erforderlichen Berechtigungen.
  • Für nutzerverwaltete Dienstkonten: Weisen Sie Ihrem Dienstkonto die Rolle Composer-Worker (roles/composer.worker) zu. Diese Rolle umfasst alle erforderlichen Data-Lineage-Berechtigungen.

Weitere Informationen finden Sie in der Dataplex-Dokumentation unter Lineage-Rollen und ‐Berechtigungen.

Data Lineage in Cloud Composer 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 Abschnitt Dataplex Data Lineage-Integration auf Bearbeiten.

  5. Wählen Sie im Bereich Integration von Dataplex Data Lineage die Option Integration mit Dataplex Data Lineage aktivieren aus und 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:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein. Anhand des Umgebungsnamens werden Unterkomponenten für die Umgebung erstellt. Daher müssen Sie einen Namen angeben, der auch als Cloud Storage-Bucket-Name gültig ist. Eine Liste der Einschränkungen finden Sie in den Benennungsrichtlinien für Buckets.

  • LOCATION durch die Region für die Umgebung.

    Ein Standort ist die Region, in der sich der GKE-Cluster der Umgebung befindet.

Beispiel:

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

Benutzerdefinierte Herkunftsereignisse senden

Sie können benutzerdefinierte Herkunftsereignisse senden, wenn Sie die Herkunft eines Operators melden möchten, der für automatische Herkunftsberichte nicht unterstützt wird.

So senden Sie beispielsweise benutzerdefinierte Ereignisse mit:

  • BashOperator den Parameter inlets oder outlets in der Aufgabendefinition ändern.
  • PythonOperator den Parameter task.inlets oder task.outlets in der Aufgabendefinition ändern. Wenn Sie AUTO für den Parameter inlets verwenden, wird der Wert auf den outlets der vorgelagerten Aufgabe festgelegt.

Wenn Sie beispielsweise die folgende Aufgabe ausführen:


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=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table1',
   )],
   outlets=[BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table2',
   )]
)


def _python_task(task):
   task.inlets.append(BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table3',
   ))

   task.outlets.append(BigQueryTable(
       project_id=GCP_PROJECT,
       dataset_id='dataset',
       table_id='table4',
   ))


python_task = PythonOperator(
   task_id='python_task',
   dag=dag,
   python_callable=_python_task,
   inlets=[AUTO],
)

bash_task >> python_task

Führt zum Erstellen des folgenden Lineage-Diagramms in der Dataplex-UI:

Beispiel für das Herkunftsdiagramm für benutzerdefinierte Ereignisse in der Dataplex-UI.
Abbildung 2. Beispiel für Herkunftsdiagramm für mehrere BigQuery-Tabellen in der Dataplex-UI.

Data Lineage in Cloud Composer deaktivieren

Wenn Sie die Herkunftsintegration in einer Cloud Composer-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. Siehe 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 Abschnitt Dataplex Data Lineage-Integration auf Bearbeiten.

  5. Wählen Sie im Bereich Integration von Dataplex Data Lineage die Option Integration mit Dataplex Data Lineage deaktivieren aus und 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:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein. Anhand des Umgebungsnamens werden Unterkomponenten für die Umgebung erstellt. Daher müssen Sie einen Namen angeben, der auch als Cloud Storage-Bucket-Name gültig ist. Eine Liste der Einschränkungen finden Sie in den Benennungsrichtlinien für Buckets.

  • LOCATION durch die Region für die Umgebung.

    Ein Standort ist die Region, in der sich der GKE-Cluster der Umgebung befindet.

Beispiel:

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

Herkunftslogs in Cloud Composer ansehen

Sie können Logs im Zusammenhang mit der Datenherkunft über den Link auf der Seite Umgebungskonfiguration im Abschnitt Dataplex Data Lineage-Integration prüfen.

Fehlerbehebung

Wenn die Herkunftsdaten nicht an die Lineage API gemeldet werden oder diese in Dataplex nicht angezeigt werden, führen Sie die folgenden Schritte zur Fehlerbehebung aus:

  • Die Data Lineage API muss im Projekt Ihrer Cloud Composer-Umgebung aktiviert sein.
  • Prüfen Sie, ob die Einbindung von Data Lineage in der Cloud Composer-Umgebung aktiviert ist.
  • Prüfen Sie, ob der von Ihnen verwendete Anbieter in der automatischen Lineage-Berichterstellung enthalten ist. Siehe Unterstützte Airflow-Operatoren.
  • Prüfen Sie die Lineage-Logs in Cloud Composer auf mögliche Probleme.