RDS for MySQL menyediakan integrasi mendalam untuk pemrosesan data vektor tingkat enterprise. Layanan ini secara native mendukung penyimpanan dan komputasi data vektor hingga dimensi 16.383. Dengan mengintegrasikan fungsi operasi vektor utama serta memanfaatkan algoritma Hierarchical Navigable Small World (HNSW) yang sangat dioptimalkan, layanan ini memberikan pencarian tetangga terdekat aproksimasi yang efisien. Fitur ini juga mendukung pembuatan indeks pada kolom vektor berdimensi penuh.
Deskripsi fitur
RDS for MySQL secara native mendukung pemrosesan data vektor, termasuk penyimpanan vektor, perhitungan kemiripan, dan pengindeksan berkinerja tinggi. Layanan ini menyediakan solusi vektor siap pakai untuk skenario seperti pengambilan semantik skala besar, rekomendasi berbasis 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 bisnis menerapkan aplikasi AI inovatif secara cepat 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 baru
VECTOR. Fitur ini kompatibel dengan antarmuka SQL standar untuk menulis, memperbarui, dan mengelola data vektor secara Batch. Fitur ini mendukung fungsi pemrosesan vektor utama berikut:Nama fungsi
Deskripsi
VECTOR_DIMMendapatkan dimensi vektor.
VEC_FROMTEXTMengonversi string menjadi vektor.
TO_VECTORSTRING_TO_VECTORVEC_TOTEXTMengonversi vektor menjadi string.
FROM_VECTORVECTOR_TO_STRINGVEC_DISTANCEMenghitung jarak antara dua vektor. Jika salah satu parameter merupakan kolom yang diindeks, jenis jarak dari indeks tersebut akan dideteksi secara otomatis.
VEC_DISTANCE_EUCLIDEANVEC_DISTANCE_COSINEIndeks vektor berkinerja tinggi: Indeks vektor 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 open source, siap pakai: Fitur ini sepenuhnya kompatibel dengan protokol MySQL. Fitur ini mendukung Java Database Connectivity (JDBC), alat Object-Relational Mapping (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 recovery. Anda dapat melakukan upgrade instans yang ada hanya dengan satu klik tanpa membuat kluster baru.
Penerapan
Versi database: MySQL 8.0.
Versi mesin minor:
20251031atau lebih baru. Jika versi Anda saat ini tidak memenuhi persyaratan ini, Anda harus melakukan upgrade versi mesin minor atau versi utama database.Batasan berikut berlaku saat Anda menggunakan fitur ini:
Indeks vektor hanya didukung pada tabel yang menggunakan engine InnoDB.
Kunci primary tabel tidak boleh melebihi panjang 256 byte.
Sintaksis
inplacetidak dapat digunakan untuk membuat, memodifikasi, atau menghapus indeks vektor.Indeks vektor tidak dapat diatur sebagai
INVISIBLE.Tabel yang memiliki indeks vektor tidak mendukung fitur Recycle Bin.
Modifikasi dan kueri data pada indeks vektor hanya mendukung level isolasi Read Committed (RC).
Karena algoritma HNSW melibatkan keacakan, seperti level acak dan algoritma heuristik, struktur graf indeks vektor pada instans primary dan standby tidak dijamin identik.
Jika Anda menggunakan tipe data
vectordalam 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 |
| • Deskripsi: Jenis jarak vektor default.
|
| • Deskripsi: Nilai M default untuk indeks HNSW (jumlah maksimum node output untuk setiap node dalam graf). |
| • Deskripsi: Nilai ef_search default (cakupan pencarian) untuk kueri indeks HNSW. |
| • Deskripsi: Memori maksimum yang dapat digunakan oleh cache indeks HNSW. Satuan: byte. |
Memodifikasi parameter
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID instansnya.
Di panel navigasi kiri, klik Parameter Settings.
Di tab Editable Parameters, cari parameter yang ingin dimodifikasi dan atur nilainya.
Klik OK, lalu klik Submit Parameters. Di kotak dialog yang muncul, pilih kapan perubahan akan diterapkan.
Semua parameter terkait vektor bersifat dinamis. Modifikasi langsung berlaku tanpa perlu restart instans.
Aktifkan dan gunakan fitur
Mengaktifkan atau menonaktifkan fitur vektor tidak memerlukan restart instans.
Langkah 1: Aktifkan dukungan vektor
Buka Konsol RDS, pilih wilayah tujuan, lalu klik ID instans.
Di halaman Basic Information, pada bagian Running Status, untuk Vector Storage, klik Enable di sebelah kanan.
Saat status berubah menjadi Enabled, fitur langsung berlaku.
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 2 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;