ブロックリファレンス

BLOCKS Reference

BigQuery

クエリーの実行

概要

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

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

クエリー結果は、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 件です。

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

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

ブロックメモ ブロックに対するコメントを指定します。
エラー時の繰り返し回数 BigQuery のエラーやタイムアウト時の繰り返し回数を指定します。
最小タイムアウト時間 BigQuery からの応答を待つ時間(タイムアウト)を秒単位で指定します。繰り返し回数ごとに 2 倍に増えます。繰り返し回数ごとに増える時間の最大値は、「最大タイムアウト時間」プロパティで指定します。
最大タイムアウト時間 「最小タイムアウト時間」から繰り返し回数ごとに増やすタイムアウトの最大時間を秒単位指定します。
1000 件以上の結果を許可する 1000 件以上の結果を含むクエリの実行を許可します。「結果格納先のデータセット」および「結果格納先のテーブル」が省略された場合は、許可できません。
フラットな結果を許可する テーブルのネストしたフィールドを展開するかどうかを指定します。展開しないとした場合は、「1000 件以上の結果を許可する」を許可にできません。
クエリーキャッシュを有効にする クエリーキャッシュを有効にするかしないかを指定します。
ユーザー定義関数

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

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

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

最大料金バイト数 クエリーの料金を制限します。クエリーで処理するデータ量が、ここで指定されたバイト数を超える場合は、そのクエリーは実行されません(エラーとなり料金は発生しません)。
実行に必要なテーブル クエリー実行前に、存在確認をするテーブルを指定します。「プロジェクト ID:データセット ID.テーブル ID」のような文字列か、「{“dataset”: “データセット ID”, “table”: “テーブル ID”}」のようなオブジェクトが指定できます。複数指定する場合は、配列で指定できます。
チェック回数 「実行に必要なテーブル」で指定されたテーブルが存在するかをチェックする最大の回数を指定します。
チェック間隔 「実行に必要なテーブル」で指定されたテーブルが存在するかをチェックする間隔を秒単位で指定します。
クエリー文をログへ出力

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

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

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