Comment puis-je modifier le nombre de partitions ouvertes dans Kinesis Data Streams ?

Lecture de 6 minute(s)
0

Je souhaite modifier le nombre de partitions ouvertes dans Amazon Kinesis Data Streams et savoir quoi faire après avoir effectué une refragmentation.

Brève description

Une partition peut être dans l'état OUVERT, FERMÉ ou EXPIRÉ. Lorsqu'une partition est dans l'état OUVERT, vous pouvez y ajouter et récupérer des enregistrements de données.

Pour modifier le nombre de partitions ouvertes dans Kinesis Data Streams, effectuez l'une des tâches suivantes :

  • Mettez à jour le nombre total de partitions. Cette action modifie le nombre de partitions dans le flux.
  • Divisez une seule partition.
  • Fusionnez deux partitions en une seule.

Remarque : Si vous modifiez le nombre de partitions ouvertes dans votre flux de données Kinesis, cette modification affecte les valeurs des partitions parents et de la plage de clés de hachage.

Résolution

Mettre à jour le nombre total de partitions

Utilisez la console Kinesis ou les opérations d'API pour mettre à jour le nombre de partitions ouvertes. Lorsque vous utilisez la Console de gestion AWS, Data Streams utilise l'API UpdateShardCount pour diviser vos flux. Passez en revue les points suivants concernant l'API UpdateHardcount :

  • L'API divise ou fusionne des partitions individuelles en arrière-plan pour mettre à jour le nombre de partitions du flux spécifié en fonction du nombre de partitions spécifié. UpdateHardcount est un appel d'API au niveau du flux.
  • UpdateHardcount ne prend en charge que la mise à l'échelle uniforme. La mise à l'échelle uniforme crée des partitions de pourcentage égal pour la plage de clés de hachage.
  • L'opération UpdateHardCount réajuste le nombre de partitions à une valeur cible spécifique de tailles égales.

Diviser une seule partition

Vous pouvez diviser une partition « chaude » ou « froide » en deux partitions

Remarque : Vous pouvez fractionner ou fusionner des partitions uniquement via les opérations d'API.

Les partitions qui reçoivent plus de données que prévu sont appelées partitions « chaudes ». Utilisez l'API SplitShard pour fractionner de manière sélective les partitions actives afin d'augmenter la capacité des clés de hachage qui ciblent ces partitions. Pour plus d'informations sur la gestion des partitions chaudes, consultez Stratégies de division.

Vous pouvez également surveiller le service Amazon Kinesis Data Streams avec Amazon CloudWatch. Pour utiliser les métriques CloudWatch afin de déterminer les partitions « chaudes » ou « froides », activez les métriques au niveau des partitions, notamment IncomingRecords et IncomingBytes.

Fusionner deux partitions en une seule

Vous pouvez diviser une partition « chaude » ou « froide » en deux partitions.

Remarque : Vous pouvez fractionner ou fusionner des partitions uniquement via les opérations d'API.

Les partitions qui reçoivent beaucoup moins de données que prévu sont appelés partitions « froides ». Utilisez l'API MergeShards pour fusionner des partitions froides afin d'utiliser leur pleine capacité. Il s'agit d'un appel d'API au niveau de la partition. Notez que vous ne pouvez fusionner que deux partitions adjacentes, l'union de leurs plages de clés de hachage formant un ensemble contigu continu.

Vous pouvez également surveiller le service Amazon Kinesis Data Streams avec Amazon CloudWatch. Utilisez les métriques CloudWatch pour déterminer les partitions « chaudes » ou « froides » en activant les métriques au niveau des partitions, telles que IncomingRecords et IncomingBytes.

Considérations supplémentaires

La partition ou la paire de partitions sur laquelle agit l'opération de division est appelée partitions parents. Les partitions créées après l'opération de division sont appelées partitions enfants. Une partition parent passe également d'un état OUVERT à un état FERMÉ, et finalement, à un état EXPIRÉ, après la période de rétention du flux. Cela peut entraîner l'attribution d'un état OUVERT aux partitions enfants. Pour plus d'informations sur les transitions de partition parent, consultez la section Routage des données, persistance des données et état de la partition après une division .

Après la division, continuez à lire les données des partitions FERMÉES jusqu'à ce que les partitions FERMÉES soient épuisées. Cela permet de préserver l'ordre des données lues par les applications grand public. Après avoir épuisé toutes les partitions FERMÉES, lisez les données des partitions enfants ouvertes. La bibliothèque cliente Amazon Kinesis (KCL) est conçue pour s'adapter aux opérations de division. Les données qui existaient dans les partitions avant la division sont traitées en premier. Pour plus d'informations sur les opérations de division, consultez Division, mise à l’échelle et traitement parallèle .

Si vous modifiez le nombre de partitions ouvertes, des modifications peuvent également être apportées aux plages de clés de hachage pour certaines partitions. Une plage de clés de hachage est la plage de valeurs de clés de hachage possibles pour une partition, un ensemble d'entiers positifs contigus ordonnés. La plage comprend les valeurs clés de début et de fin. Par exemple, si vous créez un flux de données Kinesis avec cinq partitions ouvertes, le flux est divisé en 5 parties égales en fonction de la plage de clés de hachage. Par conséquent, toutes les partitions ont 20 % comme valeur d'espace clé de hachage.

Supposons que vous ayez une plage de clés de hachage de X partitions, de Partition-1 à Partition-X. Vous pouvez modifier les plages en divisant davantage les partitions ou en les fusionnant :

Console ou API UpdateShardCount

Si vous modifiez le nombre de partitions ouvertes de 5 à 10, l'espace-clé obtenu pour les partitions enfants devient 10 %. La plage de clés de hachage est divisée de manière égale entre toutes les partitions ouvertes d'une valeur de 10 %.

API SplitsHard

Divisez la dernière partition (Partition-5) en deux partitions (Partition-6 et Partition-7). Avant de diviser une partition, l'espace clé de la partition parent est de 20 %. Une fois que vous avez scindé une partition, l'espace clé des partitions enfants (Partition-6 et Partition-7) devient 10 %. La plage de clés de hachage pour les partitions parents est divisée de manière égale entre les deux partitions enfants avec une valeur de 10 %. Par conséquent, l'espace clé de hachage est ainsi divisé 20%-20%-20%-20%-10%-10%.

API MergeShards

Fusionnez les deux dernières partitions (Partition-4 et Partition-5) en une seule partition (Partition-6). L'espace clé de hachage des partitions parents (Partition-4 et Partition-5) est de 20 %. Une fois que vous avez fusionné une partition, l'espace clé de la partition enfant (Partition-6) est de 40 %. La plage de clés de hachage des partitions parents est ajoutée aux deux partitions enfants pour atteindre 40 %. Par conséquent, l'espace clé de hachage est ainsi divisé 20%-20%-20%-40%.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 5 mois