Cloud SQL データ定義言語(DDL)

このページでは、MySQL データ定義言語(DDL)ステートメントに対する Cloud SQL 拡張機能の構文を定義します。

VECTOR ステートメント

このセクションでは、VECTOR ステートメントについて説明します。

CREATE VECTOR INDEX

ベクトル インデックスを作成します。

CREATE VECTOR INDEX index_name
[opt_index_type]
ON table_name (column_name)
[index_options]

where opt_index_type is:
 | USING SCANN

where index_option is :
 USING SCANN
 | [QUANTIZER=SQ8]
 | [NUM_LEAVES=int_value]
 | DISTANCE_MEASURE=L2_SQUARED|DOT_PRODUCT|COSINE

パラメータ

  • USING SCANN: 必須。ベクトル インデックスの作成時に使用するインデックス タイプ。このアルゴリズムでは、ScaNN インデックスが作成されます。サポートされる値は SCANN のみです。このパラメータは変更できません。
  • QUANTIZER: 省略可。このパラメータは、高次元ベクトルを圧縮表現にマッピングします。サポートされる値は SQ8 のみです。このパラメータは変更できません。
  • NUM_LEAVES: 省略可。作成するパーティション(リーフ)の数を指定します。この設定をデフォルト設定から変更するのは、ANN 検索とデータセットを十分に理解している場合に限ってください。指定する数は、ベーステーブル内のエンベディングの数より大きくすることはできません。
  • DISTANCE_MEASURE: 必須。2 つのベクトルの類似性を計算する数式。このパラメータには、approx_distance 検索オプションの距離と同じ距離の単位を設定する必要があります。サポートされているラテラルは次のとおりです。
    • L2_SQUARED
    • COSINE
    • DOT_PRODUCT

次の例は、table_name テーブルにベクトル インデックスを作成する方法を示しています。

CREATE
  VECTOR INDEX index1
ON table_name(vector_column_name)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;

ALTER TABLE

既存のテーブルにベクトル インデックスを追加します。ベクトル検索には、インデックス オプションとして SCANN が必要です。量子化タイプは SQ8 にする必要があります。

ALTER TABLE table_name
  ADD VECTOR INDEX index_name(key_part)[index_option];

WHERE key_part is:{ _col_name_[(_length_)] | (_expr_) }
WHERE
  index_option
  is:USING
    SCANN
    | [QUANTIZER = SQ8]
    | [NUM_LEAVES = int_value]
    | DISTANCE_MEASURE
  = L2_SQUARED | DOT_PRODUCT | COSINE

パラメータ

  • USING SCANN: 必須。ベクトル インデックスの作成時に使用するインデックス タイプ。このアルゴリズムは ScaNN インデックスを作成します。サポートされる値は SCANN のみです。このパラメータは変更できません。
  • QUANTIZER: 省略可。このパラメータは、高次元ベクトルを圧縮表現にマッピングします。サポートされる値は SQ8 のみです。このパラメータは変更できません。
  • NUM_LEAVES: 省略可。作成するパーティション(リーフ)の数を指定します。この設定をデフォルト設定から変更するのは、ANN 検索とデータセットを十分に理解している場合に限ってください。指定する数は、ベーステーブル内のエンベディングの数より大きくすることはできません。
  • DISTANCE_MEASURE: 必須。2 つのベクトルの類似性を計算する数式。このパラメータには、approx_distance 検索オプションの距離と同じ距離の単位を設定する必要があります。サポートされているラテラルは次のとおりです。
    • L2_SQUARED
    • COSINE
    • DOT_PRODUCT

次の例は、t1 テーブルにベクトル インデックスを追加する方法を示しています。

ALTER TABLE t1 ADD VECTOR INDEX index1(j)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;

次のステップ