

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

# Gabungkan dua pecahan
<a name="kinesis-using-sdk-java-resharding-merge"></a>

 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](kinesis-using-sdk-java-after-resharding.md#kinesis-using-sdk-java-resharding-data-routing) 

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` and`setAdjacentShardToMerge`. 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 di[Tunggu streaming menjadi aktif kembali](kinesis-using-sdk-java-after-resharding.md#kinesis-using-sdk-java-resharding-wait-until-active).