ブロックリファレンス

BLOCKS Reference

BigQuery

クエリーの実行

概要

BigQueryopen_in_newのクエリーを実行するブロックです。

info 情報

クエリーとはデータベースに対する問合せ(処理要求)のことで、データの抽出や更新などの処理要求を文字列で表します。BigQueryのクエリー文法は、Legacy SQLopen_in_newStandard SQLopen_in_newに対応しており、記述した内容をブロックで扱えます。

クエリー結果は、BigQueryのテーブルに格納されます(変数への出力も可能)。

クエリーの実行ブロックの概念図

warning 注意

変数格納時のみ、NUMERIC型はFLOAT型に変換されます(精度が落ちる場合あり)。BigQueryテーブル格納時は、変換しません。

クエリーの実行ブロックを使うことで、一般的なクエリーによる業務効率化に加えて、他のブロックと連携した以下のようなことができます。

  • 機械学習系のブロックや最適化系のブロックを利用する前のデータのクレンジング
    無効な値を含むレコードを削除・訂正したり、列が欠落しているレコードを削除するなど。
  • 機械学習系のブロックや最適化系のブロックの結果の加工
    データの統合や加工、フォーマットの統一などをすることで、簡単に欲しいデータが取得できます。

info 補足

BigQueryの具体的な活用方法に興味のある方は、「導入事例| Google Cloudopen_in_new」を参照願います。

プロパティ

プロパティ名 説明
ブロック名 ブロックの名前を指定します。ブロックに表示されます。
GCPサービスアカウント

このブロックで使用するGCPサービスアカウントを選択します。

SQL文法

「クエリー」プロパティで使用するクエリーの文法を以下から選択します。

クエリー

実行するクエリーを指定します。

クエリ接頭辞open_in_new#legacySQL/#standardSQL)を指定すると、[SQL文法]プロパティの指定に関わらず、クエリ接頭辞に指定したSQL文法でクエリーが実行されます。

content_pasteをクリックすると、指定されたクエリーをクリップボードへコピーします。コピーの際、フロー間共通変数は、設定値に置き換わります。フロー間共通変数を置き換えたくない場合は、ウェブブラウザーのコピー機能を利用してください(例:コピーしたい部分を範囲選択して、マウスの右ボタンクリックで表示されるメニューから「コピー」をクリック)。

  • 変数展開の指定が可能
  • %形式の文字列書式の指定が可能

    クエリー内の%形式の文字列書式を有効にする]プロパティのチェックボックスにチェックが付いているときのみ有効です。

    %Yや%mなどの%形式の文字列書式をBigQueryにそのまま渡したい場合は、%の部分を%%としてください。例えば、%Yや%mの場合は、%%Y、%%mとします。BLOCKSにより%%が%へ変換され、%Y、%mがBigQueryに渡ります。

クエリー内の%形式の文字列書式を有効にする

クエリー内の%形式の文字列書式を有効にするかしないかを指定します。

  • チェックボックスオン:クエリー内の%形式の文字列書式が有効
  • チェックボックスオフ:クエリー内の%形式の文字列書式が無効

lightbulb ヒント

クエリー内でFORMAT_TIMESTAMP関数やPARSE_TIMESTAMP関数などのように%を含む「形式設定文字列open_in_new」を使う場合は、%%%に置き換える必要がなくなるため、このチェックをオフにすると便利です。

結果格納先のデータセット

クエリー結果格納先のデータセットIDを指定します。

「結果格納先のデータセット」、「結果格納先のテーブル」および「結果を格納する変数名」を省略すると、クエリー結果は変数_(アンダースコアー)に出力されます。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
結果格納先のテーブル

クエリー結果格納先のテーブルIDを指定します。

「結果格納先のデータセット」、「結果格納先のテーブル」および「結果を格納する変数名」を省略すると、クエリー結果は変数_(アンダースコアー)に出力されます。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
空でないテーブルが存在したとき

投入先のテーブルが存在したときの動作を選択します。
選択できる動作は、次のいずれかです。

追加:追加で書き込みます。
上書き:テーブルを空にしてから書き込みます。
エラー:テーブルが空でなければ失敗となります。

クエリーの優先度

クエリーの優先度を選択します。選択できる優先度は、次のいずれかです。

  • インタラクティブ(直ぐに実行、同時実行数の制限を受ける)
  • バッチ(リソースがあるときに実行、同時実行数の制限を受けない)
結果を格納する変数

クエリー結果を格納する変数名を指定します。クエリ結果の格納上限は、1000件です。

「結果格納先のデータセット」、「結果格納先のテーブル」および「結果を格納する変数名」を省略すると、クエリー結果は変数_(アンダースコアー)に出力されます。

warning 注意

この変数には、結果格納先のテーブル内容を読み込んだものが格納されます。クエリー結果が直接変数に格納されるわけではありません。このため、空でないテーブルが存在し追加で書き込みを行った場合は、今回のクエリー結果以外の内容を含む可能性があります。

ブロックメモ ブロックに対するコメントを指定します。
1000件以上の結果を許可する 1000件以上の結果を含むクエリの実行を許可します。「結果格納先のデータセット」および「結果格納先のテーブル」が省略された場合は、許可できません。
フラットな結果を許可する テーブルのネストしたフィールドを展開するかどうかを指定します。展開しないとした場合は、「1000件以上の結果を許可する」を許可にできません。
クエリーキャッシュを有効にする クエリーキャッシュを有効にするかしないかを指定します。
ユーザー定義関数

ユーザ定義関数(User Defined Function/UDF)機能を使用する場合に参照する関数定義を文字列で指定します。複数指定できます。

"gs://"で始まる文字列の場合は、URIとして解釈されて、対応するGCS上のオブジェクトから関数定義を読み込みます。

info 情報

SQL文法がLegacy SQLのときのみ有効です。

最大料金バイト数 クエリーの料金を制限します。クエリーで処理するデータ量が、ここで指定されたバイト数を超える場合は、そのクエリーは実行されません(エラーとなり料金は発生しません)。
クエリー文をログへ出力

クエリー文をログへ出力するかどうかの指定です。ログに出力するクエリー文は、変数が展開されて出力されます。

クエリー文をログへ出力する場合は、チェックボックスにチェックを入れてください。

使用例

この情報は役に立ちましたか?