Anda dapat memodifikasi skema search index secara dinamis untuk menambahkan, memperbarui, atau menghapus kolom, serta mengubah routing key dan metode presorting. Fitur ini membantu Anda beradaptasi dengan kebutuhan bisnis baru atau mengoptimalkan kinerja. Prosesnya melibatkan pembuatan canary index dengan skema yang dimodifikasi, sinkronisasi data, pengujian A/B dengan pembobotan traffic, penukaran skema antara source index dan canary index, lalu penghapusan canary index.
Cara kerja
Tabel data Tablestore bersifat schema-free, tetapi search index memiliki skema yang kaku. Saat membuat search index, Anda harus menentukan kolom mana yang akan diindeks untuk kueri. Modifikasi skema ini sering diperlukan untuk mendukung perubahan bisnis atau penyetelan kinerja. Skenario umum meliputi:
-
Menambahkan kolom indeks: Seiring perkembangan bisnis, Anda mungkin perlu melakukan kueri pada kolom tambahan.
-
Memperbarui kolom indeks: Anda dapat mengubah properti seperti tipe kolom, kolom virtual, pengaturan array, alat analisis (analyzer), atau format tanggal.
-
Menghapus kolom indeks: Anda dapat menghapus kolom yang tidak lagi diperlukan untuk kueri.
-
Memodifikasi routing key: Routing key yang terdefinisi dengan baik dapat mengurangi amplifikasi baca dan meningkatkan kinerja kueri.
-
Memodifikasi presorting: Jika urutan pengurutan data dalam kueri sesuai dengan konfigurasi presorting indeks, kecepatan kueri akan meningkat.
Alur kerja
Karena sifatnya yang dinamis, Anda tidak boleh menggunakan indeks sementara ini untuk kueri. Jika fitur ini tidak memenuhi kebutuhan Anda, submit a ticket untuk menghubungi kami.
Gambar berikut menunjukkan alur kerja untuk memodifikasi skema secara dinamis. Seluruh proses transparan bagi aplikasi Anda, sehingga Anda dapat mengubah skema tanpa memodifikasi kode aplikasi.
Tabel berikut menjelaskan langkah-langkah utama untuk memodifikasi skema search index.
|
Langkah |
Aksi |
Deskripsi |
|
1 |
Create a canary index |
Buat canary index untuk source index dan definisikan skema barunya dengan menambahkan, memodifikasi, atau menghapus kolom sesuai kebutuhan. |
|
2 |
Check the index synchronization progress |
Sebelum melanjutkan, tunggu hingga seluruh data eksisting dan data inkremental tersinkronisasi dan progres canary index sesuai dengan source index. |
|
3 |
Set weights for A/B testing |
Pengujian A/B memungkinkan Anda mendistribusikan traffic kueri antara source index dan canary index untuk memvalidasi skema baru. Alihkan traffic secara bertahap ke canary index hingga menangani 100% traffic kueri. |
|
4 |
Swap index schemas |
Setelah seluruh traffic kueri dialihkan ke canary index, tukar skema antara source index dan canary index. Setelah penukaran, nama source index mengarah ke skema baru, sedangkan nama canary index mengarah ke skema lama. Seluruh traffic kueri kemudian diarahkan ke nama source index, yang sekarang menggunakan skema baru. |
|
5 |
Delete the canary index |
Setelah menukar skema dan memverifikasi bahwa indeks berfungsi sesuai harapan, tunggu periode stabilisasi (misalnya, satu hari) sebelum menghapus canary index. |
Prosedur
-
Buka tab Indexes.
-
Masuk ke Tablestore console.
-
Pada bilah navigasi atas, pilih wilayah dan resource group.
-
Pada halaman Overview, klik nama instans, atau klik Manage Instance di kolom Actions.
-
Pada tab Instance Details, di area Tables, klik nama tabel data atau klik Indexes di kolom Actions.
-
-
Buat canary index berdasarkan source index.
-
Pada tab Indexes, temukan search index, lalu klik Change Schema di kolom Actions.
-
Pada kotak dialog Reindex, tambahkan, modifikasi, atau hapus bidang indeks sesuai kebutuhan.
Kotak dialog Reindex berisi item konfigurasi berikut:
-
Informasi dasar indeks: Index Type (misalnya, search index), Instance Name, Table Name (misalnya,
exampletable), Index Name (misalnya,exampletable_index), dan Canary Index Name (misalnya,exampletable_index_reindex). -
Tabel konfigurasi bidang: Setiap baris memungkinkan Anda mengatur properti Field Name, Field Type, Index Parameters, Array, Highlight, dan Virtual Column. Anda dapat mengklik tombol + untuk menambahkan bidang, atau mengklik ikon hapus untuk menghapus bidang.
-
Di bagian bawah, tersedia toggle Advanced Settings. Setelah menyelesaikan konfigurasi, klik OK.
-
-
Untuk memodifikasi routing key atau metode presorting, aktifkan Advanced Settings dan konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Parameter
Deskripsi
Routing key
Menentukan bidang routing kustom. Anda dapat memilih satu atau beberapa kolom kunci primer sebagai bidang routing.
Saat data ditulis ke indeks, sistem menggunakan nilai routing key untuk menentukan distribusi data. Data dengan nilai routing key yang sama diindeks ke partisi yang sama. Untuk informasi lebih lanjut, lihat Use routing fields in a search index.
Presorting
Metode pengurutan default untuk data dalam search index. Presorting menentukan urutan default hasil kueri yang dikembalikan. Untuk informasi lebih lanjut, lihat Index presorting.
-
Untuk mengurutkan berdasarkan kunci primer, pilih Default.
-
Untuk mengurutkan berdasarkan nilai bidang atau kombinasi kolom kunci primer, pilih Custom dan konfigurasikan pengaturannya.
-
Pilih tipe pengurutan, seperti Primary Key Pre-sorting atau Field Pre-sorting, lalu klik Add.
-
Pilih nama bidang dan urutan pengurutan.
Urutan pengurutan yang didukung adalah ascending dan descending.
PentingAnda hanya perlu memilih nama bidang jika memilih Field Pre-sorting.
Saat menggunakan pengurutan kustom, Anda dapat mengonfigurasi presorting kunci primer dan presorting bidang sesuai kebutuhan.
-
-
-
Klik OK.
-
Pada kotak dialog Index Comparison, tinjau perbandingan routing key, presorting, dan skema antara source index dan canary index. Setelah memastikan informasi benar, klik Yes.
-
-
Periksa informasi sinkronisasi indeks.
-
Klik ikon
di samping source index atau klik nama source index.Canary index untuk source index akan ditampilkan.
-
Klik Use Gray Index di kolom Actions canary index.
PentingCanary index melewati fase sinkronisasi data penuh dan fase sinkronisasi data inkremental.
-
Sebelum sinkronisasi data selesai, jika Anda mengarahkan pointer ke tombol Use Gray Index di kolom Actions, tooltip yang menunjukkan Yes, but the operation may cause security risks. akan muncul dan alih bencana dinonaktifkan.
-
Saat canary index telah menyamai source index, jika Anda mengarahkan pointer ke tombol Use Gray Index di kolom Actions, tooltip yang menunjukkan Yes. The operation is secure. akan muncul. Anda kemudian dapat melanjutkan ke langkah berikutnya.
-
-
Pada kotak dialog Use Gray Index, lihat informasi sinkronisasi indeks.
Bagian atas kotak dialog menampilkan Data Status (Synchronizing) dan Switchover Status (Safe to switch). Informasi indeks ditampilkan dalam dua kolom untuk source index dan canary index. Setiap kolom berisi bidang berikut:
-
Sync Status
-
Rows
-
Created At
-
Last Sync Time
-
Sync Latency
-
Data Lifecycle
Di bagian bawah, pada area Actions, Anda dapat menggunakan slider untuk menyesuaikan bobot traffic untuk source index dan canary index, lalu klik Set Weight untuk menyimpan konfigurasi, atau klik Switch Index untuk menyelesaikan alih bencana indeks.
-
-
-
Setelah sinkronisasi selesai, lakukan pengujian A/B dengan mengatur bobot traffic.
Gunakan pengujian A/B untuk memvalidasi skema baru dengan mendistribusikan traffic kueri antara source index dan canary index. Anda harus mengalihkan seluruh traffic ke canary index sebelum melanjutkan ke langkah berikutnya.
-
Pada bagian Operations kotak dialog Use Gray Index, geser slider untuk menyesuaikan bobot source index dan canary index, lalu klik Set Weight.
-
Pada kotak dialog Set Weight, tinjau data bobot dan perbandingan skema.
-
Setelah memastikan informasi benar, klik Set Weight.
-
Pada kotak dialog konfirmasi yang muncul, klik Yes.
-
-
Setelah seluruh traffic kueri dialihkan ke canary index, tukar skema antara source index dan canary index.
Setelah penukaran, nama source index mengarah ke skema baru, dan nama canary index mengarah ke skema lama. Seluruh traffic kueri kemudian diarahkan ke nama source index, yang sekarang menggunakan skema baru.
Pada kotak dialog Use Gray Index, pastikan status data adalah In canary release, status alih bencana adalah Yes. The operation is secure., bobot source index adalah 0, dan bobot canary index adalah 100, lalu klik Switch Index.
-
Pada bagian Operations kotak dialog Use Gray Index, klik Switch Index.
-
Pada kotak dialog Switch Index, tinjau perbandingan routing key, presorting, dan skema antara source index dan canary index. Setelah memastikan informasi benar, klik Confirm Switch.
-
-
Setelah menukar skema dan memverifikasi bahwa indeks berfungsi sesuai harapan, tunggu periode stabilisasi (misalnya, satu hari) sebelum menghapus canary index.
Pastikan kotak dialog Use Gray Index menunjukkan status data sebagai Released, status alih bencana sebagai Yes. The operation is secure., dan area Actions menunjukkan traffic source index sebesar 100 dan traffic canary index sebesar 0.
-
Pada kotak dialog Use Gray Index, klik Delete Canary Release.
-
Pada kotak dialog Are you sure you have completed the canary release and want to delete the old index?, pastikan informasi tentang canary index yang akan dihapus benar. Lalu, pada kotak teks, masukkan
I have confirmed that the new index data has been synchronized and has been in canary release for a period of time. -
Klik Yes.
-
Perlindungan
Untuk memastikan keamanan operasional, Tablestore menyediakan mekanisme rollback dan peringatan alih bencana guna meminimalkan risiko selama modifikasi indeks.
-
Mekanisme rollback
Langkah-langkah kunci dalam proses modifikasi skema dinamis mendukung rollback.
-
Setelah membuat canary index, jika Anda menemukan skemanya salah, Anda dapat menghapusnya dan membuat yang baru.
-
Selama pengujian A/B, Anda dapat mengalihkan traffic secara bertahap ke canary index dengan menyesuaikan bobot traffic. Jika mengalami masalah, Anda dapat mengalihkan kembali traffic ke source index kapan saja dengan mengatur ulang bobot.
-
Setelah menukar skema, jika menemukan masalah, Anda dapat melakukan Cancel Switchover kapan saja untuk kembali ke skema source index. Operasi Switch Index dan Cancel Switchover merupakan operasi invers.
-
-
Peringatan Peralihan
Mengalihkan traffic ke canary index sebelum sepenuhnya tersinkronisasi dengan source index dapat menyebabkan kueri mengembalikan data usang. Tablestore menentukan apakah alih bencana "aman dilakukan" berdasarkan status sinkronisasi dan waktu sinkronisasi terakhir kedua indeks.
Tablestore menentukan bahwa alih bencana Yes. The operation is secure. dalam kondisi berikut:
-
Source index berada dalam fase sinkronisasi penuh, dan canary index berada dalam fase penuh atau inkremental, artinya canary index telah menyamai source index.
-
Kedua indeks berada dalam fase sinkronisasi inkremental, dan waktu sinkronisasi terakhir canary index tidak lebih dari 60 detik di belakang waktu sinkronisasi terakhir source index.
-
Penagihan
Anda tidak dikenai biaya untuk membangun canary index atau menulis data ke dalamnya. Anda dikenai biaya untuk penyimpanan yang dikonsumsi oleh kedua indeks dan untuk CU baca yang dicadangkan untuk keduanya. Untuk informasi lebih lanjut, lihat Billable items of search indexes.
Dokumen terkait
-
Untuk melakukan kueri pada bidang atau tipe data baru tanpa mengubah struktur tabel, Anda dapat memodifikasi skema search index atau menggunakan fitur kolom virtual saat membuat search index baru. Untuk informasi lebih lanjut, lihat Virtual columns.
-
Tablestore mendukung berbagai jenis kueri untuk skenario berbeda, termasuk MatchAll query, Match query, Match Phrase query, Term query, Terms query, Wildcard query, Prefix query, Suffix query, tokenization-based wildcard query, Range query, Bool query, Nested query, Geo-distance query, Geo-bounding box query, Geo-polygon query, Exists query, Collapse (distinct), dan Virtual columns untuk melakukan kueri data Anda.
-
Untuk melakukan kueri cepat pada data dengan tipe berbeda dalam search index menggunakan Pernyataan SQL, Anda dapat menggunakan fitur SQL query. Untuk informasi lebih lanjut, lihat SQL query, Create mapping tables for search indexes, Query data, Full-text search, Array type, Nested type, dan Virtual columns.
-
Gunakan fitur agregasi search index untuk melakukan analisis data seperti mencari nilai minimum, maksimum, jumlah, dan rata-rata, menghitung jumlah baris, menghitung jumlah unik, menghitung persentil, mengelompokkan berdasarkan nilai bidang, rentang, lokasi geografis, atau kondisi filter, membuat histogram, atau melakukan kueri nested. Untuk informasi lebih lanjut, lihat Aggregation.