SEARCH_INDEX_COLUMNS 뷰
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
뷰에는 데이터 세트의 각 테이블에 대한 검색 색인 생성 열마다 행이 하나씩 포함됩니다.
필수 권한
검색 색인 메타데이터를 보려면 색인이 있는 테이블에 대한 bigquery.tables.get
또는 bigquery.tables.list
Identity and Access Management(IAM) 권한이 필요합니다. 다음과 같은 사전 정의된 IAM 역할에는 이러한 권한 중 하나 이상이 포함되어 있습니다.
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
뷰를 쿼리하면 쿼리 결과에서 데이터 세트에 있는 각 테이블의 색인이 생성된 각 열마다 행이 하나씩 포함됩니다.
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>> | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+