Transformationen nach BigQuery verschieben

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

Weitere Informationen finden Sie unter Transformationsübersicht.

Hinweis

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

Push-down für die Transformation 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-Benutzeroberfläche 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 Pushdown aus.

    Push-down für die Transformation aktivieren

  6. Klicken Sie auf Push-down für Transformation aktivieren.

  7. Konfigurieren Sie das 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. Ein Dataset ist in einem Kundenprojekt enthalten. 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.
    • Service File File Path (Pfad der Dienstkontodatei) (optional): Pfad im lokalen Dateisystem des Dienstkontoschlüssels, der für die Autorisierung verwendet wird. Kann bei der Ausführung auf einem Dataproc-Cluster auf auto-detect gesetzt werden. Bei der Ausführung auf anderen Clustern muss die Datei auf jedem Knoten im Cluster vorhanden sein. Der Standardwert ist auto-detect.

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

    • Projekt-ID (optional): Google Cloud-Projekt-ID, die ein Projekt eindeutig identifiziert. Sie finden es im Dashboard in der Konsole. Standardmäßig wird das aktuelle Projekt verwendet, in dem die Instanz ausgeführt wird.

    • Name des temporären Buckets (optional): Der Google Cloud Storage-Bucket, in dem temporäre Daten gespeichert werden sollen. Sie wird automatisch erstellt, wenn sie nicht vorhanden, aber nicht automatisch gelöscht wird. Cloud Storage-Daten werden nach dem Laden in BigQuery gelöscht. Wenn kein Wert angegeben ist, wird ein eindeutiger Bucket erstellt und nach Abschluss der Pipelineausführung gelöscht. Das Dienstkonto muss berechtigt sein, im konfigurierten Projekt Buckets zu erstellen.

    • 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 aufbewahren (optional): Wählen Sie diese Option aus, um alle temporären BigQuery-Tabellen beizubehalten, die während der Pipelineausführung erstellt wurden. Kann zu Debugging- und Validierungszwecken verwendet werden. Der Standardwert ist No.

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

    • Jobpriorität (optional): Die Priorität, die zum Ausführen von BigQuery-Jobs verwendet wird. Wählen Sie eine der folgenden Optionen aus:

      • Batch: Ein Batchjob wird in die Warteschlange gestellt und gestartet, sobald Ressourcen verfügbar sind – meist innerhalb von ein paar Minuten. Wenn der Job nicht innerhalb von drei Stunden gestartet wird, wird die Priorität auf interactive gesetzt.

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

Leistungsänderungen in den Logs beobachten

Die Pipeline-Laufzeitlogs enthalten Nachrichten, die die SQL-Abfragen enthalten, die in BigQuery ausgeführt werden. Sie können überwachen, welche Phasen der Pipeline an BigQuery übertragen werden.

Das folgende Beispiellog zeigt die Logeinträge zu Beginn der Pipelineausführung. Die Logs geben an, dass Joins in der Pipeline BigQuery zur Ausführung nach unten verschoben 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 an der Push-down-Ausführung beteiligten Datasets zugewiesen werden:

  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>

Wenn die Ausführung fortgesetzt wird, zeigen die Logs den Abschluss der Push-Phasen und schließlich die Ausführung der Join-Vorgänge. 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 Vorgang Pull abgeschlossen wurde. Dies weist darauf hin, dass der BigQuery-Exportvorgang ausgelöst wurde und 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 Ausführung der Pipeline Fehler auftreten, werden sie in den Logs angezeigt.

Weitere Informationen zur Ausführung der BigQuery-JOIN-Vorgänge (z. B. Ressourcennutzung, Ausführungszeit, Fehlerursachen) können Sie anhand der gefundenen Job-ID abrufen. in den Joblogs.

Nächste Schritte