2016-07-20 10 views
5

データフロー内でBigQuery Standard SQLを使用して簡単なクエリを実行したいのですが、このオプションを有効にする場所を見つけることができません。どうやってやるの?DataflowでBigQuery Standard SQLを使用するには?

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

私はエラーを受け取り、それを実行しよう:Java用

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

これはBigQueryIOの現在のバージョンでサポートされていません。 –

答えて

4

の標準SQLを使用したBigQueryを指示します標準SQLとデータフロー。

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

データフローSDKはバージョン1.8.0で始まったBigQueryの標準SQL方言をサポートしています。

+1

標準SQLがサポートされるようになりました。 –

1

データフローは、正式に1つの回避策は、以下のコメントでクエリを開始することで、BigQueryの標準SQLをサポートしてまで:

#StandardSQL 

これは、代わりにあなたが今使用できるレガシーSQL

+1

私はこれを試しましたが、次のエラーを受け取りました。 - com.google.api.client.googleapis.json.GoogleJsonResponseException:400 Bad Request { "code":400、 "エラー":[{ "domain": ] "message": "クエリーテキストにuse_legacy_sql:false、" false "と指定した場合、クエリ文字列にはuse_legacy_sql:falseが指定されます。 APIオプションは次のように指定します:true " " –

関連する問題