View a markdown version of this page

Sinkronisasi data antara tabel dan indeks vektor - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Sinkronisasi data antara tabel dan indeks vektor

DynamoDB menjaga indeks vektor yang disinkronkan dengan tabel dasarnya secara otomatis. Memahami cara kerja sinkronisasi membantu Anda memprediksi kapan hasil pencarian selesai dan mengapa item mungkin tidak muncul dalam hasil.

Mengisi kembali indeks pada tabel yang ada

Saat Anda menambahkan indeks vektor ke tabel yang sudah berisi item, DynamoDB mengisi kembali indeks dengan data yang ada. Indeks pertama kali bertransisi ke IndexStatus CREATING sementara DynamoDB menyediakan infrastruktur indeks. Itu tetap CREATING sementara DynamoDB mengisi indeks dari data tabel dasar yang ada, dan melaporkan Backfilling seperti true selama fase itu. Penulisan baru ke tabel dasar direplikasi ke indeks saat diisi ulang, tetapi SearchVectors mengembalikan a ValidationException sampai pengisian ulang selesai. Ketika indeks siap, IndexStatus menjadi ACTIVE dan Backfilling bidang tidak lagi dilaporkan. Gunakan DescribeTable dan tunggu sampai IndexStatus Backfilling ada ACTIVE dan tidak true sebelum Anda mencari.

Konstruksi indeks mendorong durasi pengisian ulang, bukan jumlah item dalam tabel dasar. Bahkan meja dengan item yang sangat sedikit dapat membutuhkan banyak waktu untuk menyelesaikan penimbunan kembali. Jajak pendapat DescribeTable daripada mengasumsikan meja kecil akan siap dengan cepat.

Lihat Menambahkan indeks vektor ke tabel yang ada.

Sinkronisasi tulis yang sedang berlangsung

Setelah indeks aktif, DynamoDB mereplikasi setiap penulisan ke tabel dasar ke dalam indeks vektor. Perilaku berikut memengaruhi apakah dan bagaimana tulisan mencapai indeks:

  • Item direplikasi ke indeks hanya jika berisi atribut vektor yang valid. Jika indeks mendefinisikan kunci partisi, item juga harus berisi atribut kunci partisi itu; jika tidak, penulisan berhasil pada tabel dasar tetapi item tidak direplikasi ke indeks.

  • Nilai vektor disimpan dalam tabel dasar seperti yang ditulis, tetapi disimpan pada presisi 32-bit float point (f32) dalam indeks. Nilai dengan presisi yang lebih tinggi kehilangan presisi itu ketika direplikasi ke indeks.

  • Saat Anda menghapus atribut vektor dari item, atau menghapus item, entri yang sesuai dihapus dari indeks.

Untuk set lengkap aturan validasi tulis, lihat. Menulis item dengan data vektor

Sinkronisasi lintas Wilayah

Ketika tabel yang memiliki indeks vektor adalah tabel global, DynamoDB mereplikasi penulisan di Wilayah replika mana pun ke Wilayah lain dan mengindeksnya di sana. DynamoDB mereplikasi data ke indeks vektor secara asinkron. Vektor yang Anda tulis di satu Wilayah mungkin tidak segera muncul dalam SearchVectors hasil di wilayah lain—bahkan jika tabel menggunakan konsistensi kuat multi-wilayah (MRSC). Lihat Menggunakan indeks vektor dengan tabel global.