Data Lineage mit Dataplex

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Integration 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, wohin sie übertragen werden und welche Transformationen darauf angewendet werden. Data Lineage ist verfügbar für:

Sobald die Funktion in Ihrer Cloud Composer-Umgebung aktiviert ist, führt das Ausführen von DAGs, die einen der unterstützten Operatoren verwenden, dazu, dass Cloud Composer Herkunftsinformationen an die Data Lineage API sendet.

Sie können dann folgendermaßen auf diese Informationen zugreifen:

Unterstützte Operatoren

Die folgenden Operatoren unterstützen automatische Lineage-Berichte 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',
            },
        }
    },
)

Zum Erstellen des folgenden Lineage-Diagramms in der Dataplex-UI:

Beispiel für ein Herkunftsdiagramm in der Dataplex-UI.
Abbildung 1. Beispiel für ein Herkunftsdiagramm für eine BigQuery-Tabelle in der Dataplex-UI.

Überlegungen zu Cloud Composer-Features

Bei jeder Ausführung einer Airflow-Aufgabe, die die Data Lineage meldet, wird Folgendes ausgeführt:

  • Eine RPC-Anfrage zum Erstellen oder Aktualisieren für einen Herkunftsprozess
  • Eine RPC-Anfrage zum Erstellen oder Aktualisieren 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.

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

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

Auswirkungen auf die Leistung

Die Data Lineage wird am Ende der Airflow-Taskausführung gemeldet. Im Durchschnitt dauert das Erstellen von Data-Lineage-Berichten etwa 1–2 Sekunden.

Dies wirkt sich nicht auf die Leistung der Aufgabe selbst aus: Airflow-Aufgaben schlagen nicht fehl, wenn Lineage nicht erfolgreich an die Lineage API gemeldet wird. Dies hat keine Auswirkungen auf die Hauptoperatorlogik, aber die gesamte Aufgabeninstanz wird etwas länger ausgeführt, um die Herkunftsdaten zu erfassen.

In einer Umgebung, in der die Datenherkunft gemeldet wird, fallen die damit verbundenen Kosten geringfügig an, da für die Berichterstellung der Datenherkunft zusätzliche Zeit erforderlich ist.

Compliance

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

Mit Data Lineage-Integration arbeiten

Data Lineage-Einbindung für Cloud Composer wird auf Umgebungsbasis 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

Wenn Sie eine Umgebung erstellen, ist die Einbindung von Data Lineage 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.

  • In Airflow ist kein benutzerdefiniertes Lineage-Back-End konfiguriert.

Für eine vorhandene Umgebung können Sie die Data Lineage-Integration jederzeit enable oder deaktivieren.

Erforderliche Rollen

Für die Einbindung in Data Lineage müssen dem Dienstkonto der Cloud Composer-Umgebung die folgenden Berechtigungen hinzugefügt werden:

  • Für die Standarddienstkonten: keine Änderungen erforderlich. Standarddienstkonten enthalten die erforderlichen Berechtigungen.
  • Gewähren Sie dem Dienstkonto für nutzerverwaltete Dienstkonten die Rolle des Composer-Workers (roles/composer.worker). Diese Rolle enthält 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 für einen Operator melden möchten, der nicht für automatische Herkunftsberichte unterstützt wird.

So senden Sie benutzerdefinierte Ereignisse beispielsweise 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. Wenn Sie AUTO für den Parameter inlets verwenden, wird dessen Wert auf den Wert outlets der vorgelagerten Aufgabe gesetzt.

Führen Sie beispielsweise diese Aufgabe aus:


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

Zum Erstellen des folgenden Lineage-Diagramms in der Dataplex-UI:

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

Data Lineage in Cloud Composer deaktivieren

Durch das Deaktivieren der Lineage-Einbindung in einer Cloud Composer-Umgebung wird die Data Lineage API nicht deaktiviert. Wenn Sie die Lineage-Berichte 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 Abschnitt Dataplex Data Lineage Integration auf Bearbeiten.

  5. Wählen Sie im Bereich Integration von Dataplex Data Lineage die Option Integration von 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 Data Lineage über den Link auf der Seite Umgebungskonfiguration im Abschnitt Integration von Dataplex Data Lineage prüfen.

Fehlerbehebung

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

  • Achten Sie darauf, dass die Data Lineage API im Projekt Ihrer Cloud Composer-Umgebung aktiviert ist.
  • 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 Unterstützung für automatisierte Berichte zu Herkunftsberichten enthalten ist. Siehe Unterstützte Airflow-Operatoren.
  • Prüfen Sie die Lineage-Logs in Cloud Composer auf mögliche Probleme.