SEARCH_INDEX_COLUMN_OPTIONS ビュー

INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS ビューには、データセット内のテーブルの検索インデックス列に設定されたオプションごとに 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_INDEX_COLUMN_OPTIONS ビューにクエリを実行すると、データセット内のテーブルの検索インデックス付き列に設定されているオプションごとに 1 行が表示されるクエリ結果が返されます。

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

列名 データ型
index_catalog STRING データセットを含むプロジェクトの名前。
index_schema STRING インデックスを含むデータセットの名前。
table_name STRING インデックスが作成されるベーステーブルの名前。
index_name STRING インデックスの名前。
column_name STRING オプションが設定されているインデックス列の名前。
option_name STRING 列で指定されたオプションの名前。
option_type STRING オプションのタイプ。
option_value STRING オプションの値。

スコープと構文

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

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS データセット レベル データセットの場所
次のように置き換えます。
  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
  • DATASET_ID: データセットの ID詳しくは、データセット修飾子をご覧ください。

-- Returns metadata for search index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;

次の例では、デフォルトのインデックス列の粒度を COLUMN に設定し、col2col3 の粒度をそれぞれ GLOBALCOLUMN に個別に設定しています。この例では、列 col2col3 の粒度が明示的に設定されているため、結果に表示されます。列 col1 はデフォルトの粒度を使用しているため、粒度は表示されません。

CREATE SEARCH INDEX index1 ON `mydataset.table1` (
  ALL COLUMNS WITH COLUMN OPTIONS (
    col2 OPTIONS(index_granularity = 'GLOBAL'),
    col3 OPTIONS(index_granularity = 'COLUMN')
  )
)
OPTIONS(
  default_index_column_granularity = 'COLUMN'
);

SELECT
  index_column_name, option_name, option_type, option_value
FROM
  mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
WHERE
  index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';

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

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+

ALL COLUMNS を使用しない次の同等の例では、デフォルトのインデックス列の粒度を COLUMN に設定し、2 つの列の粒度をそれぞれ GLOBALCOLUMN に個別に設定しています。

CREATE SEARCH INDEX index1 ON `mydataset.table1` (
  col1,
  col2 OPTIONS(index_granularity = 'GLOBAL'),
  col3 OPTIONS(index_granularity = 'COLUMN')
)
OPTIONS(
  default_index_column_granularity = 'COLUMN'
);

SELECT
  index_column_name, option_name, option_type, option_value
FROM
  mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
WHERE
  index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';

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

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+