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 に個別に設定します。この例では、col2 列と col3 列が結果に表示されます。これらの粒度が明示的に設定されているからです。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       |
+-------------+-------------------+---------------+--------------+