Tampilan SEARCH_INDEX_COLUMNS
Tampilan INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
berisi satu baris untuk setiap
kolom yang diindeks penelusuran di setiap tabel dalam set data.
Izin yang diperlukan
Untuk melihat metadata indeks penelusuran, Anda memerlukan izin Identity and Access Management (IAM) bigquery.tables.get
atau bigquery.tables.list
pada tabel dengan indeks. Setiap peran IAM yang telah ditetapkan berikut menyertakan setidaknya salah satu izin ini:
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
roles/bigquery.user
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Skema
Saat Anda membuat kueri tampilanINFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
, hasil kueri akan berisi satu baris untuk setiap kolom yang diindeks di setiap tabel dalam set data.
Tampilan INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
memiliki skema berikut
Nama kolom | Jenis data | Nilai | |
---|---|---|---|
index_catalog |
STRING |
Nama project yang berisi set data. | |
index_schema |
STRING |
Nama set data yang berisi indeks. | |
table_name |
STRING |
Nama tabel dasar tempat indeks dibuat. | |
index_name |
STRING |
Nama indeks. | |
index_column_name |
STRING |
Nama kolom tingkat atas yang diindeks. | |
index_field_path |
STRING |
Jalur lengkap kolom terindeks yang diperluas, dimulai dengan nama kolom. Kolom dipisahkan dengan titik. |
Cakupan dan sintaksis
Kueri terhadap tampilan ini harus memiliki penentu set data. Tabel berikut menjelaskan cakupan wilayah untuk tampilan ini:
Nama Tampilan | Cakupan resource | Cakupan region |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS |
Level set data | Lokasi set data |
Opsional: PROJECT_ID
: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.
DATASET_ID
: ID set data Anda. Untuk mengetahui informasi selengkapnya, lihat Penentu set data.
Contoh
-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS;
Contoh
Contoh berikut membuat indeks penelusuran di semua kolom 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);
Kueri berikut mengekstrak informasi tentang kolom yang diindeks.
index_field_path
menunjukkan kolom mana pada kolom yang diindeks. Hal ini berbeda dengan index_column_name
hanya dalam kasus
STRUCT
, yang memberikan jalur lengkap ke kolom terindeks. Dalam contoh ini,
kolom c
berisi kolom ARRAY<STRING>
e
dan STRUCT
lain yang disebut
f
dan berisi kolom STRING
g
, yang masing-masing diindeks.
SELECT table_name, index_name, index_column_name, index_field_path
FROM my_project.dataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
Hasilnya serupa dengan berikut ini:
+------------+------------+-------------------+------------------+ | 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 | +------------+------------+-------------------+------------------+
Kueri berikut menggabungkan tampilan INFORMATION_SCHEMA.SEARCH_INDEX_COUMNS
dengan
tampilan INFORMATION_SCHEMA.SEARCH_INDEXES
dan INFORMATION_SCHEMA.COLUMNS
untuk menyertakan status indeks penelusuran dan jenis data setiap kolom:
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;
Hasilnya mirip dengan berikut ini:
+------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+ | 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>> | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+