Utilisez le redécoupage, le dimensionnement et le traitement parallèle pour modifier le nombre de partitions - 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.

Utilisez le redécoupage, le dimensionnement et le traitement parallèle pour modifier le nombre de partitions

Le repartitionnement vous permet d'augmenter ou de diminuer le nombre de partitions dans un flux afin de faire face aux modifications de la vitesse de circulation des données dans le flux. En général, le repartitionnement est effectué par une application administrative qui surveille les métriques de traitement des données de partition. Bien qu'il ne lance pas KCL lui-même les opérations de repartage, il est conçu pour s'adapter aux variations du nombre de partitions résultant du repartage.

Comme indiqué dansUtilisez un tableau des baux pour suivre les partitions traitées par l'application KCL client, il KCL suit les partitions du flux à l'aide d'une table Amazon DynamoDB. Lorsque de nouvelles partitions sont créées à la suite d'un redécoupage, les KCL nouvelles partitions sont découvertes et renseigne de nouvelles lignes dans le tableau. Les applications de travail détectent automatiquement les nouvelles partitions et créent des processeurs pour traiter les données qu'elles contiennent. KCLIl distribue également les fragments du flux entre tous les opérateurs et processeurs de disques disponibles.

KCLCela garantit que toutes les données qui existaient dans des partitions avant le repartage sont traitées en premier. Une fois que les données ont été traitées, les données issues des nouvelle partitions sont envoyées aux processeurs d'enregistrements. De cette façon, l'ordre dans lequel les enregistrements de données ont été ajoutés au flux pour une clé de partition donnée est KCL préservé.

Exemple : repartage, mise à l'échelle et traitement parallèle

L'exemple suivant montre comment vous pouvez gérer KCL le redimensionnement et le repartage :

  • Par exemple, si votre application s'exécute sur une EC2 instance et traite un flux de données Kinesis comportant quatre partitions. Cette instance possède un KCL travailleur et quatre processeurs d'enregistrements (un processeur d'enregistrement pour chaque partition). Ces quatre processeurs d'enregistrements s'exécutent en parallèle dans le même processus.

  • Ensuite, si vous mettez à l'échelle l'application pour utiliser une autre instance, vous avez deux instances qui traitent un flux qui contient quatre partitions. Lorsque le KCL travailleur démarre sur la deuxième instance, il équilibre la charge avec la première instance, de sorte que chaque instance traite désormais deux partitions.

  • Si vous décidez ensuite de fractionner les quatre partitions en cinq partitions. KCLLà encore, le traitement est coordonné entre les instances : une instance traite trois partitions et l'autre deux partitions. Une coordination similaire se produit lorsque vous fusionnez des partitions.

Généralement, lorsque vous utilisez leKCL, vous devez vous assurer que le nombre d'instances ne dépasse pas le nombre de partitions (sauf en cas de panne en veille). Chaque partition est traitée par un seul KCL opérateur et possède exactement un processeur d'enregistrement correspondant. Vous n'avez donc jamais besoin de plusieurs instances pour traiter une partition. Cependant, une seul application de travail peut traiter tout nombre de partitions, et il est donc approprié que le nombre de partitions dépasse le nombre d'instances.

Pour faire monter le traitement en puissance dans votre application, vous devez tester une combinaison des méthodes suivantes :

  • Augmentation de la taille de l'instance (car tous les processeurs d'enregistrements s'exécutent en parallèle dans un processus)

  • Augmentation du nombre d'instances jusqu'au nombre maximal de partitions ouvertes (car les partitions peuvent être traitées de façon indépendante)

  • Augmentation du nombre de partitions (ce qui augmente le niveau de parallélisme)

Notez que vous pouvez utiliser autoscaling pour mettre à l'échelle automatiquement vos instances sur la base des métriques appropriées. Pour plus d'informations, consultez le guide de l'utilisateur d'Amazon EC2 Auto Scaling.

Lorsque le repartage augmente le nombre de partitions dans le flux, l'augmentation correspondante du nombre de processeurs d'enregistrements augmente la charge sur les EC2 instances qui les hébergent. Si les instances font partie d'un groupe Auto Scaling et que la charge augmente suffisamment, le groupe Auto Scaling ajoute des instances pour gérer l'augmentation de la charge. Vous devez configurer vos instances pour lancer votre Amazon Kinesis Data Streams au démarrage, afin que les applications de travail et processeurs d'enregistrements supplémentaires deviennent actifs immédiatement sur la nouvelle instance.

Pour en savoir plus sur le repartitionnement, référez-vous à la section Revisionner un stream.