ブロックリファレンス

BLOCKS Reference

BigQuery

クエリーの実行

概要

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

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

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

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

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

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

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

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

プロパティ

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

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

SQL 文法

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

クエリー

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

クエリーの優先度

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

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

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

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

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

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

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

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

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

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

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

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

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