クエリのドライランの発行
bq
コマンドライン ツールでクエリを実行する場合、--dry_run
フラグを使用すると、クエリで読み取られるバイト数を見積もることができます。API やクライアント ライブラリを使用してクエリジョブを送信するときに dryRun
パラメータを使用することもできます。
ドライランはクエリスロットを使用しないため、ドライランの実行に対しては課金されません。ドライランによって返された見積もりを料金計算ツールで使用すると、クエリの費用を計算できます。
始める前に
このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。
必要な権限
クエリジョブを実行するには、そのクエリジョブを実行するプロジェクトに対する bigquery.jobs.create
Identity and Access Management(IAM)権限が必要です。
次の各事前定義 IAM ロールには、クエリジョブを実行するために必要な権限が含まれています。
roles/bigquery.admin
roles/bigquery.jobUser
roles/bigquery.user
また、クエリで参照するすべてのテーブルとビューに対する bigquery.tables.getData
権限も必要です。さらに、ビューをクエリする場合は、基盤となるすべてのテーブルとビューに対してこの権限が必要になります。ただし、承認済みビューまたは承認済みデータセットを使用する場合は、基礎となるソースデータにアクセスする必要はありません。
次の各 IAM 事前定義ロールには、クエリで参照するすべてのテーブルとビューに対して必要な権限が含まれています。
roles/bigquery.admin
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.dataViewer
BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。
ドライランを実行する
クエリジョブのドライランを実行するには、次のようにします。
bq
コマンドライン ツールの場合はquery
コマンドで--dry_run
フラグを指定- API またはクライアント ライブラリを使用するときはジョブ構成で
dryRun
パラメータを指定
ドライランを実行するには、次の操作を行います。
Console
Google Cloud Console の [BigQuery] ページに移動します。
クエリエディタにクエリを入力します。
クエリが有効な場合、クエリで処理されるデータの量とともにチェックマークが自動的に表示されます。クエリが無効な場合は、感嘆符がエラー メッセージとともに表示されます。
bq
--dry_run
フラグを使用して次のようなクエリを入力します。
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
このコマンドにより、次のレスポンスが生成されます。
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
API を使用してドライランを実行するには、JobConfiguration タイプで dryRun
を true
に設定してクエリジョブを送信します。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に沿って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の手順に沿って設定を行ってください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
Python クライアント ライブラリを使用してドライランを実行するには、QueryJobConfig.dry_run プロパティを True
に設定します。ドライランのクエリ構成が渡されると、Client.query() は常に完了した QueryJob を返します。
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用にある Python の設定手順を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。