Tampilan SEARCH_INDEXES

Tampilan INFORMATION_SCHEMA.SEARCH_INDEXES berisi satu baris untuk setiap indeks penelusuran 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 tampilan INFORMATION_SCHEMA.SEARCH_INDEXES, hasil kueri akan berisi satu baris untuk setiap indeks penelusuran dalam set data.

Tabel virtual INFORMATION_SCHEMA.SEARCH_INDEXES 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_status STRING Status indeks: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED, atau PERMANENTLY DISABLED.
  • ACTIVE berarti indeks dapat digunakan atau sedang dibuat. Lihat coverage_percentage untuk melihat progres pembuatan indeks.
  • PENDING DISABLEMENT berarti ukuran total tabel dasar yang diindeks melebihi batas organisasi Anda; indeks dimasukkan ke dalam antrean untuk dihapus. Dalam status ini, indeks dapat digunakan dalam kueri penelusuran dan Anda akan dikenai biaya untuk penyimpanan indeks penelusuran.
  • TEMPORARILY DISABLED berarti ukuran total tabel dasar yang diindeks melebihi batas organisasi Anda, atau tabel dasar yang diindeks lebih kecil dari 10 GB. Selama dalam status ini, indeks tidak digunakan dalam kueri penelusuran dan Anda tidak akan dikenai biaya untuk penyimpanan indeks penelusuran.
  • PERMANENTLY DISABLED berarti ada perubahan skema yang tidak kompatibel pada tabel dasar, seperti mengubah jenis kolom yang diindeks dari STRING menjadi INT64.
creation_time TIMESTAMP Waktu pembuatan indeks.
last_modification_time TIMESTAMP Terakhir kali konfigurasi indeks diubah. Misalnya, menghapus kolom yang diindeks.
last_refresh_time TIMESTAMP Terakhir kali data tabel diindeks. Nilai NULL berarti indeks belum tersedia.
disable_time TIMESTAMP Waktu status indeks ditetapkan ke DISABLED. Nilainya adalah NULL jika status indeks bukan DISABLED.
disable_reason STRING Alasan indeks dinonaktifkan. NULL jika status indeks bukan DISABLED.
DDL STRING Pernyataan DDL yang digunakan untuk membuat indeks.
coverage_percentage INTEGER Perkiraan persentase data tabel yang telah diindeks. 0% berarti indeks tidak dapat digunakan dalam kueri SEARCH, meskipun jika beberapa data telah diindeks.
unindexed_row_count INTEGER Jumlah baris dalam tabel dasar yang belum diindeks.
total_logical_bytes INTEGER Jumlah byte logis yang dapat ditagih untuk indeks.
total_storage_bytes INTEGER Jumlah byte penyimpanan yang dapat ditagih untuk indeks.
analyzer STRING Penganalisis teks yang digunakan untuk menghasilkan token untuk indeks penelusuran.

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_INDEXES Level set data Lokasi set data
Ganti kode berikut:

  • 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_INDEXES;

Contoh

Contoh berikut menunjukkan semua indeks penelusuran aktif pada tabel dalam set data my_dataset, yang terletak di project my_project. Contoh ini mencakup nama indeks, pernyataan DDL yang digunakan untuk membuatnya, persentase cakupannya, dan penganalisis teksnya. Jika tabel dasar yang diindeks kurang dari 10 GB, maka indeksnya tidak terisi, dan dalam hal ini coverage_percentage adalah 0.

SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';

Hasilnya akan terlihat seperti berikut:

+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| table_name  | index_name  | ddl                                                                                  | coverage_percentage | analyzer       |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| small_table | names_index | CREATE SEARCH INDEX `names_index` ON `my_project.my_dataset.small_table`(names)      | 0                   | NO_OP_ANALYZER |
| large_table | logs_index  | CREATE SEARCH INDEX `logs_index` ON `my_project.my_dataset.large_table`(ALL COLUMNS) | 100                 | LOG_ANALYZER   |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+