SEARCH_INDEXES ビュー

INFORMATION_SCHEMA.SEARCH_INDEXES ビューには、データセット内の検索インデックスごとに 1 行が表示されます。

必要な権限

検索インデックスのメタデータを表示するには、インデックスを含むテーブルに対する bigquery.tables.get または bigquery.tables.list の Identity and Access Management(IAM)権限が必要です。次に示す事前定義された各 IAM ロールには、これらのうち少なくとも 1 つの権限が含まれています。

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。

スキーマ

INFORMATION_SCHEMA.SEARCH_INDEXES ビューにクエリを実行すると、データセット内の各検索インデックスに関する情報が 1 行ずつ表示されるクエリ結果が返されます。

INFORMATION_SCHEMA.SEARCH_INDEXES ビューのスキーマは次のとおりです。

列名 データ型
index_catalog STRING データセットを含むプロジェクトの名前
index_schema STRING インデックスを含むデータセットの名前。
table_name STRING インデックスが作成されるベーステーブルの名前。
index_name STRING インデックスの名前。
index_status STRING インデックスのステータス: ACTIVEPENDING DISABLEMENTTEMPORARILY DISABLED、または PERMANENTLY DISABLED
  • ACTIVE はインデックスが使用可能または作成中であることを意味します。インデックス作成の進行状況を確認するには、coverage_percentage をご覧ください。
  • PENDING DISABLEMENT は、インデックス付きベーステーブルの合計サイズが組織の上限を超えていることを意味します。インデックスは削除のキューに追加されます。この状態では、インデックスは検索クエリで使用でき、検索インデックスのストレージに対して課金されます。
  • TEMPORARILY DISABLED は、インデックス付きベーステーブルの合計サイズが組織の上限を超えているか、インデックス付きベーステーブルが 10 GB 未満であることを意味します。この状態の場合、インデックスは検索クエリで使用されず、検索インデックスのストレージに対して課金されません。
  • PERMANENTLY DISABLED は、インデックス付きの列の型を STRING から INT64 に変更するなど、ベーステーブルに対して互換性のないスキーマ変更があることを意味します。
creation_time TIMESTAMP インデックスが作成された時刻。
last_modification_time TIMESTAMP インデックス構成が最後に変更された時刻。たとえば、インデックス付きの列の削除などです。
last_refresh_time TIMESTAMP テーブルデータが最後にインデックスに登録された時刻。値 NULL は、インデックスがまだ利用できないことを意味します。
disable_time TIMESTAMP インデックスのステータスが DISABLED に設定された時刻。インデックスのステータスが DISABLED でない場合、値は NULL です。
disable_reason STRING インデックスが無効になった理由。インデックスのステータスが DISABLED でない場合は NULL です。
DDL STRING インデックスの作成に使用される DDL ステートメント。
coverage_percentage INTEGER インデックス登録されたテーブルデータのおおよその割合。0% は、一部のデータがすでにインデックスに登録されていても、SEARCH クエリでそのインデックスを使用できないことを意味します。
unindexed_row_count INTEGER インデックスに登録されていないベーステーブル内の行数。
total_logical_bytes INTEGER インデックスの課金対象の論理バイト数。
total_storage_bytes INTEGER インデックスの課金対象ストレージのバイト数。
analyzer STRING 検索インデックスのトークンの生成に使用するテキスト アナライザ

スコープと構文

このビューに対するクエリでは、データセット修飾子を指定する必要があります。次の表に、このビューのリージョン スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES データセット レベル データセットのロケーション
次のように置き換えます。

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
  • DATASET_ID: データセットの ID。詳しくは、データセット修飾子をご覧ください。

-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;

次の例では、プロジェクト my_project にあるデータセット my_dataset 内のテーブルに対するアクティブな検索インデックスがすべて表示されます。これには、名前、作成に使用された DDL ステートメント、カバレッジの割合、およびテキスト アナライザが含まれます。インデックス付きベーステーブルが 10 GB 未満の場合、インデックスにはデータが入らず、その場合の coverage_percentage は 0 です。

SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';

結果は次のようになります。

+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| table_name  | index_name  | ddl                                                                                  | coverage_percentage | analyzer       |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| small_table | names_index | CREATE SEARCH INDEX `names_index` ON `my_project.my_dataset.small_table`(names)      | 0                   | NO_OP_ANALYZER |
| large_table | logs_index  | CREATE SEARCH INDEX `logs_index` ON `my_project.my_dataset.large_table`(ALL COLUMNS) | 100                 | LOG_ANALYZER   |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+