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 pecahan mengambil 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.
Keterdekatan Pecahan
Untuk menggabungkan dua pecahan, pecahan harus berdekatan. Dua pecahan dianggap berdekatan jika penyatuan rentang kunci hash untuk dua pecahan membentuk himpunan 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 kedua pecahan ini menjadi satu pecahan yang akan memiliki kisaran 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 kedua pecahan ini karena akan ada satu atau lebih pecahan di antara keduanya yang mencakup kisaran 382.. 454.
Kumpulan semua pec OPEN ahan 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 hard ulang
Untuk mengidentifikasi pecahan yang merupakan kandidat untuk digabungkan, Anda harus menyaring semua pecahan yang berada dalam suatu CLOSED negara. 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 menyaring 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 menyimpan nama aliran Anda dan variabel objek shard1 dan shard2 menahan dua pecahan yang berdekatan untuk digabungkan.
Untuk operasi penggabungan, mulailah dengan membuat instance objek barumergeShardsRequest. Tentukan nama aliran dengan setStreamName metode. Kemudian tentukan dua pecahan untuk digabungkan menggunakan setAdjacentShardToMerge metode setShardToMerge dan. 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 padaTunggu streaming menjadi aktif kembali.