SEARCH_INDEXES ビュー
INFORMATION_SCHEMA.SEARCH_INDEXES ビューには、データセット内の検索インデックスごとに 1 行が表示されます。
必要な権限
検索インデックスのメタデータを表示するには、インデックスを含むテーブルに対する bigquery.tables.get または bigquery.tables.list の Identity and Access Management(IAM)権限が必要です。次に示す事前定義された各 IAM ロールには、これらのうち少なくとも 1 つの権限が含まれています。
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/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 | 
      インデックスのステータス: ACTIVE、PENDING
          DISABLEMENT、TEMPORARILY DISABLED、または PERMANENTLY DISABLED。
  | 
    
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 | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+