View a markdown version of this page

Tentukan strategi untuk reharding - Amazon Kinesis Data Streams

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

Tentukan strategi untuk reharding

Tujuan resharding di Amazon Kinesis Data Streams adalah untuk memungkinkan aliran Anda beradaptasi dengan perubahan laju aliran data. Anda membagi pecahan untuk meningkatkan kapasitas (dan biaya) streaming Anda. Anda menggabungkan pecahan untuk mengurangi biaya (dan kapasitas) streaming Anda.

Salah satu pendekatan untuk reharding adalah dengan membagi setiap pecahan di aliran — yang akan menggandakan kapasitas aliran. Namun, ini mungkin memberikan lebih banyak kapasitas tambahan daripada yang sebenarnya Anda butuhkan dan karenanya menghasilkan biaya yang tidak perlu.

Anda juga dapat menggunakan metrik untuk menentukan pecahan panas atau dingin Anda, yaitu pecahan yang menerima lebih banyak data, atau lebih sedikit data, dari yang diharapkan. Anda kemudian dapat secara selektif membagi pecahan panas untuk meningkatkan kapasitas kunci hash yang menargetkan pecahan tersebut. Demikian pula, Anda dapat menggabungkan pecahan dingin untuk memanfaatkan kapasitas yang tidak terpakai dengan lebih baik.

Anda dapat memperoleh beberapa data kinerja untuk streaming Anda dari CloudWatch metrik Amazon yang diterbitkan Kinesis Data Streams. Namun, Anda juga dapat mengumpulkan beberapa metrik Anda sendiri untuk streaming Anda. Salah satu pendekatannya adalah mencatat nilai kunci hash yang dihasilkan oleh kunci partisi untuk catatan data Anda. Ingatlah bahwa Anda menentukan kunci partisi pada saat Anda menambahkan catatan ke streaming.

putRecordRequest.setPartitionKey( String.format( "myPartitionKey" ) );

Kinesis Data Streams menggunakan MD5 untuk menghitung kunci hash dari kunci partisi. Karena Anda menentukan kunci partisi untuk catatan, Anda dapat menggunakan MD5 untuk menghitung nilai kunci hash untuk catatan itu dan mencatatnya.

Anda juga dapat mencatat ID pecahan yang ditugaskan catatan data Anda. ID pecahan tersedia dengan menggunakan getShardId metode putRecordResults objek yang dikembalikan oleh putRecords metode, dan putRecordResult objek dikembalikan oleh putRecord metode.

String shardId = putRecordResult.getShardId();

Dengan ID pecahan dan nilai kunci hash, Anda dapat menentukan pecahan dan kunci hash mana yang menerima lalu lintas paling banyak atau paling sedikit. Anda kemudian dapat menggunakan resharding untuk menyediakan kapasitas yang lebih atau lebih sedikit, sesuai untuk kunci ini.