ブロックリファレンス

BLOCKS Reference

BigQuery

BigQuery ストアドプロシージャの呼び出し(ベータ版)

概要

このブロックは、BigQuery のストアドプロシージャを呼び出します。なお、ストアドプロシージャの引数モードは、IN のみをサポートしています(OUT および INOUT が引数に定義されている場合は実行できません)。

ストアドプロシージャの引数に渡す値は、オブジェクトデータとして準備してください。その際、オブジェクトデータのキー名と引き数名を合わせてください。

ストアドプロシージャの呼び出し時、このオブジェクトデータ内を検索し、ストアドプロシージャの引き数名と同名のキー値を引数として渡します。

例えば、以下のようなストアドプロシージャが定義されているとします。

CREATE OR REPLACE PROCEDURE tutorial.example_procedure(IN id INT64, IN name STRING)
BEGIN
  CREATE TABLE IF NOT EXISTS tutorial.example_table
  AS
  SELECT
    id AS customer_id,
    name AS company_name;
END;

このストアドプロシージャの引数は、整数型(INT64)の id という名前の引数と、文字列型(STRING)の name という引数を持ちます。

この場合は、オブジェクトデータを以下のように準備します。

キー名 データ型
id Integer 183053
name String "Groovenauts,Inc."

こうしておくと、ストアドプロシージャの呼び出し時に、id183053name"Groovenauts,Inc." を渡します。

ストアドプロシージャが途中で失敗した場合、実行に成功したステートメント実行分は課金されます。

このブロックはベータ版です。正式版リリース後、本ブロックは利用できなくなる可能性があります。ご注意ください。正式版リリース後は、正式版のブロックをご利用ください。

また、ベータ版での提供となるため、一部の機能が正常に動作しない可能性があります。機能改善や不具合などのフィードバックは、「フォーラム 」や「お問い合わせ」で情報提供をお願いします。フィードバックの内容は MAGELLAN BLOCKS の品質向上のために利用いたします。

プロパティ

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

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

データセット

呼び出すストアドプロシージャのデータセット ID を指定します。

例:概要で例示したストアドプロシージャの場合、tutorial を指定します。

プロシージャ名

呼び出すストアドプロシージャの名前を指定します。

例:概要で例示したストアドプロシージャの場合、example_procedure を指定します。

引数を探す変数

呼び出すストアドプロシージャの引数に渡す値を定義したオブジェクトデータの変数名を指定します。

例:概要で例示したオブジェクトデータをオブジェクト生成ブロックで以下のように定義した場合は、_ を指定します。

オブジェクト生成ブロックでストアドプロシージャの引数用データを定義した様子
クエリーの優先度

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

  • インタラクティブ(直ぐに実行、同時実行数の制限を受ける)
  • バッチ(リソースがあるときに実行、同時実行数の制限を受けない)
ブロックメモ ブロックに対するコメントを指定します。
エラー時の繰り返し回数 BigQuery のエラーやタイムアウト時の繰り返し回数を指定します。
最小タイムアウト時間 BigQuery からの応答を待つ時間(タイムアウト)を秒単位で指定します。繰り返し回数ごとに 2 倍に増えます。繰り返し回数ごとに増える時間の最大値は、「最大タイムアウト時間」プロパティで指定します。
最大タイムアウト時間 「最小タイムアウト時間」から繰り返し回数ごとに増やすタイムアウトの最大時間を秒単位指定します。
クエリーキャッシュを有効にする クエリーキャッシュを有効にするかしないかを指定します。
最大料金バイト数

クエリーの料金を制限します。クエリーで処理するデータ量が、ここで指定されたバイト数を超える場合は、そのクエリーは実行されません。

スクリプト全体で処理するデータ量がこのバイト数を超えていたとしても、このバイト数を超えないデータ量分のステートメントの実行は行われます。このため、その実行分は課金されます。このバイト数を超えそうなデータ量を処理するステートメントがあるとそれ以降は実行されず、その分の課金は行われません。