SEARCH_INDEX_COLUMNS ビュー
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
ビューには、データセット内の各テーブルの検索インデックス列ごとに 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_COLUMNS
ビューにクエリを実行すると、クエリ結果として、データセット内の各テーブルのインデックス付き列ごとに 1 行が表示されます。
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 | |
---|---|---|---|
index_catalog |
STRING |
データセットを含むプロジェクトの名前 | |
index_schema |
STRING |
インデックスを含むデータセットの名前。 | |
table_name |
STRING |
インデックスが作成されるベーステーブルの名前。 | |
index_name |
STRING |
インデックスの名前。 | |
index_column_name |
STRING |
最上位のインデックス付き列の名前。 | |
index_field_path |
STRING |
拡張されたインデックス付きフィールドのフルパス(列名から始まる)。フィールドはピリオドで区切る。 |
スコープと構文
このビューに対するクエリでは、データセット修飾子を指定する必要があります。次の表に、このビューのリージョン スコープを示します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS |
データセット レベル | データセットのロケーション |
- 省略可:
PROJECT_ID
: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
DATASET_ID
: データセットの ID詳しくは、データセット修飾子をご覧ください。
例
-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS;
例
次の例では、my_table
のすべての列に対して検索インデックスを作成します。
CREATE TABLE dataset.my_table( a STRING, b INT64, c STRUCT <d INT64, e ARRAY<STRING>, f STRUCT<g STRING, h INT64>>) AS SELECT 'hello' AS a, 10 AS b, (20, ['x', 'y'], ('z', 30)) AS c; CREATE SEARCH INDEX my_index ON dataset.my_table(ALL COLUMNS);
次のクエリは、どのフィールドにインデックスが付いているかの情報を抽出します。index_field_path
は、列のどのフィールドにインデックスが付いているかを示します。これは、インデックス付きフィールドへのフルパスが指定されている STRUCT
の場合だけは index_column_name
と異なります。この例では、列 c
に ARRAY<STRING>
フィールド e
と、STRING
フィールド g
を含む f
という別の STRUCT
が含まれていて、それぞれにインデックスが付けられます。
SELECT table_name, index_name, index_column_name, index_field_path
FROM my_project.dataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
次のような結果になります。
+------------+------------+-------------------+------------------+ | table_name | index_name | index_column_name | index_field_path | +------------+------------+-------------------+------------------+ | my_table | my_index | a | a | | my_table | my_index | c | c.e | | my_table | my_index | c | c.f.g | +------------+------------+-------------------+------------------+
次のクエリは、INFORMATION_SCHEMA.SEARCH_INDEX_COUMNS
ビューを INFORMATION_SCHEMA.SEARCH_INDEXES
および INFORMATION_SCHEMA.COLUMNS
ビューに結合し、検索インデックスのステータスと各列のデータ型を含めます。
SELECT index_columns_view.index_catalog AS project_name, index_columns_view.index_SCHEMA AS dataset_name, indexes_view.TABLE_NAME AS table_name, indexes_view.INDEX_NAME AS index_name, indexes_view.INDEX_STATUS AS status, index_columns_view.INDEX_COLUMN_NAME AS column_name, index_columns_view.INDEX_FIELD_PATH AS field_path, columns_view.DATA_TYPE AS data_type FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEXES indexes_view INNER JOIN mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS index_columns_view ON indexes_view.TABLE_NAME = index_columns_view.TABLE_NAME AND indexes_view.INDEX_NAME = index_columns_view.INDEX_NAME LEFT OUTER JOIN mydataset.INFORMATION_SCHEMA.COLUMNS columns_view ON indexes_view.INDEX_CATALOG = columns_view.TABLE_CATALOG AND indexes_view.INDEX_SCHEMA = columns_view.TABLE_SCHEMA AND index_columns_view.TABLE_NAME = columns_view.TABLE_NAME AND index_columns_view.INDEX_COLUMN_NAME = columns_view.COLUMN_NAME ORDER BY project_name, dataset_name, table_name, column_name;
次のような結果になります。
+------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+ | project | dataset | table | index_name | status | column_name | field_path | data_type | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+ | my_project | my_dataset | my_table | my_index | ACTIVE | a | a | STRING | | my_project | my_dataset | my_table | my_index | ACTIVE | c | c.e | STRUCT<d INT64, e ARRAY<STRING>, f STRUCT<g STRING, h INT64>> | | my_project | my_dataset | my_table | my_index | ACTIVE | c | c.f.g | STRUCT<d INT64, e ARRAY<STRING>, f STRUCT<g STRING, h INT64>> | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+