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 write und ausführen.
Dataflow SQL-Editor verwenden
Der Dataflow SQL-Editor ist eine Seite in der Google Cloud Console, auf der Sie Abfragen zum Erstellen von Dataflow SQL-Jobs schreiben und ausführen.
So greifen Sie auf den Dataflow SQL-Editor zu:
Rufen Sie in der Google Cloud Console die Seite Dataflow SQL-Editor auf.
Sie können auf den Dataflow SQL-Editor auch über die Dataflow-Monitoring-Oberfläche zugreifen. Gehen Sie dazu so vor:
Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.
Klicken Sie im Dataflow-Menü auf SQL-Arbeitsbereich.
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 DATETIME(tr.window_start) AS starttime, SUM(tr.passenger_count) AS pickup_count FROM TUMBLE ((SELECT * FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`), DESCRIPTOR(event_timestamp), 'INTERVAL 1 MINUTE') AS tr WHERE tr.ride_status = "pickup" GROUP BY DATETIME(tr.window_start)
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 Google Cloud Console oder des Google Cloud CLI ausführen.
Console
Verwenden Sie zum Ausführen einer Dataflow SQL-Abfrage den Dataflow SQL-Editor.
Wechseln Sie zur Seite Dataflow SQL-Editor.
Geben Sie die Dataflow SQL-Abfrage in den Abfrageeditor ein.
Klicken Sie auf Job erstellen, um ein Feld mit Joboptionen zu öffnen.
Optional: Geben Sie für Jobname einen eindeutigen Jobnamen ein.
Wählen Sie für Regionaler Endpunkt einen Wert aus dem Menü aus.
Optional: Klicken Sie auf Optionale Parameter anzeigen und geben Sie dann Werte für die angegebenen Dataflow-Pipelineoptionen ein.
Wählen Sie als Ziel einen Ausgabetyp aus und geben Sie Werte für die bereitgestellten Felder ein.
Optional: Fügen Sie im Bereich SQL-Abfrageparameter Parameter hinzu und geben Sie dann Werte in die verfügbaren Felder ein.
Klicken Sie auf Erstellen.
gcloud
Verwenden Sie zum Ausführen einer Dataflow SQL-Abfrage den Befehl gcloud dataflow sql query
. Hier sehen Sie eine Beispiel-SQL-Abfrage, die Folgendes erstellt:
gcloud dataflow sql query \ --job-name=JOB_NAME \ --region=REGION \ --bigquery-table=BIGQUERY_TABLE \ --bigquery-dataset=BIGQUERY_DATASET \ --bigquery-project=BIGQUERY_PROJECT \ 'SQL_QUERY'
Dabei gilt:
JOB_NAME
: ein Name für Ihren Dataflow SQL-Job.REGION
: der Dataflow-Speicherort für die Bereitstellung Ihres Dataflow-JobsBIGQUERY_TABLE
: der Name der BigQuery-Tabelle, in die die Ausgabe geschrieben werden sollBIGQUERY_DATASET
: die BigQuery-Dataset-ID, die die Ausgabetabelle enthältBIGQUERY_PROJECT
: die Google Cloud-Projekt-ID, die die BigQuery-Ausgabetabelle enthältSQL_QUERY
: Ihre Dataflow SQL-Abfrage
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 Dataflow-Speicherort 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 die Dataflow-Jobregion befinden. | Nimmt standardmäßig die angegebene Dataflow-Region, wenn nichts anderes festgelegt wird. |
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 die Dataflow-Jobregion 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 in der angegebenen Dataflow-Region verwendet. |
E-Mail-Adresse des Dienstkontos | String |
Die E-Mail-Adresse des Worker-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 Worker-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 Dataflow-Speicherort 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 die Dataflow-Jobregion befinden. Sie können |
Nimmt standardmäßig die angegebene Dataflow-Region, wenn nichts anderes festgelegt wird. |
‑‑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 die Dataflow-Jobregion befinden. Sie können |
Wenn nichts festgelegt ist, gilt standardmäßig eine Zone in der angegebenen Dataflow-Region. |
‑‑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 Worker-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 Worker-Dienstkonto. |
‑‑disable‑public‑ips |
boolean |
Gibt an, ob Dataflow-Worker öffentliche IP-Adressen verwenden. Wenn festgelegt, verwenden die Dataflow-Worker für die gesamte Kommunikation private IP-Adressen. |
Ist nichts festgelegt, verwenden Dataflow-Worker öffentliche 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
Wenn Sie einen Dataflow SQL-Job anhalten möchten, müssen Sie ihn abbrechen.
Das Beenden eines Dataflow SQL-Jobs mit der Option 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 finden Sie unter Dataflow-Preise.
Nächste Schritte
- Erfahren Sie, wie Sie Streamingdaten mit Dataflow SQL zusammenführen
- Google Cloud CLI für Dataflow SQL ansehen