BI Engine の容量を予約する
予約を作成して、BigQuery BI Engine の容量を購入します。予約は、予約の作成時に指定したプロジェクトとリージョンに関連付けられます。BI Engine はこの容量を使用してデータをキャッシュに保存します。BI Engine の最大予約サイズの詳細については、割り当てと上限をご覧ください。
BigQuery BI Engine を使用する場合は、プロジェクトに対して購入した BI Engine の容量に基づいて料金が発生します。予約は GiB/時間で請求され、料金はオンデマンド料金に従ってリージョンごとに設定されます。容量ベースのコミットメントがある場合は、アクティブなコミットメントに基づいて最大 100% の割引が適用されます。詳細については、容量ベースの料金をご覧ください。
必要なロール
予約の作成と削除に必要な権限を取得するには、プロジェクトに対して BigQuery リソース管理者(roles/bigquery.resourceAdmin
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
予約を作成する
オンデマンドで BI Engine の容量を予約するには、以下の手順を実行します。
コンソール
[BigQuery] ページの [管理] で、[BI Engine] ページに移動します。
[
予約を作成] をクリックします。[予約を作成] ページで、[ステップ 1] の以下の手順を実行します。
- プロジェクト名を確認します。
- ロケーションを選択します。クエリ対象のデータセットのロケーションと一致する必要があります。
スライダーを調整して、予約するメモリ容量を指定します。 次の例では、容量を 2 GB に設定しています。現在の最大値は 250 GB です。プロジェクトでの最大予約容量の引き上げをリクエストできます。予約容量の引き上げには、ほとんどのリージョンで対応可能です。処理に 3 日間~1 週間かかることがあります。
[次へ] をクリックします。
優先テーブル(省略可)。優先テーブルを使用すると、BI Engine アクセラレーションの対象を特定のテーブルに限定できます。その他すべてのテーブルでは、通常の BigQuery スロットが使用されます。
[テーブル ID] フィールドに、アクセラレーションの対象とするテーブルを
PROJECT.DATASET.TABLE
のパターンで指定します。次のように置き換えます。
PROJECT
: 実際の Google Cloud プロジェクト IDDATASET
: データセットTABLE
: 加速するテーブル。
[次へ] をクリックします。
[ステップ 3] で、予約の詳細を確認してから、[作成] をクリックします。
予約を確認すると、[予約] ページに詳細が表示されます。
SQL
ALTER BI_CAPACITY SET OPTIONS
DDL ステートメントを使用して、BI Engine 予約を作成または変更します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default` SET OPTIONS ( size_gb = VALUE, preferred_tables = ['TABLE_PROJECT_ID.DATASET.TABLE1', 'TABLE_PROJECT_ID.DATASET.TABLE2']);
次のように置き換えます。
PROJECT_ID
: BI Engine アクセラレーションを利用するプロジェクトの ID(省略可)。省略すると、デフォルトのプロジェクトが使用されます。LOCATION_ID
: データをキャッシュに保存する必要があるロケーション(region-
で始まります)。例:region-us
、region-us-central1
VALUE
: BI Engine 容量の予約のINT64
サイズ(ギガバイト単位、1~250 GB)。プロジェクトでの最大予約容量の引き上げをリクエストできます。予約容量の引き上げには、ほとんどのリージョンで対応可能です。処理に 3 日間~1 週間かかることがあります。VALUE
を設定すると、既存の値が存在する場合は置き換えられます。NULL
に設定すると、そのオプションの値が消去されます。TABLE_PROJECT_ID.DATASET.TABLE
: アクセラレーションを適用する参照テーブルのリスト(省略可)。TABLE_PROJECT_ID.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)。プロジェクトでの最大予約容量の引き上げをリクエストできます。予約容量の引き上げには、ほとんどのリージョンで対応可能です。処理に 3 日間~1 週間かかることがあります。LOCATION
: クエリ対象のデータセットのロケーション
容量の見積もりと測定
BI Engine 予約の容量要件を見積もるには、次の手順を行います。
TOTAL_LOGICAL_BYTES
ビューを表示して、テーブルの論理サイズを確認し、そのサイズを最初の BI Engine 予約に使用します。例:SELECT SUM(TOTAL_LOGICAL_BYTES) / 1024.0 / 1024.0 / 1024.0 AS logical_size_gb FROM `region-us.INFORMATION_SCHEMA.TABLE_STORAGE` WHERE TABLE_NAME IN UNNEST(["Table1", "Table2"]);
たとえば、合計 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 はデータの追加コピーを読み込み、再分配してレスポンス時間を最適化します。
予約を変更する
既存の予約を変更する手順は次のとおりです。
コンソール
既存の予約でアクセラレーション対象のテーブルのセットを指定するには、次の手順を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
BigQuery のナビゲーション メニューで、[BI Engine] をクリックします。
プロジェクトが優先テーブルで構成されている場合、一連のテーブルが [優先テーブル] 列に表示されます。
編集する予約の行で、[アクション] 列のアイコンをクリックし、[編集] を選択します。
[容量(GiB)] スライダーを、予約するメモリ容量に合わせます。[次へ] をクリックします。
優先テーブル: 既存の予約でアクセラレーション対象のテーブルセットを指定するには、[テーブル ID] フィールドに、アクセラレーションの対象とするテーブルを
PROJECT.DATASET.TABLE
のパターンで指定します。次のように置き換えます。
PROJECT
: 実際の Google Cloud プロジェクト IDDATASET
: データセットTABLE
: アクセラレーションの対象とするテーブル。
変更が反映されるまでには、10 秒ほどかかる場合があります。優先テーブルリスト内のテーブルのみが BI Engine アクセラレーションを使用できます。
[次へ] をクリックします。
変更後の予約を確認します。同意する場合は、[更新] をクリックします。
SQL
ALTER BI_CAPACITY SET OPTIONS
DDL ステートメントを使用して、BI Engine 予約を作成または変更できます。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default` SET OPTIONS ( size_gb = VALUE, preferred_tables = [`TABLE_PROJECT_ID.DATASET.TABLE1`, `TABLE_PROJECT_ID.DATASET.TABLE2`]);
以下を置き換えます。
PROJECT_ID
: BI Engine アクセラレーションを利用するプロジェクトの ID(省略可)。省略すると、デフォルトのプロジェクトが使用されます。LOCATION_ID
: データをキャッシュに保存する必要があるロケーション(region-
で始まります)。例:region-us
、region-us-central1
。VALUE
: BI Engine 容量の予約のINT64
サイズ(ギガバイト単位、1~250 GB)。プロジェクトでの最大予約容量の引き上げをリクエストできます。予約容量の引き上げには、ほとんどのリージョンで対応可能です。処理に 3 日間~1 週間かかることがあります。VALUE
を設定すると、既存の値が存在する場合は置き換えられます。NULL
に設定すると、そのオプションの値が消去されます。TABLE_PROJECT_ID.DATASET.TABLE
: アクセラレーションを適用する優先テーブルのリスト(省略可)。TABLE_PROJECT_ID.DATASET.TABLE or DATASET.TABLE
形式で指定します。プロジェクトを省略すると、デフォルトのプロジェクトが使用されます。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
予約を削除する
容量の予約を削除するには、以下の手順を実行します。
コンソール
[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
bq update
コマンドを使用して、DDL ステートメントをクエリ パラメータとして指定ます。
bq --project_id="PROJECT_ID" \ update --reservation --bi_reservation_size=0 \ --location=LOCATION
以下を置き換えます。
PROJECT_ID
: オブジェクトの IDLOCATION
: クエリ対象のデータセットのロケーション
BI Engine の情報を検証する
INFORMATION_SCHEMA
テーブルに対してクエリを実行すると、BI Engine の容量に関する情報を取得できます。
予約ステータスを確認する
優先テーブルのセットなど、予約のステータスを確認するには、SQL クエリを使用して INFORMATION_SCHEMA.BI_CAPACITIES
ビューを表示します。次に例を示します。
SELECT * FROM `<PROJECT_ID>.region-<REGION>.INFORMATION_SCHEMA.BI_CAPACITIES`;
Google Cloud コンソールでは、この SQL クエリの結果は次のようになります。
予約の変更を表示する
特定の予約の変更履歴を表示するには、SQL クエリで INFORMATION_SCHEMA.BI_CAPACITY_CHANGES
ビューを使用します。例:
SELECT * FROM `<PROJECT_ID>.region-<REGION>.INFORMATION_SCHEMA.BI_CAPACITY_CHANGES` ORDER BY change_timestamp DESC LIMIT 3;
Google Cloud コンソールでは、この SQL クエリの結果は次のようになります。
次のステップ
- BI Engine の詳細を確認する。
- BI Engine の料金を確認する。
- Looker Studio でデータを分析する。
- BI Engine をモニタリングする