2016-07-20 7 views
5

Ich möchte eine einfache Abfrage mit BigQuery Standard SQL in Datenfluss ausführen, aber ich kann nicht finden, wo diese Option aktiviert ist. Wie kann ich das machen?Wie wird BigQuery Standard SQL in Dataflow verwendet?

pipeline.apply(Read.named(metricName + " Read").fromQuery("select * from table1 UNION DISTINCT select * from table2")); 

Wenn ich versuche, es zu laufen erhalte ich die Fehlermeldung:

2016-07-20T13:35:22.543Z: Error: (6e0ad847af078af9): Workflow failed. Causes: (fe6c7bcb1a35a057): S01:warehouse_handled_returns Read/DataflowPipelineRunner.BatchBigQueryIONativeRead+ParMultiDo(FormatData)+warehouse_handled_returns Write/DataflowPipelineRunner.BatchBigQueryIOWrite/DataflowPipelineRunner.BatchBigQueryIONativeWrite failed., (7f29f1d9435d27bc): BigQuery execution failed., (7f29f1d9435d2823): Error: 
Message: Encountered "" at line 23, column 27. 

HTTP Code: 400 
+0

Dies ist nicht durch die aktuelle Version von BigQueryIO unterstützt. –

Antwort

4

Sie jetzt verwenden können, Standard-SQL mit Datenfluss.

https://cloud.google.com/dataflow/model/bigquery-io

PCollection<TableRow> weatherData = p.apply(
BigQueryIO.Read 
.named("ReadYearAndTemp") 
.fromQuery("SELECT year, mean_temp FROM `samples.weather_stations`") 
.usingStandardSql(); 
0

Datenfluß-SDK für Java unterstützt 1.8.0 BigQuery Standard SQL-Dialekt in Anfang Version.

+1

Standard-SQL wird jetzt unterstützt. –

1

Bis Dataflow BigQuery Standard-SQL offiziell unterstützt, ist eine Abhilfe Abfrage mit dem folgenden Kommentar zu starten:

#StandardSQL 
Dies wird anweisen BigQuery Standard-SQL verwenden anstelle von Legacy-SQL

+1

Ich versuchte dies, bekam aber die folgenden Fehler - 'com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request { "Code": 400, "Fehler": [{ "domain": "global", "Nachricht": "Abfragetext gibt use_legacy_sql: false an, während API-Optionen Folgendes angeben: true", "Grund": "ungültig" }, "Nachricht": "Abfragetext gibt use_legacy_sql: false, während die API-Optionen Folgendes angeben: true " }" –

Verwandte Themen