2017-03-27 14 views
0

BigQuery標準SQL UDFからのBigQueryへの書き込みに関する質問です。Google標準SQL UDF - BigQueryへの書き込み

私は、標準SQL内からいくつかの計算を行う必要があります。これらの計算が終わると、その計算データをBigQueryに保存する必要があります。

Standard SQL UDFからBigQueryにデータを挿入する標準的な方法は何ですか?

答えて

2

基本的に、UDFを使用して1つ以上の行を出力できます。標準UDFでは、行を出力する場合は、Structと組み合わせた配列を出力する必要があります。

Migration guideには、存在しない列にデータを追加する例があります。

スクロールダウン:Functions operate on values rather than rows。従来のSQLでは、JavaScript関数はテーブルの行を操作します。標準SQLでは、上記の例のように、JavaScript関数は値を操作します。標準SQLを使用してJavaScript関数に行値を渡すには、表と同じ行タイプの構造体をとる関数を定義します。

繰り返しデータを保持する構造体が出力された場合、クエリ結果を新しいテーブルに書き込むことができます。それがあなたの挿入物です。

これは、問合せ結果を作成して宛先表に書き込んで、その結果を挿入するようにする必要があることを意味します。 BQはUDFから厳密なINSERTステートメントを提供していないため。

2

は、標準SQL UDF内からビッグクエリにデータを挿入するための標準的な方法は何である

UDF自体の任意のようにUDFの
考える内からのBigQueryにデータを挿入する no wayあり

JavaScriptやSQLを使用して自分自身を作成することができる点を除いて、他の通常のFUNCTIONを使用できます。
これはBigQueryに保存できるBigQuery関数ではありません。
はむしろあなたは先のテーブルにクエリの結果を保存することができます - それは

  • DOM UDF

    内からなんとかないものBigQueryのあなたのアイデアを与える

    以下は関連しているUDFの制限でstandard wayですオブジェクトウィンドウ、ドキュメント、ノード、およびそれらを必要とする関数はサポートされていません。

  • ネイティブコードに依存するJavaScript関数はサポートされていません。
  • JavaScriptのビット演算は、最上位32ビットのみを処理します。
  • ユーザー定義関数を呼び出すクエリは、非決定論的性質のため、キャッシュされた結果を使用できません。
  • UDFでテーブルを参照することはできません。

https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions

で詳細を参照
関連する問題