Fungsi Cloud SQL

Halaman ini menjelaskan fungsi Cloud SQL.

Fungsi konversi vektor

Tabel berikut mencantumkan fungsi yang dapat Anda gunakan untuk memanipulasi informasi vektor dalam pernyataan SELECT.

Fungsi Deskripsi
vector_to_string Input: VECTOR

Output: STRING

Mengonversi argumen menjadi string dalam format vektor yang dapat dibaca manusia.

Input: satu argumen dari jenis VECTOR

Output: string

Sintaksis:

vector_to_string(some_embedding)

string_to_vector Input: STRING

Output: VECTOR

Mengonversi string ke format vektor yang dapat dibaca manusia. Hal ini memungkinkan Anda menulis nilai yang ingin direpresentasikan dalam vektor.

Input: string

Sintaksis:

string_to_vector('some_embedding')

Output: satu nilai dari jenis vektor.

Fungsi penelusuran

Bagian ini menjelaskan fungsi penelusuran Cloud SQL.

Fungsi KNN

Tabel berikut mencantumkan fungsi yang dapat Anda gunakan untuk menghitung jarak vektor KNN.

Fungsi Data type Deskripsi
vector_distance Input: VECTOR

Output: REAL

Menghitung jarak vektor antara dua VECTOR. Kedua VECTOR harus memiliki dimensi yang sama.

Input: wajib diisi. Mengambil dua nilai vektor, Argumen string ketiga opsional menunjukkan pengukuran jarak. Default-nya adalah `l2_squared_distance. Opsi lainnya mencakup `cosine_distance` dan `dot_product`.

Output: jarak antara dua vektor.

Contoh:

SELECT vector_distance(string_to_vector('[1,-2,3]'), string_to_vector('[1,2,3]'), 'Distance_Measure=dot_product');

cosine_distance Input: VECTOR

Output: REAL

Algoritma untuk menghitung kosinus sudut antara dua vektor. Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar antara vektor.

Input: menggunakan dua nilai vektor. Ini dapat berupa nama kolom atau konstanta.

Output: jarak kosinus antara dua vektor.

Contoh:

SELECT cosine_distance(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));

SELECT id FROM t1 ORDER BY cosine_distance(string_to_vector('[1,2,3]'), embedding_column_name) LIMIT 10;

dot_product Input: VECTOR

Output: REAL

Algoritma yang melakukan operasi perkalian titik antara dua vektor input untuk menghitung dan menghasilkan satu nilai skalar.

Input: menggunakan dua nilai vektor. Ini dapat berupa nama kolom atau konstanta.

Output: hasil perkalian titik dari dua vektor.

Contoh:

SELECT dot_product(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));

SELECT id FROM t1 ORDER BY dot_product(string_to_vector('[1,2,3]'), embbeding_column_name) LIMIT 10;

l2_squared_distance Input: VECTOR

Output: REAL

Algoritma yang menambahkan jarak kuadrat pada setiap dimensi antara dua vektor input untuk mengukur jarak Euclidean di antara keduanya.

Input: menggunakan dua nilai vektor. Ini dapat berupa nama kolom atau konstanta.

Output: jarak kuadrat L2 antara dua vektor.

Contoh:

SELECT l2_squared_distance(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));

SELECT id FROM t1 ORDER BY l2_squared_distance(string_to_vector('[1,2,3]'), embbeding_column_name) LIMIT 10;

Fungsi ANN

Tabel berikut mencantumkan fungsi yang dapat Anda gunakan untuk menghitung jarak vektor.

Fungsi Jenis Data Deskripsi
approx_distance Input: VECTOR

Output: REAL

Menemukan baris terdekat K teratas yang memenuhi pengukuran jarak menggunakan algoritma yang dipilih. Fungsi ini membuat kueri tetangga terdekat terdekat dari kolom vektor ke nilai konstan. Jenis VECTOR dua kolom penyematan dan VECTOR konstan harus memiliki dimensi yang sama. Ada beberapa kasus saat fungsi ini kembali ke penelusuran KNN (penelusuran persis), bukan penelusuran ANN. Anda harus menyertakan batas dengan kueri yang menggunakan fungsi ini.

Sintaksis:

approx_distance(embedding_name,
query_vector,
'distance_measure=algorithm_name
[, num_leaves_to_search=value]'

Input:

  1. embedding_name: Nama kolom penyematan vektor dari tabel dasar.
  2. query_vector: Konstanta berjenis `VECTOR` yang dapat (tetapi tidak harus) menjadi output string_to_vector.
  3. Opsi string penelusuran yang dipisahkan koma mencakup hal berikut:
    • distance_measure: wajib. Menggunakan algoritma untuk mengukur jarak antara vektor. Kode ini menggunakan literal string berikut:
      • L2_SQUARED
      • COSINE
      • DOT_PRODUCT

      Contoh: distance_measure=cosine

    • num_leaves_to_search: optional. Menentukan jumlah daun untuk menyelidiki penelusuran kemiripan vektor ANN. Jika Anda tidak menentukan jumlah daun, CloudSQL untuk MySQL akan memilih nilai yang dihitung untuk num_leaves_to_search yang dapat dilihat di information_schema.innodb_vector_indexes. Jumlah yang dihitung umumnya merupakan titik awal yang baik dengan kualitas dan performa penelusuran yang baik. Sebaiknya Anda menyesuaikan num_leaves_to_search berdasarkan beban kerja dan kompromi performa atau kualitas.

    Contoh:

    'distance_measure=dot_product,
    num_leaves_to_search=100'

    Nilai LIMIT yang diperlukan: Batas yang ditentukan digunakan sebagai jumlah tetangga yang akan ditampilkan (juga dikenal sebagai K teratas).

    Output: Perkiraan jarak baris terdekat K teratas dalam tabel dasar.

    Fungsi ini hanya dapat digunakan dalam daftar ORDER BY atau SELECT.

    Contoh:

    SELECT id, approx_distance(embedding_column_name
    string_to_vector('[1,1,1]'),
    'distance_measure=cosine') dist from t1
    ORDER BY dist LIMIT 10;

    SELECT id
    FROM t1
    ORDER BY
    approx_distance(
    embedding_column_name
    string_to_vector('[1,1,1]'),
    'distance_measure=dot_product,num_leaves_to_search=100) LIMIT 4;

Langkah berikutnya