Mit dem Transformations-Push-down in Cloud Data Fusion können Sie Pipeline-Transformationen in BigQuery statt in Spark ausführen. Wenn Sie Transformationen direkt in BigQuery ausführen, können Sie die Pipelineausführung beschleunigen und die Kosten für Rechenressourcen optimieren.
Weitere Informationen finden Sie in der Übersicht über die Transformations-Pushdown-Funktion.
Hinweis
Die Transformations-Pushdown-Funktion 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.
Transformation Pushdown für Ihre Pipeline aktivieren
Console
So aktivieren Sie die Transformations-Pushdown-Funktion für eine bereitgestellte Pipeline:
Rufen Sie Ihre Instanz auf:
Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.
Wenn Sie die Instanz in Cloud Data Fusion Studio öffnen möchten, klicken Sie auf Instanzen und dann auf Instanz anzeigen.
Klicken Sie auf Menü > Liste.
Der Tab für die bereitgestellte Pipeline wird geöffnet.
Klicken Sie auf die gewünschte bereitgestellte Pipeline, um sie in Pipeline Studio zu öffnen.
Klicken Sie auf Konfigurieren > Transformations-Pushdown.

Klicken Sie auf Pushdown für Transformationen aktivieren.
Geben Sie im Feld Dataset einen Namen für das BigQuery-Dataset ein.
Optional: Wenn Sie ein Makro verwenden möchten, klicken Sie auf M. Weitere Informationen finden Sie unter Datasets.
Optional: Konfigurieren Sie die Optionen nach Bedarf.
Klicken Sie auf Speichern.
Optionale Konfigurationen
.| Attribut | Unterstützt Makros | Unterstützte Cloud Data Fusion-Versionen | Beschreibung |
|---|---|---|---|
| Verbindung verwenden | Nein | 6.7.0 oder höher | Gibt an, ob eine vorhandene Verbindung verwendet werden soll. |
| Verbindung | Ja | 6.7.0 oder höher | Der Name der Verbindung. Diese Verbindung stellt Projekt- und Dienstkontoinformationen bereit. Optional: Verwenden Sie das Makro der Funktion ${conn(connection_name)}. |
| Dataset-Projekt-ID | Ja | 6.5.0 | Wenn sich das Dataset in einem anderen Projekt als dem 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:
|
| Dateipfad des Dienstkontos | Ja | 6.5.0 | Der Pfad im lokalen Dateisystem zum Dienstkontoschlüssel, der für die Autorisierung verwendet wird. Er ist auf auto-detect festgelegt, wenn er in einem Managed Service for Apache Spark-Cluster ausgeführt wird. 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. 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. Der Standardwert ist der multiregionale Standort US. |
| Name des Verschlüsselungsschlüssels | Ja | 6.5.1/0.18.1 | Der kundenverwaltete Verschlüsselungsschlüssel (CMEK), der Daten verschlüsselt, die in einen Bucket, ein Dataset oder eine Tabelle geschrieben werden, die vom Plug-in erstellt wurden. Wenn der Bucket, das Dataset oder die Tabelle bereits vorhanden ist, wird dieser Wert ignoriert. |
| BigQuery-Tabellen nach Abschluss beibehalten | Ja | 6.5.0 | Gibt an, ob alle temporären BigQuery-Tabellen, die während der Pipelineausführung erstellt werden, zu Debugging- und Validierungszwecken beibehalten werden sollen. Der Standardwert ist Nein. |
| TTL für temporäre Tabelle (in Stunden) | Ja | 6.5.0 | Legen Sie die TTL für temporäre BigQuery-Tabellen in Stunden fest. Dies ist nützlich, falls die Pipeline abgebrochen und der Bereinigungsprozess unterbrochen wird (z. B. wenn der Ausführungscluster abrupt heruntergefahren wird). Wenn Sie diesen Wert auf 0 setzen, wird die TTL der Tabelle deaktiviert. Der Standardwert 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:
|
| Phasen zum Erzwingen der Pushdown-Optimierung | Ja | 6.7.0 | Unterstützte Phasen, die immer in BigQuery ausgeführt werden sollen. Jeder Phasenname muss in einer separaten Zeile stehen. |
| Phasen zum Überspringen des Pushdowns | Ja | 6.7.0 | Unterstützte Phasen, die in BigQuery nie 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-Pushdowns 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 weisen darauf hin, dass die JOIN-Vorgänge in Ihrer Pipeline zur Ausführung an BigQuery weitergeleitet 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'
Im folgenden Beispiel werden die Tabellennamen gezeigt, 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>
Während der Ausführung zeigen die Logs den Abschluss der 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 eine Meldung angezeigt, dass der Vorgang Pull abgeschlossen wurde. Das bedeutet, dass der BigQuery-Exportprozess ausgelöst wurde und Datensätze in die Pipeline eingelesen werden, sobald dieser Exportjob beginnt. 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. Ressourcenauslastung, Ausführungszeit und Fehlerursachen, finden Sie in den BigQuery-Jobdaten. Verwenden Sie dazu die Job-ID, die in den Joblogs angezeigt wird.
Pipelinemesswerte 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-Pipelinemesswerte.
Nächste Schritte
- Weitere Informationen zum Transformations-Pushdown in Cloud Data Fusion.