Gabungkan dua pecahan - Amazon Kinesis Data Streams

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.