BI Engine の容量を予約する
BigQuery BI Engine を使用する場合は、プロジェクト用に購入した BI Engine の容量に基づいて料金が発生します。予約は GB/時間で請求され、料金はオンデマンド料金に従ってリージョンごとに設定されます。容量ベースのコミットメントがある場合は、アクティブなコミットメントに基づいて最大 100% の割引が適用されます。詳細については、容量ベースの料金をご覧ください。
予約を作成して、BigQuery BI Engine の容量を購入します。予約は、予約の作成時に特定したプロジェクトに接続されます。BI Engine はこの容量を使用して、キャッシュに保存できるデータの量を決定します。BI Engine の最大予約サイズの詳細については、割り当てと上限をご覧ください。
必要なロール
予約の作成と削除に必要な権限を取得するには、プロジェクトで BigQuery リソース管理者(roles/bigquery.resourceAdmin
)の IAM ロールを付与するように管理者へ依頼してください。ロールの付与の詳細については、アクセス管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
予約を作成する
オンデマンドで BI Engine の容量を予約するには、以下の手順を実行します。
コンソール
[BigQuery] ページの [管理] で、[BI Engine] ページに移動します。
[
予約を作成] をクリックします。[予約の作成] ページで、[ステップ 1] の以下の手順を実行します。
- プロジェクト名を確認します。
- ロケーションを選択します。クエリするデータセットのロケーションと一致する必要があります。
スライダーを調整して、予約するメモリ容量を指定します。次の例では、容量を 2 GB に設定しています。現在の最大値は 250 GB です。
[次へ] をクリックします。
必要に応じて、優先テーブルの [テーブル ID] を入力し、[次へ] をクリックします。
[ステップ 3] で、予約の詳細を確認し、[作成] をクリックします。
予約を確認すると、[予約] ページに詳細が表示されます。
SQL
BI Engine の予約容量のオプションを設定します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default` SET OPTIONS ( size_gb = VALUE, preferred_tables = <ARRAY<STRING>>);
次のように置き換えます。
PROJECT_ID
: BI Engine アクセラレーションを利用するプロジェクトの ID(省略可)。省略すると、デフォルトのプロジェクトが使用されます。LOCATION_ID
: データをキャッシュに保存する必要があるロケーション(region-
で始まります)。例:region-us
、region-us-central1
VALUE
: BI Engine 容量の予約のINT64
サイズ(ギガバイト単位、1~250 GB)。VALUE
を設定すると、既存の値が存在する場合は置き換えられます。NULL
に設定すると、そのオプションの値が消去されます。STRING
: アクセラレーションが適用されるテーブルのオプション リスト。形式:project.dataset.table or dataset.table
。プロジェクトを省略すると、デフォルトのプロジェクトが使用されます。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
bq update
コマンドを使用し、クエリ パラメータとしてデータ定義言語(DDL)ステートメントを指定します。
bq --project_id=PROJECT_ID update \ --bi_reservation_size=SIZE \ --location=LOCATION \ --reservation
次のように置き換えます。
PROJECT_ID
: プロジェクトの IDSIZE
: 予約メモリ容量(ギガバイト単位、1~250 GB)LOCATION
: クエリ対象のデータセットのロケーション
容量の見積もりと測定
BI Engine の予約の容量要件を見積もるには、次の操作を行います。
TABLE_STORAGE
ビュー情報スキーマを表示して、テーブルの論理ストレージ サイズを確認し、それを最初の BI Engine の予約に使用します。たとえば、200 GiB のデータを含むテーブルに対するクエリの場合は、200 GiB の BI Engine の予約から始めることをおすすめします。使用可能なフィールドまたはパーティションのサブセットのみを使用する、より選択的なクエリは、小さい予約サイズから始めることができます。- BI Engine の予約と同じプロジェクトとリージョンで作成された、最適化が必要なすべてのクエリを実行します。目標は、最適化する必要があるワークロードを概算することです。負荷が増加すると、クエリを処理するためにより多くのメモリが必要になります。データは、クエリの受信後に BI Engine に読み込まれます。
- BI Engine RAM の予約を、Cloud Monitoring の
bigquerybiengine
指標で使用されているバイト数(reservation/used_bytes
)と比較します。 - 結果に基づいて予約容量を調整します。多くのユースケースでは、予約を小さくすることでクエリの大部分を高速化し、費用とリソースを節約できます。BI Engine の Monitoring の詳細については、BI Engine のモニタリングをご覧ください。
BI Engine の予約サイズには、次の要因が影響します。
- BI Engine は、クエリの処理に必要な、頻繁にアクセスされる列と行のみをキャッシュに保存します。
- 予約が完全に使用されると、BI Engine は最も長い間使用されていないデータをオフロードして、新しいクエリのために空き容量を増やそうとします。
- 計算負荷の高い複数のクエリが同じデータセットを使用している場合、BI Engine はデータの追加コピーを読み込み、再分散してレスポンス時間を最適化します。
予約の削除
容量の予約を削除するには、以下の手順を実行します。
コンソール
[BigQuery] ページの [管理] で、[BI Engine] ページに移動します。
[予約] セクションで、予約を探します。
[操作] 列で、予約の右側にある
アイコンをクリックし、[削除] を選択します。[予約を削除しますか?] ダイアログで「DELETE」と入力して、[削除] をクリックします。
SQL
BI Engine の容量のオプションを設定します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default` SET OPTIONS ( size_gb = 0);
次のように置き換えます。
PROJECT_ID
: BI Engine アクセラレーションを利用するプロジェクトの ID(省略可)。省略すると、デフォルトのプロジェクトが使用されます。LOCATION_ID
: データをキャッシュに保存する必要があるロケーション(region-
で始まります)。例:region-us
、region-us-central1
プロジェクト内のすべての容量予約を削除すると、そのプロジェクトでは BI Engine が無効になります。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
DDL ステートメントをクエリ パラメータとして指定して、bq update
コマンドを使用します。
bq --project_id="PROJECT_ID" \ update --reservation --bi_reservation_size=0 \ --location=LOCATION
次のように置き換えます。
PROJECT_ID
: プロジェクトの IDLOCATION
: クエリ対象のデータセットのロケーション
リソース メタデータを表示する
INFORMATION_SCHEMA
テーブルに対してクエリを実行すると、BI Engine の容量に関する情報を取得できます。BigQuery には、次の INFORMATION_SCHEMA
ビューが用意されています。
INFORMATION_SCHEMA.BI_CAPACITIES
には、BI Engine の容量の現在の状態に関するメタデータが含まれています。INFORMATION_SCHEMA.BI_CAPACITY_CHANGES
には、BI Engine の容量の変更履歴が含まれます。
次のステップ
- BI Engine の詳細を確認する。
- BI Engine の料金を確認する。
- BI Engine で Looker Studio を使用したクイックスタートを実行する。