Décidez d'une stratégie de repartage - Amazon Kinesis Data Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Décidez d'une stratégie de repartage

L'objectif du repartitionnement dans Amazon Kinesis Data Streams est de permettre à votre flux de s'adapter aux changements de débit des données. Vous fractionnez les partitions pour accroître la capacité (et le coût) de votre flux. Vous fusionnez les partitions pour réduire le coût (et la capacité) de votre flux.

Une approche du partitionnement peut consister à fractionner chaque partition du flux et à doubler ainsi la capacité du flux. Cependant, cela peut fournir une capacité supplémentaire supérieure à celle dont vous avez réellement besoin et donc engendrer des coûts inutiles.

Vous pouvez également utiliser des métriques pour déterminer quelles sont vos partitions chaudes et vos partitions froides, c'est-à-dire les partitions qui reçoivent plus de données que prévu et les partitions qui reçoivent moins de données que prévu. Vous pouvez ensuite fractionner les partitions chaudes de manière sélective afin d'augmenter la capacité des clés de hachage qui ciblent ces partitions. De même, vous pouvez fusionner les partitions froides afin de mieux utiliser leurs capacités inutilisées.

Vous pouvez obtenir certaines données de performance pour votre flux à partir des CloudWatch métriques Amazon publiées par Kinesis Data Streams. Cependant, vous pouvez également collecter certaines de vos propres métriques pour vos flux. Pour cela, vous pouvez consigner les valeurs de clé de hachage générées par les clés de partition pour vos enregistrements de données. N'oubliez pas que vous spécifiez la clé de partition lorsque vous ajoutez l'enregistrement au flux.

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

Kinesis Data Streams calcule la MD5clé de hachage à partir de la clé de partition. Comme vous spécifiez la clé de partition pour l'enregistrement, vous pouvez l'utiliser MD5 pour calculer la valeur de la clé de hachage pour cet enregistrement et l'enregistrer.

Vous pouvez également enregistrer IDs les partitions auxquelles vos enregistrements de données sont affectés. L'ID de partition s'obtient en utilisant la méthode getShardId de l'objet putRecordResults renvoyé par la méthode putRecords et l'objet putRecordResult renvoyé par la méthode putRecord.

String shardId = putRecordResult.getShardId();

Avec les valeurs de la partition IDs et de la clé de hachage, vous pouvez déterminer quelles partitions et quelles clés de hachage reçoivent le plus ou le moins de trafic. Vous pouvez ensuite utiliser le repartitionnement pour augmenter ou diminuer les capacités, de manière appropriée pour ces clés.