VECTOR_INDEXES ビュー

この機能に関するフィードバックやサポートのリクエストを行う場合は、bq-vector-search@google.com 宛てにメールを送信してください。

INFORMATION_SCHEMA.VECTOR_INDEXES ビューには、データセット内のベクトル インデックスごとに 1 行が表示されます。

必要な権限

ベクトル インデックスのメタデータを表示するには、インデックスを含むテーブルに対する bigquery.tables.get または bigquery.tables.list の Identity and Access Management(IAM)権限が必要です。次に示す事前定義された各 IAM ロールには、これらのうち少なくとも 1 つの権限が含まれています。

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

BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。

スキーマ

INFORMATION_SCHEMA.VECTOR_INDEXES ビューにクエリを実行すると、データセット内の各ベクトル インデックスに関する情報が 1 行ずつ表示されるクエリ結果が返されます。

INFORMATION_SCHEMA.VECTOR_INDEXES ビューのスキーマは次のとおりです。

列名 データ型
index_catalog STRING データセットを含むプロジェクトの名前
index_schema STRING インデックスを含むデータセットの名前。
table_name STRING インデックスが作成されるテーブルの名前。
index_name STRING ベクトル インデックスの名前。
index_status STRING インデックスのステータス: ACTIVEPENDING DISABLEMENTTEMPORARILY DISABLED、または PERMANENTLY DISABLED
  • ACTIVE はインデックスが使用可能または作成中であることを意味します。インデックス作成の進行状況を確認するには、coverage_percentage をご覧ください。
  • PENDING DISABLEMENT は、インデックス付きテーブルの合計サイズが組織の上限を超えていることを意味します。インデックスは削除のキューに追加されます。この状態では、インデックスはベクトル検索クエリで使用でき、ベクトル インデックスのストレージに対して課金されます。
  • TEMPORARILY DISABLED は、インデックス付きテーブルの合計サイズが組織の上限を超えているか、インデックス付きテーブルが 10 MB 未満であることを意味します。この状態の場合、インデックスはベクトル検索クエリに使用されず、ベクトル インデックス ストレージに対して課金されません。
  • 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"}') |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+