Push-down von Transformationen nach BigQuery

Auf dieser Seite wird beschrieben, wie Sie in Cloud Data Fusion JOIN-Transformationen per Push in BigQuery statt in Spark übertragen.

Weitere Informationen finden Sie in der Übersicht über den Transformations-Push-down.

Hinweis

Transformations-Push-down ist ab Version 6.5.0 verfügbar. Wenn Ihre Pipeline in einer früheren Umgebung ausgeführt wird, können Sie ein Upgrade Ihrer Instanz auf die neueste Version durchführen.

Transformations-Push-down in Ihrer Pipeline aktivieren

Console

  1. Zur Seite Instanzen.

    Zur Seite „VM-Instanzen“

  2. Öffnen Sie die gewünschte Instanz und rufen Sie in der Cloud Data Fusion-UI die Seite Pipelineliste auf.

  3. Wählen Sie die gewünschte bereitgestellte Pipeline aus, um sie in Pipeline Studio zu öffnen.

  4. Klicken Sie auf Konfigurieren.

  5. Wählen Sie den Tab Transformation-Push-down aus.

    Transformations-Push-down aktivieren

  6. Klicken Sie auf Transformations-Push-down aktivieren.

  7. Konfigurieren Sie den Transformations-Push-down:

    • BigQuery-Dataset (erforderlich): Der Name des BigQuery-Datasets, das zum Staging temporärer Tabellen für die BigQuery-Ausführung verwendet wird. Datasets sind Bestandteil eines Kundenprojekts. Datasets sind Container auf oberster Ebene, mit denen Sie den Zugriff auf Tabellen und Ansichten organisieren und steuern können.

    • Dienstkontotyp (optional): Wählen Sie eine der folgenden Optionen aus:

      • Dateipfad: Der Dateipfad, in dem sich das Dienstkonto befindet.
      • JSON: JSON-Inhalt des Dienstkontos.
    • Dateipfad des Dienstkontos (optional): Pfad im lokalen Dateisystem des Dienstkontoschlüssels, der für die Autorisierung verwendet wird. Kann bei Ausführung in einem Dataproc-Cluster auf auto-detect gesetzt werden. Bei der Ausführung in anderen Clustern muss die Datei auf jedem Knoten im Cluster vorhanden sein. Der Standardwert ist auto-detect.

    • JSON-Dienstkonto (optional): Inhalt der JSON-Datei des Dienstkontos.

    • Projekt-ID (optional): Google Cloud-Projekt-ID, die ein Projekt eindeutig identifiziert. Sie finden es in der Konsole auf dem Dashboard. Die Standardeinstellung ist das aktuelle Projekt, in dem die Instanz ausgeführt wird.

    • Name des temporären Buckets (optional): Google Cloud Storage-Bucket, in dem temporäre Daten gespeichert werden sollen. Es wird automatisch erstellt, wenn es nicht vorhanden ist, aber nicht automatisch gelöscht. Cloud Storage-Daten werden gelöscht, nachdem sie in BigQuery geladen wurden. Wenn keine Angabe gemacht wird, wird ein eindeutiger Bucket erstellt und nach Abschluss der Pipelineausführung gelöscht. Das Dienstkonto muss die Berechtigung zum Erstellen von Buckets im konfigurierten Projekt haben.

    • Standort (optional): Geben Sie den Standortnamen ein, an dem das BigQuery-Dataset erstellt wird. Dieser Wert wird ignoriert, wenn das Dataset oder der temporäre Bucket bereits vorhanden ist. Der Standardwert ist US multi-region.

    • BigQuery-Tabellen nach Abschluss speichern (optional): Wählen Sie diese Option aus, um alle temporären BigQuery-Tabellen beizubehalten, die während der Pipelineausführung erstellt wurden. Dies kann zu Debugging- und Validierungszwecken verwendet werden. Der Standardwert ist No.

    • Temporäre Tabellen-TTL (in Stunden) (optional): Legen Sie die Tabellen-TTL für temporäre BigQuery-Tabellen in der Anzahl der Stunden fest. Dies wird als Sicherung verwendet, wenn die Pipeline abrupt beendet und der Bereinigungsprozess unterbrochen wird (z. B. wenn der Ausführungscluster abrupt heruntergefahren wird). Wenn Sie diesen Wert auf 0 setzen, wird die Tabellen-TTL deaktiviert. Der Standardwert ist 72 (3 Tage).

    • Jobpriorität (optional): Priorität zur Ausführung von BigQuery-Jobs. Wählen Sie eine der folgenden Optionen aus:

      • Batch: Ein Batchjob wird in die Warteschlange gestellt und gestartet, sobald freie Ressourcen verfügbar sind, normalerweise innerhalb weniger Minuten. Wenn der Job nicht innerhalb von drei Stunden gestartet wird, wird die Priorität auf interactive geändert.

      • Interaktiv: Ein interaktiver Job wird so schnell wie möglich ausgeführt und auf die gleichzeitige und tägliche Ratenbegrenzung angerechnet.

Leistungsänderungen in den Logs überwachen

Die Laufzeitlogs der Pipeline enthalten Nachrichten, in denen die in BigQuery ausgeführten SQL-Abfragen angezeigt werden. Sie können kontrollieren, welche Phasen in der Pipeline per Push an BigQuery übertragen werden.

Das folgende Beispiellog zeigt die Logeinträge, wenn die Pipelineausführung beginnt. Die Logs geben an, dass Joins in Ihrer Pipeline zur Ausführung in BigQuery übertragen werden:

  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'Users' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'Users'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'UserPurchases' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'Purchases'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'UserPurchases'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'MostPopularNames' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'FirstNameCounts'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'MostPopularNames'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@193] - Starting pull for dataset 'MostPopularNames'

Das folgende Beispiel zeigt die Tabellennamen, die für jedes der Datasets zugewiesen werden, die an der Push-Ausführung beteiligt sind:

  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset Purchases stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserDetails stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset FirstNameCounts stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserProfile stored in table <TABLE_ID>

Während die Ausführung fortgesetzt wird, zeigen die Logs den Abschluss der Push-Phasen und schließlich die Ausführung der Join-Vorgänge an. Beispiel:

  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@235] - Executing join operation for dataset Users
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@118] - Creating table `<TABLE_ID>` using job: <JOB_ID> with SQL statement: SELECT `UserDetails`.id AS `id` , `UserDetails`.first_name AS `first_name` , `UserDetails`.last_name AS `last_name` , `UserDetails`.email AS `email` , `UserProfile`.phone AS `phone` , `UserProfile`.profession AS `profession` , `UserProfile`.age AS `age` , `UserProfile`.address AS `address` , `UserProfile`.score AS `score` FROM `your_project.your_dataset.<DATASET_ID>` AS `UserProfile` LEFT JOIN `your_project.your_dataset.<DATASET_ID>` AS `UserDetails` ON `UserProfile`.id = `UserDetails`.id
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@151] - Created BigQuery table `<TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@245] - Executed join operation for dataset Users

Wenn alle Phasen abgeschlossen sind, erhalten Sie eine Meldung, dass der Pull-Vorgang abgeschlossen wurde. Dies gibt an, dass der BigQuery-Exportprozess ausgelöst wurde und die Datensätze nach Beginn dieses Exportjobs in die Pipeline gelesen werden. Beispiel:

DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'

Wenn bei der Pipelineausführung Fehler auftreten, werden diese in den Logs angezeigt.

Für weitere Details zur Ausführung der BigQuery-JOIN-Vorgänge (z. B. Ressourcennutzung, Ausführungszeit, Fehlerursachen usw.) können Sie sich anhand der in den Joblogs angezeigten Job-ID die BigQuery-Jobdaten anzeigen lassen.

Weitere Informationen