All Products
Search
Document Center

ApsaraDB RDS:Penyimpanan vektor

Last Updated:Dec 05, 2025

RDS for MySQL menyediakan kemampuan pemrosesan data vektor tingkat enterprise. Produk ini secara native mendukung penyimpanan dan komputasi data vektor hingga 16.383 dimensi, mencakup fungsi operasi vektor utama, serta menggunakan algoritma Hierarchical Navigable Small World (HNSW) yang sangat dioptimalkan untuk pencarian tetangga terdekat yang efisien. Anda dapat membuat indeks pada kolom vektor berdimensi penuh.

Fitur

RDS for MySQL secara native mendukung pemrosesan data vektor, termasuk penyimpanan vektor, perhitungan kemiripan, dan pembuatan indeks berkinerja tinggi. Produk ini menyediakan solusi vektor siap pakai untuk skenario seperti pengambilan semantik skala besar, Rekomendasi AI, dan analisis multi-modal. Anda dapat menggunakan antarmuka SQL standar untuk menggabungkan pencocokan vektor berpresisi tinggi dengan logika bisnis kompleks secara mulus, sehingga memungkinkan penerapan aplikasi AI inovatif menggunakan arsitektur yang hemat biaya dan sangat kompatibel.

  • Penyimpanan, akses, dan komputasi vektor berdimensi tinggi yang efisien: Anda dapat menyimpan data vektor floating-point hingga 16.383 dimensi menggunakan tipe data VECTOR. Fitur ini kompatibel dengan antarmuka SQL standar, sehingga Anda dapat langsung menulis, memperbarui, dan mengelola data vektor dalam batch. Fungsi pemrosesan vektor utama yang didukung adalah sebagai berikut:

    Nama fungsi

    Deskripsi

    VECTOR_DIM

    Mendapatkan dimensi vektor.

    VEC_FROMTEXT

    Mengonversi string menjadi vektor.

    TO_VECTOR

    STRING_TO_VECTOR

    VEC_TOTEXT

    Mengonversi vektor menjadi string.

    FROM_VECTOR

    VECTOR_TO_STRING

    VEC_DISTANCE

    Menghitung jarak antara dua vektor. Jika salah satu parameter merupakan kolom indeks, jenis jarak indeks akan terdeteksi secara otomatis.

    VEC_DISTANCE_EUCLIDEAN

    VEC_DISTANCE_COSINE

  • Indeks vektor berkinerja tinggi: Indeks vektor dibangun menggunakan algoritma HNSW yang sangat dioptimalkan. Teknologi seperti akselerasi perangkat keras single instruction multiple data (SIMD), pemangkasan pencarian Bloom filter, dan penurunan kondisi LIMIT secara signifikan meningkatkan efisiensi pengambilan data vektor skala besar. Fitur ini juga mendukung penyimpanan campuran dan kueri gabungan antara data vektor dan skalar.

  • Ekosistem terbuka, siap pakai: Fitur ini sepenuhnya kompatibel dengan protokol MySQL. Produk ini mendukung alat Java Database Connectivity (JDBC)/ORM dan framework developer utama. Fitur ini terintegrasi dengan layanan Alibaba Cloud seperti DTS dan DMS untuk menyediakan kemampuan siklus hidup lengkap, termasuk sinkronisasi data, manajemen, backup, dan pemulihan. Anda dapat melakukan peningkatan instans yang sudah ada hanya dengan satu klik tanpa perlu membuat kluster baru.

Cakupan penggunaan

  • Versi database: MySQL 8.0.

  • Versi mesin minor: 20251031 atau lebih baru. Jika instans Anda tidak memenuhi persyaratan versi ini, lakukan peningkatan versi mesin minor atau versi database mayor.

  • Batasan berikut berlaku untuk fitur ini:

    • Indeks vektor hanya dapat dibuat pada tabel yang menggunakan engine InnoDB.

    • Kunci primary tabel tidak boleh melebihi panjang 256 byte.

    • Sintaksis inplace tidak dapat digunakan untuk membuat, memodifikasi, atau menghapus indeks vektor.

    • Indeks vektor tidak dapat diatur menjadi INVISIBLE.

    • Tabel yang berisi indeks vektor tidak mendukung fitur Recycle Bin.

    • Modifikasi dan kueri data pada indeks vektor hanya mendukung level isolasi Read Committed (RC).

    • Karena sifat acak dari algoritma HNSW—termasuk level acak dan algoritma heuristik—struktur graf indeks vektor pada instans primary dan standby tidak dijamin identik.

    • Jika Anda menggunakan tipe vector dalam prosedur tersimpan atau fungsi di database sumber, sinkronisasi atau migrasi ke database tujuan yang tidak mendukung vektor akan gagal.

Manajemen parameter

Deskripsi parameter

Nama parameter

Deskripsi

vidx_default_distance

• Deskripsi: Jenis jarak vektor default.
• Cakupan: Session.
• Tipe data: String.
• Nilai default: EUCLIDEAN.
• Nilai valid:

  • EUCLIDEAN: Jarak Euclidean. Menghitung jarak garis lurus (jarak geometris) antara dua vektor dalam ruang multidimensi.

  • COSINE: Jarak Cosine. Menghitung cosinus sudut antara dua vektor untuk mengukur kemiripan arah, mengabaikan panjang vektor.

vidx_hnsw_default_m

• Deskripsi: Nilai m default untuk indeks HNSW (jumlah maksimum node output untuk setiap node dalam graf).
• Cakupan: Session.
• Tipe data: Integer.
• Nilai default: 6.
• Rentang nilai: [3, 200].

vidx_hnsw_ef_search

• Deskripsi: Nilai ef_search default untuk kueri indeks HNSW (rentang pencarian).
• Cakupan: Session.
• Tipe data: Integer.
• Nilai default: 20.
• Rentang nilai: [1, 10000].

vidx_hnsw_cache_size

• Deskripsi: Memori maksimum yang dapat digunakan oleh cache indeks HNSW, dalam byte.
• Cakupan: Global.
• Tipe data: BigInt.
• Nilai default: 1048576.
• Rentang nilai: [1048576, 18446744073709551615].

Memodifikasi parameter

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID instans.

  2. Di panel navigasi kiri, klik Parameter.

  3. Pada tab Modifiable Parameters, cari parameter yang ingin dimodifikasi dan atur nilainya.

  4. Klik OK lalu Apply Changes. Pada kotak dialog yang muncul, pilih kapan perubahan akan diterapkan.

Catatan

Semua parameter terkait vektor merupakan parameter dinamis. Modifikasi langsung berlaku tanpa perlu restart instans.

Aktifkan dan gunakan fitur

Catatan

Mengaktifkan atau menonaktifkan fitur vektor tidak memerlukan restart instans.

Langkah 1: Aktifkan dukungan vektor

  1. Buka Konsol RDS, pilih wilayah tujuan, lalu klik ID instans.

  2. Pada halaman Basic Information, di bagian Status, temukan Vector Storage dan klik Enable.

  3. Fitur langsung berlaku setelah status berubah menjadi Enabled.

Langkah 2: Buat tabel dan indeks vektor

-- Buat tabel yang berisi kolom vektor 5-dimensi dan indeks HNSW
CREATE TABLE product_embeddings (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  product_name VARCHAR(255),
  embedding VECTOR(5) NOT NULL,
  -- Buat indeks vektor dan tentukan nilai M serta metode perhitungan jarak
  VECTOR INDEX idx_embedding(embedding) M=16 DISTANCE=COSINE
);

Langkah 3: Masukkan data

-- Gunakan fungsi VEC_FROMTEXT untuk memasukkan data vektor
INSERT INTO product_embeddings (product_name, embedding) VALUES
('product_A', VEC_FROMTEXT('[0.1, 0.2, 0.3, 0.4, 0.5]')),
('product_B', VEC_FROMTEXT('[0.6, 0.7, 0.8, 0.9, 1.0]')),
('product_C', VEC_FROMTEXT('[0.11, 0.22, 0.33, 0.44, 0.55]'));

Langkah 4: Lakukan kueri kemiripan vektor

-- Temukan dua produk yang paling mirip dengan vektor yang diberikan '[0.1, 0.2, 0.3, 0.4, 0.51]'
SELECT
  id,
  product_name,
  VEC_DISTANCE(embedding, VEC_FROMTEXT('[0.1, 0.2, 0.3, 0.4, 0.51]')) AS similarity_score
FROM
  product_embeddings
ORDER BY
  similarity_score ASC -- Semakin kecil jarak COSINE, semakin mirip vektornya
LIMIT 2;