BI Engine の優先テーブル
BigQuery BI Engine の優先テーブル機能を使用すると、BI Engine による高速化を特定のテーブルに限定できます。その他のテーブルに対するクエリには、通常の BigQuery スロットが使用されます。たとえば、優先テーブルを使用すると、ビジネスにとって重要なテーブルとダッシュボードのみを高速化できます。
プロジェクトに、すべての優先テーブルを保持するのに十分な RAM がない場合は、BI Engine が最近アクセスされていないパーティションと列をオフロードします。高速化を必要とする新しいクエリのためにメモリが解放されます。
優先テーブルを指定する
優先テーブルのセットを指定するには、次のオプションを使用できます。
- Google Cloud コンソール
- SQL のデータ定義言語(DDL)ステートメント
Google Cloud コンソールで優先テーブルを指定する
新しい予約を作成するとき、または既存の予約を編集するときに、優先テーブルのセットを指定できます。BI Engine の予約を含むプロジェクトからテーブルを選択するか、他の BigQuery テーブルを選択できます。
新しい予約に優先テーブルを指定する
新しい予約を作成するときに高速化用のテーブルのセットを指定するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
BigQuery のナビゲーション メニューで、[BI Engine] をクリックします。
[予約を作成] をクリックします。
[予約を作成] ページで、[ロケーション] と [容量(GiB)] のオプションを指定し、[次へ] をクリックします。
[優先テーブル(省略可)] セクションが表示されます。
[テーブル ID] フィールドに、パターン
PROJECT.DATASET.TABLE
を使用して高速化用のテーブルを指定します。次のように置き換えます。
PROJECT
: 実際の Google Cloud プロジェクト IDDATASET
: データセットTABLE
: 高速化用のテーブル。
[次へ] をクリックします。
優先テーブルを使用して予約を作成するには、[作成] をクリックします。
既存の予約に優先テーブルを指定する
既存の予約で高速化用のテーブルのセットを指定するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
BigQuery のナビゲーション メニューで、[BI Engine] をクリックします。
プロジェクトが優先テーブルで構成されている場合、一連のテーブルが [優先テーブル] 列に表示されます。
編集する予約の行で、[アクション] 列のアイコンをクリックし、[編集] を選択します。
変更が反映されるまでには、10 秒ほどかかる場合があります。優先テーブルリスト内のテーブルのみが BI Engine アクセラレーションを使用できます。
SQL を使用して優先テーブルを指定する
ALTER BI_CAPACITY SET OPTIONS
DDL ステートメントを使用して、優先テーブルと予約サイズのセットを変更できます。
ALTER BI_CAPACITY `<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 プロジェクト IDDATASET
: 高速化用のテーブルを含むデータセットTABLE#
: 高速化用のテーブル。
SQL で検証する
優先テーブルのセットなど、予約のステータスを確認するには、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 の優先テーブルは、テーブルのみをサポートします。
- マテリアライズド ビューへのクエリが高速化されるのは、マテリアライズド ビューとそのベーステーブルの両方が優先テーブルリストに含まれている場合のみです。
- 高速化用のパーティションまたは列の指定はサポートされていません。
JSON
型の列はサポートされていないため、BI Engine によって高速化されません。- 高速化するには、
JOIN
クエリ内のすべてのテーブルが優先テーブルリストに含まれている必要があります。優先リストに含まれていないテーブルが 1 つでも、そのクエリで BI Engine を使用することはできません。 - 一般公開データセットは、Google Cloud コンソールではサポートされていません。一般公開テーブルを優先テーブルとして追加するには、API または DDL を使用します。
料金
BI Engine の料金については、BI Engine の料金のページをご覧ください。
次のステップ
- リスクなし、かつ無料で BigQuery サンドボックスを使ってみる。
- BI Engine のその他のビジネス インテリジェンス ツールの使用方法を学習する。
- BI Engine の容量を予約する方法を確認する。