BI Engine の優先テーブル

BigQuery BI Engine の優先テーブル機能を使用すると、BI Engine アクセラレーションを特定のテーブルセットに制限できます。他のすべてのテーブルに対するクエリでは、通常の BigQuery スロットが使用されます。たとえば、優先テーブルでは、ビジネスに重要であると指定したテーブルとダッシュボードのみを加速できます。

プロジェクトに、すべての優先テーブルを保持するのに十分な RAM がない場合は、BI Engine が最近アクセスされていないパーティションと列をオフロードします。このプロセスにより、加速を必要とする新しいクエリのメモリが解放されます。

優先するテーブルを指定する

優先テーブルのセットを指定するには、次のオプションを使用できます。

  • コンソール
  • SQL のデータ定義言語(DDL)ステートメント

コンソールで優先テーブルを指定する

新しい予約を作成するとき、または既存の予約を編集するときに、優先テーブルのセットを指定できます。BI Engine の予約を含むプロジェクト内からテーブル、またはその他の BigQuery テーブルを選択できます。

新規予約用の優先テーブルを指定する

新しい予約を作成するときに加速するテーブルのセットを指定するには、次の手順を行います。

  1. コンソールで、[BigQuery] ページに移動します。

    BigQuery に移動

  2. BigQuery のナビゲーション メニューで、[BI Engine] をクリックします。

  3. [予約を作成] をクリックします。

  4. [予約を作成] ページで、[ロケーション] と [容量(GB)] のオプションを指定し、[次へ] をクリックします。

    [優先テーブル(オプション)] セクションが表示されます。

  5. [テーブル ID] フィールドに、パターン PROJECT.DATASET.TABLE を使用して加速するテーブルを指定します。

    以下を置き換えます。

    • PROJECT: 実際の Google Cloud プロジェクト ID
    • DATASET: データセット
    • TABLE: 加速するテーブル。
  6. [次へ] をクリックします。

  7. 優先テーブルを含む予約を作成するには、[作成] をクリックします。

既存の予約用の優先テーブルを指定する

既存の予約で加速用のテーブルのセットを指定するには、次の手順を行います。

  1. コンソールで、[BigQuery] ページに移動します。

    BigQuery に移動

  2. BigQuery のナビゲーション メニューで、[BI Engine] をクリックします。

    プロジェクトが優先テーブル用に構成されている場合、一連のテーブルが [優先テーブル] 列に表示されます。

    画像

  3. 編集する予約の行で、[操作] 列のアイコンをクリックし、[編集] を選択します。

    変更が有効になるまで約 5 分かかります。優先テーブルリストのテーブルだけが BI Engine アクセラレーションを使用できます。

SQL を使用して優先テーブルを指定する

優先する一連のテーブルと予約サイズを変更するには、ALTER BI_CAPACITY SET OPTIONS DDL ステートメントを使用します。

ALTER BI_CAPACTIY `<PROJECT_ID>.region-<REGION>.default`
SET OPTIONS (
  size_gb = 100,
  preferred_tables =
    ['TABLE_PROJECT_ID.DATASET.TABLE1',
    'TABLE_PROJECT_ID.DATASET.TABLE2']);

次のように置き換えます。

  • TABLE_PROJECT_ID: 加速化テーブルを含む Google Cloud プロジェクト ID
  • DATASET: 高速化テーブルを含むデータセット
  • TABLE#: 加速するテーブル。

SQL で検証する

一連の優先テーブルを含む予約のステータスを確認するには、SQL クエリを使用して INFORMATION_SCHEMA.BI_CAPACITIES ビューを表示します。次に例を示します。

SELECT
  *
FROM
  `<PROJECT_ID>.region-<REGION>.INFORMATION_SCHEMA.BI_CAPACITIES`;

コンソールでは、この 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;

コンソールでは、この SQL クエリの結果は次のようになります。

変更タイムスタンプ project_id project_number を含む結果行

制限事項

BI Engine の優先テーブルには、次の制限があります。

  • 優先テーブルの予約リストにビューを追加することはできません。BI Engine の優先テーブルでは、テーブルのみがサポートされます。
  • マテリアライズド ビューへのクエリが加速されるのは、マテリアライズド ビューとそのベーステーブルの両方が優先テーブルリストに含まれている場合のみです。
  • 加速用のパーティションまたは列の指定はサポートされていません。
  • クエリを加速するには、JOIN クエリのすべてのテーブルが優先テーブルリストに含まれている必要があります。優先リストに含まれないテーブルが 1 つでもある場合、クエリは BI Engine を使用できません。
  • コンソールでは、一般公開データセットはサポートされていません。一般公開テーブルを優先テーブルとして追加するには、API または DDL を使用します。

料金

BI Engine の料金については、BI Engine の料金のページをご覧ください。

次のステップ