Auf dieser Seite wird erläutert, wie Sie Dataflow SQL verwenden und Dataflow SQL-Jobs erstellen.
Zum Erstellen eines Dataflow SQL-Jobs müssen Sie eine Dataflow SQL-Abfrage schreiben und ausführen.
Dataflow SQL-UI verwenden
Die Dataflow SQL-UI ist eine Einstellung der BigQuery-Web-UI zum Erstellen von Dataflow SQL-Jobs.
Sie können über die BigQuery-Web-UI auf die Dataflow SQL-UI zugreifen.
BigQuery-Web-UI öffnen
Wechseln Sie zur Cloud Dataflow-Engine.
a. Klicken Sie auf das Drop-down-Menü Mehr und wählen Sie Abfrageeinstellungen aus.
a. Wählen Sie im Menü Abfrageeinstellungen die Option Dataflow-Engine aus.
a. Klicken Sie in der Eingabeaufforderung, die angezeigt wird, wenn die Dataflow API und die Data Catalog API nicht aktiviert sind, auf APIs aktivieren.
a. Klicken Sie auf Speichern.
Sie können auch über die Dataflow-Monitoring-Oberfläche auf die Dataflow SQL-UI zugreifen.
Rufen Sie die Dataflow-Monitoring-Oberfläche auf.
Klicken Sie auf Job aus SQL erstellen.
Dataflow SQL-Abfragen schreiben
Dataflow SQL-Abfragen verwenden die Dataflow SQL-Abfragesyntax. Die Dataflow SQL-Abfragesyntax ähnelt der BigQuery-Standard-SQL.
Sie können die Dataflow SQL-Streamingerweiterungen verwenden, um Daten aus kontinuierlich aktualisierten Dataflow-Quellen wie Pub/Sub zu aggregieren.
Mit der folgenden Abfrage werden beispielsweise jede Minute die Fahrgäste in einem Pub/Sub-Stream von Taxifahrten gezählt:
SELECT TUMBLE_START('INTERVAL 1 MINUTE') as period_start, SUM(passenger_count) AS pickup_count FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime` WHERE ride_status = "pickup" GROUP BY TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
Dataflow SQL-Abfragen ausführen
Wenn Sie eine Dataflow SQL-Abfrage ausführen, wandelt Dataflow die Abfrage in eine Apache Beam-Pipeline um und führt die Pipeline aus.
Sie können eine Dataflow SQL-Abfrage mit der Cloud Console oder dem gcloud
-Befehlszeilentool ausführen.
Console
Verwenden Sie zum Ausführen einer Dataflow SQL-Abfrage die Dataflow SQL-UI.
Rufen Sie die Dataflow SQL-UI auf.
Geben Sie die Dataflow-SQL-Abfrage in den Abfrageeditor ein.
Klicken Sie auf Cloud Dataflow-Job erstellen, um ein Feld mit Joboptionen zu öffnen.
(Optional) Klicken Sie auf Optionale Parameter anzeigen und legen Sie die Dataflow-Pipelineoptionen fest.
Wählen Sie in diesem Bereich im Abschnitt Ziel einen Ausgabetyp aus.
Klicken Sie auf Erstellen.
gcloud
Verwenden Sie zum Ausführen einer Dataflow SQL-Abfrage den Befehl gcloud dataflow sql query
.
gcloud dataflow sql query \ --job-name=job-name \ --region=region \ --bigquery-table=table-name \ --bigquery-dataset=destination-dataset \ 'query'
Weitere Informationen zum Abfragen von Daten und zum Schreiben von Dataflow SQL-Abfrageergebnissen finden Sie unter Datenquellen und -ziele verwenden.
Pipelineoptionen festlegen
Sie können Dataflow-Pipelineoptionen für Dataflow SQL-Jobs festlegen. Dataflow-Pipelineoptionen sind Ausführungsparameter, mit denen konfiguriert wird, wie und wo Dataflow SQL-Abfragen ausgeführt werden.
Zum Festlegen von Dataflow-Pipelineoptionen für Dataflow SQL-Jobs geben Sie beim Ausführen einer Dataflow SQL-Abfrage die folgenden Parameter an.
Console
Parameter | Typ | Beschreibung | Standardwert |
---|---|---|---|
Regionaler Endpunkt | String |
Die Region, in der die Abfrage ausgeführt wird. Dataflow SQL-Abfragen können in Regionen mit einem regionalen Endpunkt von Dataflow ausgeführt werden. | Hat standardmäßig den Wert us-central1. , wenn nichts anderes festgelegt wird. |
Maximale Anzahl der Worker | int |
Die maximale Anzahl von Compute Engine-Instanzen, die während der Ausführung für Ihre Pipeline verfügbar sind. | Wenn kein Wert angegeben ist, bestimmt der Dataflow-Dienst automatisch die richtige Anzahl der Worker. |
Worker-Region | String |
Die Compute Engine-Region, in der Worker-Instanzen zum Ausführen der Pipeline gestartet werden. Die Worker-Region von Compute Engine kann sich in einer anderen Region als der regionale Dataflow-Endpunkt befinden. | Wenn nichts anderes festgelegt ist, wird standardmäßig der angegebene regionale Dataflow-Endpunkt verwendet. |
Worker-Zone | String |
Die Compute Engine-Zone, in der Worker-Instanzen zum Ausführen der Pipeline gestartet werden. Die Compute Engine-Zone kann sich in einer anderen Region als der regionale Dataflow-Endpunkt befinden. |
Wenn nichts anderes festgelegt ist, wird standardmäßig eine Zone in der Worker-Region verwendet. Wenn die Worker-Region nicht festgelegt ist, wird standardmäßig eine Zone im angegebenen regionalen Dataflow-Endpunkt verwendet. |
E-Mail-Adresse des Dienstkontos | String |
Die E-Mail-Adresse des Controller-Dienstkontos, mit dem die Pipeline ausgeführt werden soll. Die E-Mail-Adresse muss folgendes Format haben: my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Wenn nichts anderes festgelegt ist, verwenden Dataflow-Worker das Compute Engine-Dienstkonto des aktuellen Projekts als Controller-Dienstkonto. |
Maschinentyp | String |
Der Compute Engine-Maschinentyp, den Dataflow beim Starten von Workern verwendet. Sie können jede der verfügbaren Compute Engine-Maschinentypfamilien sowie benutzerdefinierte Maschinentypen verwenden. Die besten Ergebnisse erzielen Sie mit Beachten Sie, dass Dataflow nach der Anzahl der vCPUs und GB Arbeitsspeicher in Workern abrechnet. Die Abrechnung erfolgt unabhängig von der Maschinentypfamilie. |
Wenn nichts anderes festgelegt ist, wählt Dataflow automatisch den Maschinentyp aus. |
Zusätzliche Tests | String |
Die zu aktivierenden Tests. Ein Test kann ein Wert wie enable_streaming_engine oder ein Schlüssel/Wert-Paar wie shuffle_mode=service sein. Die Tests müssen sich in einer durch Kommas getrennten Liste befinden. |
Wenn nichts angegeben ist, werden keine Tests aktiviert. |
Konfiguration der Worker-IP-Adresse | String |
Gibt an, ob Dataflow-Worker öffentliche IP-Adressen verwenden. Wenn der Wert auf Wenn der Wert auf |
Enthält standardmäßig den Wert Public , wenn nichts anderes festgelegt wird. |
Netzwerk | String |
Das Compute Engine-Netzwerk, dem Worker zugewiesen werden. | Wenn nichts anderes festgelegt ist, wird standardmäßig das Netzwerk default verwendet. |
Subnetzwerk | String |
Das Compute Engine-Subnetzwerk, dem Worker zugewiesen werden. Das Subnetzwerk muss das Format regions/region/subnetworks/subnetwork haben. |
Wenn nichts anderes festgelegt ist, ermittelt Dataflow automatisch das Subnetzwerk. |
gcloud
Flag | Typ | Beschreibung | Standardwert |
---|---|---|---|
‑‑region |
String |
Die Region, in der die Abfrage ausgeführt wird. Dataflow SQL-Abfragen können in Regionen mit einem regionalen Endpunkt von Dataflow ausgeführt werden. | Wenn Sie diese Option nicht einrichten, wird ein Fehler ausgegeben. |
‑‑max‑workers |
int |
Die maximale Anzahl von Compute Engine-Instanzen, die während der Ausführung für Ihre Pipeline verfügbar sind. | Wenn kein Wert angegeben ist, bestimmt der Dataflow-Dienst automatisch die richtige Anzahl der Worker. |
‑‑num‑workers |
int |
Die anfängliche Zahl der Compute Engine-Instanzen für die Ausführung Ihrer Pipeline. Dieser Parameter bestimmt, wie viele Worker Dataflow zu Beginn des Jobs startet. | Wenn kein Wert angegeben ist, bestimmt der Dataflow-Dienst automatisch die richtige Anzahl der Worker. |
‑‑worker‑region |
String |
Die Compute Engine-Region, in der Worker-Instanzen zum Ausführen der Pipeline gestartet werden. Die Worker-Region von Compute Engine kann sich in einer anderen Region als der regionale Dataflow-Endpunkt befinden. Sie können |
Wenn nichts anderes festgelegt ist, wird standardmäßig der angegebene regionale Dataflow-Endpunkt verwendet. |
‑‑worker‑zone |
String |
Die Compute Engine-Zone, in der Worker-Instanzen zum Ausführen der Pipeline gestartet werden. Die Compute Engine-Zone kann sich in einer anderen Region als der regionale Dataflow-Endpunkt befinden. Sie können |
Wenn nichts anderes festgelegt ist, wird standardmäßig eine Zone im angegebenen regionalen Dataflow-Endpunkt verwendet. |
‑‑worker‑machine‑type |
String |
Der Compute Engine-Maschinentyp, den Dataflow beim Starten von Workern verwendet. Sie können jede der verfügbaren Compute Engine-Maschinentypfamilien sowie benutzerdefinierte Maschinentypen verwenden. Die besten Ergebnisse erzielen Sie mit Beachten Sie, dass Dataflow nach der Anzahl der vCPUs und GB Arbeitsspeicher in Workern abrechnet. Die Abrechnung erfolgt unabhängig von der Maschinentypfamilie. |
Wenn nichts anderes festgelegt ist, wählt Dataflow automatisch den Maschinentyp aus. |
‑‑service‑account‑email |
String |
Die E-Mail-Adresse des Controller-Dienstkontos, mit dem die Pipeline ausgeführt werden soll. Die E-Mail-Adresse muss folgendes Format haben: my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Wenn nichts anderes festgelegt ist, verwenden Dataflow-Worker das Compute Engine-Dienstkonto des aktuellen Projekts als Controller-Dienstkonto. |
‑‑disable‑public‑ips |
boolean |
Gibt an, ob Dataflow-Worker öffentliche IP-Adressen verwenden. Wenn |
Wenn nichts anderes festgelegt ist, wird standardmäßig false verwendet und Dataflow-Worker bedienen sich öffentlicher IP-Adressen. |
‑‑network |
String |
Das Compute Engine-Netzwerk, dem Worker zugewiesen werden. | Wenn nichts anderes festgelegt ist, wird standardmäßig das Netzwerk default verwendet. |
‑‑subnetwork |
String |
Das Compute Engine-Subnetzwerk, dem Worker zugewiesen werden. Das Subnetzwerk muss das Format regions/region/subnetworks/subnetwork haben. |
Wenn nichts anderes festgelegt ist, ermittelt Dataflow automatisch das Subnetzwerk. |
‑‑dataflow‑kms‑key |
String |
Der vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) zum Verschlüsseln inaktiver Daten. Sie können den Verschlüsselungsschlüssel über Cloud KMS verwalten. Der Schlüssel muss sich am selben Standort wie der Job befinden. | Wenn kein Wert angegeben ist, verwendet Dataflow die standardmäßige Google Cloud-Verschlüsselung anstelle eines CMEK. |
Weitere Informationen finden Sie in der gcloud dataflow sql query
-Befehlsreferenz.
Dataflow SQL-Jobs beenden
Verwenden Sie den Befehl "Abbrechen", um Dataflow SQL-Jobs zu beenden. Das Beenden eines Dataflow SQL-Jobs per Drain wird nicht unterstützt.
Preise
Für Dataflow SQL gelten die Dataflow-Standardpreise. Es gibt kein separates Preismodell. Ihnen werden die Ressourcen in Rechnung gestellt, die von den Dataflow-Jobs verbraucht werden, die Sie auf Basis Ihrer SQL-Anweisungen erstellen. Die Gebühren für diese Ressourcen entsprechen den Dataflow-Standardgebühren für vCPU, Arbeitsspeicher, Persistent Disk, Streaming Engine und Dataflow Shuffle.
Ein Dataflow SQL-Job kann zusätzliche Ressourcen wie Pub/Sub und BigQuery verbrauchen, die nach ihren jeweiligen Preisen in Rechnung gestellt werden.
Weitere Informationen zu den Dataflow-Preisen finden Sie auf der Preisseite zu Dataflow.
Nächste Schritte
- Erfahren Sie, wie Sie Streamingdaten mit Dataflow SQL zusammenführen
- Datenquellen und -ziele verwenden
- Lernen Sie das
gcloud
-Befehlszeilentool für Dataflow SQL kennen.