Tampilan SEARCH_INDEXES_BY_ORGANIZATION
Indeks penelusuran BigQuery menyediakan pengelolaan indeks gratis hingga organisasi Anda mencapai batas di wilayah tertentu. Anda dapat menggunakan tampilan
INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
untuk memahami
penggunaan saat ini terhadap batas tersebut, yang dikelompokkan menurut project dan tabel. Tampilan
INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
berisi satu baris untuk
setiap indeks penelusuran untuk seluruh organisasi yang terkait dengan project saat ini.
Izin yang diperlukan
Untuk membuat kueri tampilan INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
, Anda memerlukan izin Identity and Access Management (IAM) berikut untuk organisasi Anda:
bigquery.tables.get
bigquery.tables.list
Setiap peran IAM yang telah ditetapkan berikut mencakup izin sebelumnya:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
Tampilan skema ini hanya tersedia bagi pengguna dengan organisasiGoogle Cloud yang ditentukan.
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Skema
Tampilan INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
project_id |
STRING |
Nama project yang berisi set data. |
project_number |
STRING |
Nomor project yang berisi set data. |
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 penelusuran. |
index_status |
STRING |
Status indeks dapat berupa salah satu dari berikut:
|
index_status_details |
RECORD |
Rekaman berisi kolom berikut:
|
use_background_reservation |
BOOL |
Menunjukkan apakah pemeliharaan indeks menggunakan reservasi BACKGROUND . Nilai ini ditetapkan ke FALSE saat pemeliharaan indeks menggunakan batas. |
Cakupan dan sintaksis
Kueri terhadap tabel virtual ini harus menyertakan penentu region. Tabel berikut menjelaskan cakupan region untuk tabel virtual ini:
Nama tabel virtual | Cakupan resource | Cakupan region |
---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION |
Organisasi yang berisi project yang ditentukan | REGION |
Ganti kode berikut:
Opsional:
PROJECT_ID
: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.REGION
: region untuk project Anda. Misalnya,`myproject`.`region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
.
Pembatasan indeks
Jika indeks di-throttle, ukuran tabelnya tidak dihitung dalam batas organisasi Anda. Pembatasan ini terjadi saat ukuran tabel dasar berada di bawah 10 GB atau melebihi batas organisasi Anda. Jika indeks dibatasi, tugas pengelolaannya akan dijeda, sehingga indeks menjadi tidak valid dan akhirnya dinonaktifkan untuk sementara. Akibatnya, kueri penelusuran tidak dapat menggunakan indeks.
Contoh
Bagian ini mencakup contoh kueri tampilan INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
.
Menemukan apakah konsumsi melebihi batas di region tertentu
Contoh berikut menggambarkan jika total ukuran tabel dasar yang diindeks di seluruh organisasi, yang menggunakan slot bersama dalam multi-region Amerika Serikat, melebihi 100 TB:
WITH indexed_base_table_size AS ( SELECT SUM(base_table.total_logical_bytes) AS total_logical_bytes FROM `region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION AS search_index JOIN `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION AS base_table ON (search_index.table_name = base_table.table_name AND search_index.project_id = base_table.project_id AND search_index.index_schema = base_table.table_schema) WHERE TRUE -- Excludes search indexes that are permanently disabled. AND search_index.index_status != 'PERMANENTLY DISABLED' -- Excludes BASE_TABLE_TOO_SMALL search indexes whose base table size is -- less than 10 GB. These tables don't count toward the limit. AND search_index.index_status_details.throttle_status != 'BASE_TABLE_TOO_SMALL' -- Excludes search indexes whose project has BACKGROUND reservation purchased -- for search indexes. AND search_index.use_background_reservation = false -- Outputs the total indexed base table size if it exceeds 100 TB, -- otherwise, doesn't return any output. ) SELECT * FROM indexed_base_table_size WHERE total_logical_bytes >= 109951162777600 -- 100 TB
Hasilnya mirip dengan berikut ini:
+---------------------+ | total_logical_bytes | +---------------------+ | 109951162777601 | +---------------------+
Menemukan ukuran total tabel dasar yang diindeks menurut project di suatu region
Contoh berikut memberikan perincian pada setiap project di multi-region AS dengan total ukuran tabel dasar yang diindeks:
SELECT search_index.project_id, search_index.use_background_reservation, SUM(base_table.total_logical_bytes) AS total_logical_bytes FROM `region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION AS search_index JOIN `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION AS base_table ON (search_index.table_name = base_table.table_name AND search_index.project_id = base_table.project_id AND search_index.index_schema = base_table.table_schema) WHERE TRUE -- Excludes search indexes that are permanently disabled. AND search_index.index_status != 'PERMANENTLY DISABLED' -- Excludes BASE_TABLE_TOO_SMALL search indexes whose base table size is -- less than 10 GB. These tables don't count toward limit. AND search_index.index_status_details.throttle_status != 'BASE_TABLE_TOO_SMALL' GROUP BY search_index.project_id, search_index.use_background_reservation
Hasilnya mirip dengan berikut ini:
+---------------------+----------------------------+---------------------+ | project_id | use_background_reservation | total_logical_bytes | +---------------------+----------------------------+---------------------+ | projecta | true | 971329178274633 | +---------------------+----------------------------+---------------------+ | projectb | false | 834638211024843 | +---------------------+----------------------------+---------------------+ | projectc | false | 562910385625126 | +---------------------+----------------------------+---------------------+
Menemukan indeks penelusuran yang dibatasi
Contoh berikut menampilkan semua indeks penelusuran yang dibatasi dalam organisasi dan region:
SELECT project_id, index_schema, table_name, index_name FROM `region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION WHERE -- Excludes search indexes that are permanently disabled. index_status != 'PERMANENTLY DISABLED' AND index_status_details.throttle_status IN ('ORGANIZATION_LIMIT_EXCEEDED', 'BASE_TABLE_TOO_LARGE')
Hasilnya mirip dengan berikut ini:
+--------------------+--------------------+---------------+----------------+ | project_id | index_schema | table_name | index_name | +--------------------+--------------------+---------------+----------------+ | projecta | dataset_us | table1 | index1 | | projectb | dataset_us | table1 | index1 | +--------------------+--------------------+---------------+----------------+