Transformationen in BigQuery ausführen

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

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

Hinweis

Der 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

So aktivieren Sie den Transformations-Push-down in einer bereitgestellten Pipeline:

  1. Rufen Sie Ihre Instanz auf:

    1. Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.

    2. Wenn Sie die Instanz in Cloud Data Fusion Studio öffnen möchten, klicken Sie auf Instanzen und dann auf Instanz anzeigen.

      Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Menü > Liste.

    Der Tab „Bereitgestellte Pipeline“ wird geöffnet.

  3. Klicken Sie auf die gewünschte bereitgestellte Pipeline, um sie in Pipeline Studio zu öffnen.

  4. Klicken Sie auf Konfigurieren > Transformations-Push-down.

    Aktivieren Sie den Transformations-Push-down.

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

  6. Geben Sie im Feld Dataset einen BigQuery-Datasetnamen ein.

    Optional: Wenn Sie ein Makro verwenden möchten, klicken Sie auf M. Weitere Informationen finden Sie unter Datasets.

  7. Optional: Konfigurieren Sie bei Bedarf die Optionen.

  8. Klicken Sie auf Speichern.

Optionale Konfigurationen

.
Attribut Unterstützt Makros Unterstützte Cloud Data Fusion-Versionen Beschreibung
Verbindung verwenden Nein 6.7.0 und höher Gibt an, ob eine vorhandene Verbindung verwendet werden soll.
Verbindung Ja 6.7.0 und höher Der Name der Verbindung. Diese Verbindung enthält Informationen zum Projekt und zum Dienstkonto.
Optional: Verwenden Sie das Makro die Funktion, ${conn(connection_name)}.
Dataset-Projekt-ID Ja 6.5.0 Wenn sich das Dataset in einem anderen Projekt als dem befindet, in dem der BigQuery-Job ausgeführt wird, geben Sie die Projekt-ID des Datasets ein. Wenn kein Wert angegeben wird, wird standardmäßig die Projekt-ID verwendet, in der der Job ausgeführt wird.
Projekt-ID Ja 6.5.0 Die Google Cloud Projekt-ID.
Dienstkontotyp Ja 6.5.0 Wählen Sie eine der folgenden Optionen aus:
  • Dateipfad: Der Dateipfad zum Dienstkonto.
  • JSON: Der JSON-Inhalt des Dienstkontos.
Die Standardeinstellung ist JSON.
Dateipfad des Dienstkontos Ja 6.5.0 Der Pfad im lokalen Dateisystem zum Dienstkontoschlüssel, der für die Autorisierung verwendet wird. Bei der Ausführung in einem Managed Service for Apache Spark-Cluster ist er auf auto-detect festgelegt. Bei der Ausführung in anderen Clustern, muss die Datei auf jedem Knoten im Cluster vorhanden sein. Die Standardeinstellung ist auto-detect.
JSON-Dienstkonto Ja 6.5.0 Der Inhalt der JSON-Datei des Dienstkontos.
Name des temporären Buckets Ja 6.5.0 Der Cloud Storage-Bucket, in dem die temporären Daten gespeichert werden. Er wird automatisch erstellt, wenn er nicht vorhanden ist, aber nicht automatisch gelöscht. Die Cloud Storage-Daten werden gelöscht nachdem sie in BigQuery geladen wurden. Wenn dieser Wert nicht angegeben 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 Ja 6.5.0 Der Standort, an dem das BigQuery-Dataset erstellt wird. Dieser Wert wird ignoriert, wenn das Dataset oder der temporäre Bucket bereits vorhanden ist. Die Standardeinstellung ist der US multiregionale Standort.
Name des Verschlüsselungsschlüssels Ja 6.5.1/0.18.1 Der vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK), der Daten verschlüsselt, die in beliebige vom Plug-in erstellte Buckets, Datasets oder Tabellen geschrieben werden. Wenn der Bucket, das Dataset oder die Tabelle bereits vorhanden ist, wird dieser Wert ignoriert.
BigQuery-Tabellen nach Abschluss speichern Ja 6.5.0 Gibt an, ob alle temporären BigQuery-Tabellen die während der Pipelineausführung erstellt wurden, zu Debugging- und Validierungszwecken beibehalten werden sollen. Die Standardeinstellung ist Nein.
Temporäre Tabellen-TTL (in Stunden) Ja 6.5.0 Legen Sie die Tabellen-TTL für temporäre BigQuery-Tabellen in Stunden fest. Dies ist nützlich als Sicherung, wenn die Pipeline 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. Die Standardeinstellung ist 72 (3 Tage).
Priorität des Jobs Ja 6.5.0 Die Priorität, die zum Ausführen von BigQuery-Jobs verwendet wird. Wählen Sie eine der folgenden Optionen aus:
  1. 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 „Interaktiv“ geändert.
  2. Interaktiv: Ein interaktiver Job wird so schnell wie möglich ausgeführt und auf die gleichzeitige und tägliche Ratenbegrenzung angerechnet.
Die Standardeinstellung ist Batch.
Phasen, für die der Push-down erzwungen werden soll Ja 6.7.0 Unterstützte Phasen, die immer in BigQuery ausgeführt werden sollen. Jeder Phasenname muss in einer separaten Zeile stehen.
Phasen, für die der Push-down übersprungen werden soll Ja 6.7.0 Unterstützte Phasen, die niemals in BigQuery ausgeführt werden sollen. Jeder Phasenname muss in einer separaten Zeile stehen.
BigQuery Storage Read API verwenden Ja 6.7.0 Gibt an, ob die BigQuery Storage Read API verwendet werden soll, wenn während der Pipelineausführung Datensätze aus BigQuery extrahiert werden. Diese Option kann die Leistung des Transformations-Push-downs verbessern, verursacht aber zusätzliche Kosten. Dazu muss Scala 2.12 in der Ausführungsumgebung installiert sein.

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 Beispiel zeigt die Logeinträge, wenn die Pipelineausführung beginnt. Die Logs geben an, dass die JOIN-Vorgänge in Ihrer Pipeline zur Ausführung in BigQuery übertragen wurden:

  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 Pushdown-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, wird eine Meldung angezeigt, 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 beschrieben.

Details zur Ausführung der BigQuery-JOIN-Vorgänge, z. B. Ressourcennutzung, Ausführungszeit und Fehlerursachen, finden Sie in den BigQuery-Jobdaten. Verwenden Sie dazu die Job-ID, die in den Joblogs angezeigt wird.

Pipeline-Messwerte prüfen

Weitere Informationen zu den Messwerten, die Cloud Data Fusion für den Teil der Pipeline bereitstellt, der in BigQuery ausgeführt wird, finden Sie unter BigQuery-Push-down-Pipeline-Messwerte.

Nächste Schritte