VECTOR_INDEXES 檢視畫面
INFORMATION_SCHEMA.VECTOR_INDEXES
檢視畫面會為資料集中的每個向量索引包含一個資料列。
所需權限
如要查看向量索引中繼資料,您必須在含有索引的資料表上具備 bigquery.tables.get
或 bigquery.tables.list
身分與存取權管理 (IAM) 權限。以下每個預先定義的 IAM 角色都包含下列至少一項權限:
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
roles/bigquery.user
如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」。
結構定義
查詢INFORMATION_SCHEMA.VECTOR_INDEXES
檢視表時,資料集中的每個向量索引在查詢結果中都會有一個資料列。
INFORMATION_SCHEMA.VECTOR_INDEXES
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
index_catalog |
STRING |
包含資料集的專案名稱。 |
index_schema |
STRING |
包含索引的資料集名稱。 |
table_name |
STRING |
建立索引的資料表名稱。 |
index_name |
STRING |
向量索引的名稱。 |
index_status |
STRING |
索引的狀態:ACTIVE 、PENDING
DISABLEMENT 、TEMPORARILY DISABLED 或 PERMANENTLY DISABLED 。 |
creation_time |
TIMESTAMP |
建立索引的時間。 |
last_modification_time |
TIMESTAMP |
上次修改索引設定的時間。例如刪除已編入索引的資料欄。 |
last_refresh_time |
TIMESTAMP |
上次為表格資料建立索引的時間。如果值為 NULL ,表示尚未提供索引。 |
disable_time |
TIMESTAMP |
索引狀態設為 DISABLED 的時間。如果索引狀態不是 DISABLED ,則值為 NULL 。 |
disable_reason |
STRING |
停用索引的原因。如果索引狀態不是 DISABLED ,則為 NULL 。 |
DDL |
STRING |
用來建立索引的資料定義語言 (DDL) 陳述式。 |
coverage_percentage |
INTEGER |
已編入索引的資料表資料約略百分比。0% 表示即使部分資料已編入索引,仍無法在 VECTOR_SEARCH 查詢中使用索引。 |
unindexed_row_count |
INTEGER |
資料表中未編入索引的資料列數。 |
total_logical_bytes |
INTEGER |
索引的可計費邏輯位元組數。 |
total_storage_bytes |
INTEGER |
索引的可計費儲存空間位元組數。 |
範圍和語法
對這個檢視表執行的查詢必須具有資料集限定詞。下表說明此檢視區域的範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID
: Google Cloud 專案的 ID。如果未指定,系統會使用預設專案。 -
DATASET_ID
:資料集 ID。詳情請參閱「資料集限定條件」。
示例
-- Returns metadata for vector indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VECTOR_INDEXES;
範例
以下範例會顯示專案 my_project
中資料集 my_dataset
中所有有效的向量索引。其中包含名稱、用於建立這些項目的 DDL 陳述式,以及涵蓋率百分比。如果索引基礎資料表小於 10 MB,則不會填入索引,此時 coverage_percentage
值為 0。
SELECT table_name, index_name, ddl, coverage_percentage FROM my_project.my_dataset.INFORMATION_SCHEMA.VECTOR_INDEXES WHERE index_status = 'ACTIVE';
結果大致如下:
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+ | table_name | index_name | ddl | coverage_percentage | +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+ | table1 | indexa | CREATE VECTOR INDEX `indexa` ON `my_project.my_dataset.table1`(embeddings) | 100 | | | | OPTIONS (distance_type = 'EUCLIDEAN', index_type = 'IVF', ivf_options = '{"num_lists": 100}') | | +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+ | table2 | indexb | CREATE VECTOR INDEX `indexb` ON `my_project.my_dataset.table2`(vectors) | 42 | | | | OPTIONS (distance_type = 'COSINE', index_type = 'IVF', ivf_options = '{"num_lists": 500}') | | +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+ | table3 | indexc | CREATE VECTOR INDEX `indexc` ON `my_project.my_dataset.table3`(vectors) | 98 | | | | OPTIONS (distance_type = 'DOT_PRODUCT', index_type = 'TREE_AH', | | | | | tree_ah_options = '{"leaf_node_embedding_count": 1000, "normalization_type": "NONE"}') | | +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+