VECTOR_INDEXES 뷰

INFORMATION_SCHEMA.VECTOR_INDEXES 뷰에는 데이터 세트에 있는 각 벡터에 대해 하나의 행이 포함되어 있습니다.

필수 권한

벡터 색인 메타데이터를 보려면 색인이 있는 테이블에 대한 bigquery.tables.get 또는 bigquery.tables.list Identity and Access Management(IAM) 권한이 필요합니다. 다음과 같은 사전 정의된 IAM 역할에는 이러한 권한 중 하나 이상이 포함되어 있습니다.

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

BigQuery 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.

스키마

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)입니다.
  • ACTIVE는 색인이 사용 가능하거나 생성 중임을 의미합니다. 색인 생성 진행 상태를 보려면 coverage_percentage 를 참조하세요.
  • PENDING DISABLEMENT는 색인이 생성된 테이블의 총 크기가 조직의 한도를 초과한다는 의미입니다. 이 색인은 삭제를 위해 큐에 추가됩니다. 이 상태에서는 색인을 벡터 검색어에 사용할 수 있으며 벡터 색인 스토리지에 대한 요금이 부과됩니다.
  • TEMPORARILY DISABLED는 색인이 생성된 테이블의 총 크기가 조직의 한도를 초과하거나 색인이 생성된 테이블이 10MB보다 작음을 의미합니다. 이 상태에서는 색인이 벡터 검색어에 사용되지 않으며 벡터 색인 스토리지 요금이 부과되지 않습니다.
  • 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 문, 적용 범위 비율이 포함됩니다. 색인이 생성된 기본 테이블이 10MB 미만이면 색인이 채워지지 않으며, 이 경우 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"}') |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+