SEARCH_INDEXES_BY_ORGANIZATION 檢視畫面
BigQuery 搜尋索引提供免費索引管理服務,直到貴機構在特定區域達到限制為止。您可以透過 INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
檢視表,瞭解目前的使用量是否快要達到限制,並依專案和資料表細分。INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
檢視表會針對與目前專案相關聯的整個機構,為每個搜尋索引各列出一個相對應的資料列。
所需權限
如要查詢 INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
檢視畫面,您必須具備機構的下列 Identity and Access Management (IAM) 權限:
bigquery.tables.get
bigquery.tables.list
下列每個預先定義的 IAM 角色都包含上述權限:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
只有已定義Google Cloud 機構的使用者才能使用這個結構定義檢視畫面。
如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」一文。
結構定義
INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
project_id |
STRING |
資料集所屬專案的名稱。 |
project_number |
STRING |
包含資料集的專案編號。 |
index_catalog |
STRING |
資料集所屬專案的名稱。 |
index_schema |
STRING |
包含索引的資料集名稱。 |
table_name |
STRING |
建立索引的基礎資料表名稱。 |
index_name |
STRING |
搜尋索引的名稱。 |
index_status |
STRING |
索引狀態可以是下列其中一種: |
index_status_details |
RECORD |
記錄包含下列欄位: |
use_background_reservation |
BOOL |
指出索引維護作業是否使用 BACKGROUND 預訂。如果索引維護作業使用限制,這項屬性會設為 FALSE 。 |
範圍和語法
對這個檢視表執行的查詢必須包含區域限定詞。下表說明這個檢視畫面的區域範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION |
包含指定專案的機構 | REGION |
更改下列內容:
選用:
PROJECT_ID
:您的Google Cloud 專案 ID。如未指定,系統會使用預設專案。REGION
:專案的區域。例如:`myproject`.`region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
。
索引節流
如果索引受到節流,其資料表大小就不會計入機構的限制。如果基本資料表大小低於 10 GB 或超過貴機構的限制,就會發生節流。索引受到節流時,管理工作會暫停,導致索引過時,最終暫時停用。因此,搜尋查詢無法使用索引。
範例
本節包含 INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
檢視區塊的查詢範例。
查看特定區域的用量是否超出上限
以下範例說明如果整個機構在美國多重區域使用共用時段,且索引基本資料表總大小超過 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
結果大致如下:
+---------------------+ | total_logical_bytes | +---------------------+ | 109951162777601 | +---------------------+
依區域找出專案的索引基準表總大小
以下範例提供美國多區域中每個專案的詳細資料,以及已建立索引的基本資料表總大小:
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
結果大致如下:
+---------------------+----------------------------+---------------------+ | project_id | use_background_reservation | total_logical_bytes | +---------------------+----------------------------+---------------------+ | projecta | true | 971329178274633 | +---------------------+----------------------------+---------------------+ | projectb | false | 834638211024843 | +---------------------+----------------------------+---------------------+ | projectc | false | 562910385625126 | +---------------------+----------------------------+---------------------+
找出受到節流的搜尋索引
以下範例會傳回機構和區域內所有受到節流的搜尋索引:
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')
結果大致如下:
+--------------------+--------------------+---------------+----------------+ | project_id | index_schema | table_name | index_name | +--------------------+--------------------+---------------+----------------+ | projecta | dataset_us | table1 | index1 | | projectb | dataset_us | table1 | index1 | +--------------------+--------------------+---------------+----------------+