Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gabungkan dua pecahan
Operasi penggabungan shard membutuhkan dua pecahan tertentu dan menggabungkannya menjadi satu pecahan. Setelah penggabungan, pecahan anak tunggal menerima data untuk semua nilai kunci hash yang dicakup oleh dua pecahan induk.
Ketinggian Shard
Untuk menggabungkan dua pecahan, pecahan harus berdekatan. Dua pecahan dianggap berdekatan jika penyatuan rentang kunci hash untuk dua pecahan membentuk satu set yang berdekatan tanpa celah. Misalnya, Anda memiliki dua pecahan, satu dengan rentang kunci hash 276... 381 dan yang lainnya dengan rentang kunci hash 382... 454. Anda dapat menggabungkan dua pecahan ini menjadi pecahan tunggal yang akan memiliki rentang kunci hash 276... 454.
Untuk mengambil contoh lain, misalkan Anda memiliki dua pecahan, satu dengan rentang kunci hash 276.. 381 dan yang lainnya dengan rentang kunci hash 455... 560. Anda tidak dapat menggabungkan dua pecahan ini karena akan ada satu atau lebih pecahan di antara keduanya yang mencakup kisaran 382.. 454.
Himpunan semua OPEN
pecahan dalam aliran — sebagai grup — selalu mencakup seluruh rentang nilai kunci hash. MD5 Untuk informasi lebih lanjut tentang status pecahan — seperti —lihat. CLOSED
Pertimbangkan perutean data, persistensi data, dan status pecahan setelah reshard
Untuk mengidentifikasi pecahan yang merupakan kandidat untuk digabungkan, Anda harus menyaring semua pecahan yang berada dalam keadaan. CLOSED
Pecahan yang OPEN
—yaitu, bukan CLOSED
—memiliki nomor urut akhir. null
Anda dapat menguji nomor urut akhir untuk pecahan menggunakan:
if( null == shard.getSequenceNumberRange().getEndingSequenceNumber() ) { // Shard is OPEN, so it is a possible candidate to be merged. }
Setelah memfilter pecahan tertutup, urutkan pecahan yang tersisa dengan nilai kunci hash tertinggi yang didukung oleh setiap pecahan. Anda dapat mengambil nilai ini menggunakan:
shard.getHashKeyRange().getEndingHashKey();
Jika dua pecahan berdekatan dalam daftar yang difilter dan diurutkan ini, mereka dapat digabungkan.
Kode untuk Operasi Gabungan
Kode berikut menggabungkan dua pecahan. Kode mengasumsikan bahwa myStreamName
memegang nama aliran Anda dan variabel objek shard1
dan shard2
menahan dua pecahan yang berdekatan untuk digabungkan.
Untuk operasi penggabungan, mulailah dengan membuat instance objek baru. mergeShardsRequest
Tentukan nama aliran dengan setStreamName
metode. Kemudian tentukan dua pecahan untuk digabungkan menggunakan metode setShardToMerge
andsetAdjacentShardToMerge
. Terakhir, panggil mergeShards
metode pada klien Kinesis Data Streams untuk melakukan operasi.
MergeShardsRequest mergeShardsRequest = new MergeShardsRequest(); mergeShardsRequest.setStreamName(myStreamName); mergeShardsRequest.setShardToMerge(shard1.getShardId()); mergeShardsRequest.setAdjacentShardToMerge(shard2.getShardId()); client.mergeShards(mergeShardsRequest);
Langkah pertama setelah prosedur ini ditunjukkan diTunggu streaming menjadi aktif kembali.