Tingkat performa yang dioptimalkan untuk penyimpanan Vector Search dirancang untuk mengindeks dan menelusuri set data yang sangat besar. Tingkat ini menerapkan arsitektur berbasis disk, bukan menggunakan RAM, sehingga mengurangi biaya operasional Anda secara signifikan. Jika prioritas Anda adalah efisiensi biaya dalam skala besar, bukan latensi kueri serendah mungkin, tingkat yang dioptimalkan untuk penyimpanan adalah pilihan terbaik Anda.
Kapan harus menggunakan indeks yang dioptimalkan untuk penyimpanan
Pertimbangkan indeks yang dioptimalkan untuk penyimpanan jika Anda memiliki salah satu hal berikut:
Set data yang sangat besar: Anda harus mengindeks vektor dalam jumlah yang sangat besar, dan biaya hosting shard dalam jumlah besar yang dioptimalkan untuk performa sangat mahal.
Workload QPS rendah: Dalam aplikasi dengan volume kueri rendah, penghematan biaya dari penggunaan lebih sedikit shard bisa signifikan.
Persyaratan latensi yang fleksibel: Aplikasi Anda dapat mentoleransi sedikit peningkatan latensi kueri, yaitu waktu yang diperlukan untuk mendapatkan hasil penelusuran.
Kompromi performa
Dibandingkan dengan indeks default yang dioptimalkan untuk performa, indeks yang dioptimalkan untuk penyimpanan memiliki karakteristik berikut:
- Peningkatan latensi kueri: Kueri memiliki latensi yang sedikit lebih tinggi pada tingkat perolehan tertentu.
Cara mengonfigurasi indeks yang dioptimalkan untuk penyimpanan
Untuk membuat indeks
yang dioptimalkan untuk penyimpanan, tetapkan parameter shardSize
ke
SHARD_SIZE_SO_DYNAMIC
dalam konfigurasi indeks Anda.
Contoh: Membuat indeks yang dioptimalkan untuk penyimpanan
Contoh berikut menunjukkan JSON yang diperlukan untuk membuat indeks streaming yang dioptimalkan untuk penyimpanan baru.
{
"displayName": "my-storage-optimized-index",
"description": "An index configured to prioritize storage over performance.",
"metadata": {
"contentsDeltaUri": "gs://your-bucket/source-data/",
"config": {
"dimensions": 100,
"approximateNeighborsCount": 150,
"distanceMeasureType": "DOT_PRODUCT_DISTANCE",
"shardSize": "SHARD_SIZE_SO_DYNAMIC"
}
},
"indexUpdateMethod": "STREAM_UPDATE"
}
Dalam contoh ini, shardSize
ditetapkan ke SHARD_SIZE_SO_DYNAMIC
, yang
menginstruksikan Vector Search untuk membuat indeks yang lebih padat. Hal ini memungkinkan
setiap shard menyimpan lebih banyak titik data secara signifikan, sehingga mengurangi
jumlah total shard yang diperlukan untuk set data Anda. Kolom lainnya, seperti
dimensions
dan distanceMeasureType
, dikonfigurasi sesuai kebutuhan Anda.
Endpoint
Deployment yang dioptimalkan untuk penyimpanan dapat digunakan dengan endpoint yang ada.
Men-deploy indeks
Contoh berikut menunjukkan JSON yang diperlukan untuk men-deploy indeks yang dioptimalkan untuk penyimpanan ke endpoint yang telah Anda buat.
{
"deployedIndex": {
"id": "PROJECT_UNIQUE_ID_NAME",
"index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
"displayName": "INDEX_DISPLAY_NAME",
"deploymentTier": "STORAGE"
}
}
Menetapkan deploymentTier
ke STORAGE
akan men-deploy indeks yang dioptimalkan untuk penyimpanan dengan
displayName
yang ditentukan ke endpoint. Vector Search secara dinamis memilih jenis mesin yang sesuai untuk performa terbaik.