Transformationen in BigQuery ausführen

Auf dieser Seite wird beschrieben, wie Sie Transformationen an BigQuery anstelle von Spark in Cloud Data Fusion ausführen.

Weitere Informationen finden Sie unter Übersicht über Transformation Pushdown.

Hinweise

Transformations-Pushdown 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-Pushdown in Ihrer Pipeline aktivieren

Console

So aktivieren Sie Transformations-Pushdown für eine bereitgestellte Pipeline:

  1. Rufen Sie die Instanz auf:

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

    2. Klicken Sie zum Öffnen der Instanz in der Cloud Data Fusion-Weboberfläche auf Instanzen und dann auf Instanz ansehen.

      Zur Seite „VM-Instanzen“

  2. Klicken Sie auf Menü > Liste.

    Der Tab für die 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 > Pushdown für Transformation.

    Pushdown-Transformation aktivieren

  5. Klicken Sie auf Transformations-Pushdown aktivieren.

  6. Geben Sie im Feld Dataset den Namen eines BigQuery-Datasets ein.

    Optional: Klicken Sie auf M, um ein Makro zu verwenden. Weitere Informationen finden Sie unter Datasets.

  7. Optional: Konfigurieren Sie die Optionen bei Bedarf.

  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.
Connection Ja 6.7.0 und höher Der Name der Verbindung. Über diese Verbindung werden Projekt- und Dienstkontoinformationen bereitgestellt.
Optional: Verwenden Sie das Makro ${conn(connection_name)}.
Dataset-Projekt-ID Ja 6.5.0 Wenn sich das Dataset in einem anderen Projekt befindet, in dem der BigQuery-Job ausgeführt wird, geben Sie die Projekt-ID des Datasets ein. Wenn kein Wert angegeben ist, 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:
  • File Path (Dateipfad): der Dateipfad zum Dienstkonto.
  • JSON: der JSON-Inhalt des Dienstkontos.
Der Standardwert ist JSON.
Dateipfad des Dienstkontos Ja 6.5.0 Der Pfad im lokalen Dateisystem zum Dienstkontoschlüssel, der für die Autorisierung verwendet wird. Er wird bei der Ausführung in einem Dataproc-Cluster auf auto-detect gesetzt. Bei der Ausführung in anderen Clustern muss die Datei auf jedem Knoten im Cluster vorhanden sein. Der Standardwert 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. Sie wird automatisch erstellt, wenn sie nicht vorhanden ist, aber sie wird nicht automatisch gelöscht. Die Cloud Storage-Daten werden gelöscht, nachdem sie in BigQuery geladen wurden. Wenn dieser Wert nicht angegeben ist, 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 multiregionale US.
Name des Verschlüsselungsschlüssels Ja 6.5.1/0.18.1 Der vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK), mit dem Daten verschlüsselt werden, 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 aufbewahren Ja 6.5.0 Gibt an, ob alle temporären BigQuery-Tabellen, die während der Ausführung der Pipeline erstellt werden, zu Fehlerbehebungs- und Validierungszwecken beibehalten werden sollen. Die Standardeinstellung ist Nein.
TTL der temporären Tabelle (in Stunden) Ja 6.5.0 Tabellen-TTL für temporäre BigQuery-Tabellen in Stunden festlegen. Dies ist als vorbeugende Maßnahme nützlich, wenn die Pipeline abgebrochen und der Bereinigungsprozess unterbrochen wird (z. B. wenn der Ausführungscluster abrupt heruntergefahren wird). Wenn Sie diesen Wert auf 0 festlegen, wird die TTL der Tabelle deaktiviert. Der Standardwert ist 72 (3 Tage).
Jobpriorität Ja 6.5.0 Die zum Ausführen von BigQuery-Jobs verwendete Priorität. Wählen Sie eine der folgenden Optionen aus:
  1. Batch: Ein Batchjob wird in die Warteschlange gestellt und gestartet, sobald Ressourcen verfügbar sind – in der Regel innerhalb weniger Minuten. Wenn der Job nicht innerhalb von drei Stunden gestartet wird, wird seine Priorität in „interaktiv“ geändert.
  2. Interaktiv: Ein interaktiver Job wird so schnell wie möglich ausgeführt und auf die Ratenbegrenzung gleichzeitiger Anfragen und die tägliche Ratenbegrenzung angerechnet.
Der Standardwert ist Batch.
Phasen zum Erzwingen des Pushdowns Ja 6.7.0 Unterstützte Phasen für die kontinuierliche Ausführung in BigQuery. Jeder Phasenname muss in einer separaten Zeile stehen.
Phasen, für die Pushdown übersprungen werden soll Ja 6.7.0 Unterstützte Phasen, die nie in BigQuery ausgeführt werden. Jeder Phasenname muss sich in einer separaten Zeile befinden.
BigQuery Storage Read API verwenden Ja 6.7.0 Gibt an, ob beim Extrahieren von Datensätzen aus BigQuery während der Pipelineausführung die BigQuery Storage Read API verwendet werden soll. Diese Option kann die Leistung von Transformation Pushdown verbessern, verursacht jedoch zusätzliche Kosten. Hierfür 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. Aus den Logs geht hervor, dass die JOIN-Vorgänge in Ihrer Pipeline zur Ausführung in BigQuery nach unten verschoben 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 den einzelnen 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>

Wenn die Ausführung fortgesetzt wird, zeigen die Logs den Abschluss von Push-Phasen und schließlich die Ausführung von JOIN-Vorgängen 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 die Meldung angezeigt, dass der Pull-Vorgang abgeschlossen ist. Dies bedeutet, dass der BigQuery-Exportprozess ausgelöst wurde und nach Beginn dieses Exportjobs mit dem Lesen von Datensätzen in die Pipeline begonnen wird. 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 diese in den Logs beschrieben.

Details zur Ausführung von BigQuery-JOIN-Vorgängen, z. B. Ressourcennutzung, Ausführungszeit und Fehlerursachen, können Sie in den BigQuery-Jobdaten mithilfe der Job-ID aufrufen, die in den Joblogs angegeben ist.

Pipelinemesswerte überprü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 Messwerte der BigQuery-Pushdown-Pipeline.

Nächste Schritte