BigQuery アドバンスト ランタイムを使用する
このドキュメントでは、BigQuery アドバンスト ランタイムを有効または無効にする方法と、アドバンスト ランタイムがクエリのパフォーマンスに与える影響を評価する方法について説明します。
高度なランタイムは、BigQuery クエリ プロセッサに拡張ベクトル化を提供します。拡張ベクトル化は、BigQuery ストレージでのフィルタ評価、専用のデータエンコード、最適化手法など、クエリ処理の重要な側面にベクトル化を適用することで、ベクトル化されたクエリの実行を拡張します。
ロールと権限
構成設定を指定するために必要な権限を取得するには、プロジェクトに対する BigQuery 管理者 (roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
高度なランタイムを有効にする
プロジェクトで高度なランタイムを有効にするには、ALTER PROJECT
ステートメントを使用してデフォルト構成を変更します。ステートメントで、query_runtime
引数を 'advanced'
に設定します。次に例を示します。
ALTER PROJECTPROJECT_NAME
SET OPTIONS ( `region-LOCATION
.query_runtime` = 'advanced' );
次のように置き換えます。
PROJECT_NAME
: ��ロジェクトの名前LOCATION
: プロジェクトのロケーション
変更が有効になるまで数分かかることがあります。
高度なランタイムを有効にすると、クエリジョブを作成したユーザーに関係なく、プロジェクト内の対象クエリで高度なランタイムが使用されます。
高度なランタイムを無効にする
プロジェクトの高度なランタイムを無効にするには、ALTER PROJECT
ステートメントを使用してデフォルト設定を変更します。ステートメントで、query_runtime
引数を NULL
に設定します。次に例を示します。
ALTER PROJECTPROJECT_NAME
SET OPTIONS ( `region-LOCATION
.query_runtime` = NULL );
次のように置き換えます。
PROJECT_NAME
: プロジェクトの名前LOCATION
: プロジェクトのロケーション
変更が有効になるまで数分かかることがあります。
クエリのパフォーマンスを評価する
管理ジョブ エクスプローラと INFORMATION_SCHEMA
ビューを使用して、高度なランタイムがクエリの実行時間とスロット使用量に与える影響を評価できます。
高度なランタイムを有効にしたときと有効にしていないときのクエリのパフォーマンスを評価する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery] ページに移動します。
クエリエディタで新しいタブを開きます。
そのクエリタブでキャッシュに保存されたクエリ結果の使用を無効にする。
テストクエリをクエリタブに入力するか、コピーします。
テストクエリを数回実行して、ベースラインのパフォーマンスを確立します。各実行後に、次の手順でクエリのパフォーマンス指標を決定します。
- 管理ジョブ エクスプローラでクエリ実行の詳細を表示します。
新しいクエリタブで次のクエリを実行して、
INFORMATION_SCHEMA.JOBS_BY_USER
ビュー からジョブのパフォーマンス データを取得します。SELECT job_id, end_time - start_time AS duration, total_slot_ms, query FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_USER WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND job_type='QUERY' AND total_slot_ms IS NOT NULL ORDER BY creation_time DESC, query ASC LIMIT 1000;
ステップ 5 を繰り返します。
高度なランタイムを有効にする前後のテストクエリのクエリ レイテンシとスロット使用量の指標を比較します。