View a markdown version of this page

Gérez de gros disques - 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.

Gérez de gros disques

Amazon Kinesis Data Streams prend en charge les enregistrements jusqu'à 10 mégaoctets (). MiBs Cette fonctionnalité est recommandée pour traiter des charges utiles de données intermittentes qui dépassent la limite de taille d'enregistrement par défaut de 1 MiB. La taille d'enregistrement maximale par défaut pour les flux existants et nouvellement créés est fixée à 1 MiB.

Cette fonctionnalité profite aux applications de l'Internet des objets (IoT), aux pipelines de capture des données modifiées (CDC) et aux flux de travail d'apprentissage automatique qui nécessitent le traitement de charges utiles de données parfois plus importantes. Pour commencer à utiliser des enregistrements volumineux dans votre flux, mettez à jour la taille maximale d'enregistrement de votre flux.

Important

La limite de débit de partition individuelle de 1 MB/s pour les écritures et de 2 MB/s pour les lectures reste inchangée, compte tenu de la prise en charge de tailles d'enregistrement plus importantes. Kinesis Data Streams est conçu pour prendre en charge des enregistrements volumineux intermittents ainsi qu'un trafic de base d'enregistrements inférieur ou égal à 1 MiB. Il n'est pas conçu pour permettre l'ingestion prolongée de volumes élevés et records.

Comment fonctionnent les grands disques

Amazon Kinesis Data Streams accepte les enregistrements d'une taille maximale de 10 MiB. Votre flux peut accueillir des enregistrements volumineux en dépassant temporairement son débit d'écriture soutenu, puis en revenant à son taux de référence au fil du temps. Cette capacité de rafale est continuellement renouvelée, de sorte que votre stream peut gérer des enregistrements volumineux intermittents parallèlement au trafic normal sans aucun ajustement manuel de la capacité.

Pour visualiser ce comportement, imaginez la capacité d'écriture de votre stream comme un réservoir qui se recharge à un rythme régulier. Lorsque vous envoyez un enregistrement volumineux, tel qu'un enregistrement de 10 MiB, le réservoir est temporairement épuisé. Il commence alors à se recharger immédiatement, ce qui signifie que vous pouvez continuer à envoyer des disques plus petits au fur et à mesure que la capacité devient disponible.

Le taux de réapprovisionnement des capacités dépend de plusieurs facteurs :

  • La taille des grands disques

  • La taille des enregistrements de référence

  • Le schéma général du trafic sur le stream

  • La stratégie de clé de partition que vous avez choisie

Pour de meilleurs résultats, utilisez une clé de partition uniformément distribuée pour répartir les enregistrements volumineux sur la capacité disponible du flux.

En mode à la demande, Kinesis Data Streams gère automatiquement la capacité. Votre flux augmente ou diminue son débit en fonction de vos modèles de trafic, et une capacité record en rafale est gérée de manière transparente. Il n'est pas nécessaire de prévoir ou de gérer de la capacité pour utiliser des enregistrements volumineux. Pour plus d'informations sur l'évolution du mode à la demande, voir Fonctionnalités et cas d'utilisation du mode à la demande.

Mettez à jour votre stream pour utiliser des enregistrements volumineux

Pour traiter des enregistrements plus volumineux avec Kinesis Data Streams
  1. Accédez à la console Kinesis Data Streams.

  2. Sélectionnez votre stream, puis accédez à l'onglet Configuration.

  3. Cliquez sur Modifier, qui se trouve à côté de Taille maximale d'enregistrement.

  4. Définissez la taille maximale de votre enregistrement (jusqu'à 10 MiB).

  5. Enregistrez vos modifications.

Ce paramètre ajuste uniquement la taille d'enregistrement maximale pour ce flux de données Kinesis. Avant d'augmenter cette limite, vérifiez que toutes les applications en aval peuvent gérer des enregistrements plus volumineux.

Vous pouvez également mettre à jour ce paramètre à l'aide de la AWS CLI :

aws kinesis update-max-record-size \ --stream-arn \ --max-record-size-in-ki-b 5000

Optimisez les performances de votre streaming avec des enregistrements volumineux

Les grands disques sont conçus pour une utilisation intermittente. Pour de meilleurs résultats, limitez le volume d'enregistrements volumineux à moins de 2 % de votre trafic global. Étant donné que le flux dépasse temporairement son débit soutenu pour fournir un enregistrement volumineux, l'envoi trop fréquent d'enregistrements volumineux peut réduire la capacité disponible pour votre trafic de base. Pour plus d'informations sur l'optimisation des performances de votre streaming avec des enregistrements volumineux, consultez la section Throttling et les meilleures pratiques pour des performances optimales.

Atténuez le ralentissement avec des enregistrements volumineux

Étant donné que les enregistrements volumineux consomment temporairement de la capacité en rafale, votre flux peut limiter les écritures suivantes jusqu'à ce que la capacité soit réapprovisionnée. Les étapes suivantes permettent de réduire l'étranglement :

Pour atténuer l'étranglement
  1. Implémentez une logique de nouvelle tentative avec un ralentissement exponentiel dans votre application de production.

  2. Utilisez des clés de partition aléatoires pour distribuer des enregistrements volumineux sur la capacité disponible du flux.

  3. Stockez les charges utiles dans Amazon S3 et envoyez uniquement des références de métadonnées au flux pour les flux continus d'enregistrements volumineux. Pour plus d'informations, consultez la section Traitement d'enregistrements volumineux avec Amazon Kinesis Data Streams.

Gérez des enregistrements volumineux à l'aide des Kinesis Data Streams APIs

La prise en charge des enregistrements volumineux introduit une nouvelle API et met à jour deux plans de contrôle existants APIs pour gérer jusqu'à 10 enregistrements MiBs.

API pour modifier la taille des enregistrements :

  • UpdateMaxRecordSize: Configure la limite maximale de taille d'enregistrement pour les flux existants jusqu'à 10 MiBs.

Mises à jour des éléments existants APIs :

  • CreateStream: ajoute le MaxRecordSizeInKiB paramètre facultatif permettant de définir des limites de taille d'enregistrement lors de la création du flux.

  • DescribeStreamSummary: renvoie le MaxRecordSizeInKiB champ pour afficher la configuration actuelle du flux.

Tous les flux APIs répertoriés sont rétrocompatibles avec les flux existants. Pour consulter la documentation complète des API, consultez le manuel Amazon Kinesis Data Streams Service API Reference.

AWS composants compatibles avec les grands disques

Les AWS composants suivants sont compatibles avec les enregistrements de grande taille :

Composant Description

AWS SDK

AWS Le SDK prend en charge la gestion d'enregistrements volumineux. Vous pouvez mettre à jour la taille d'enregistrement maximale de votre flux jusqu'à 10 MiB en utilisant les méthodes disponibles dans le. AWS SDKs Pour plus d'informations, consultez la section Utilisation de ce service avec un AWS SDK.

Bibliothèque Kinesis Consumer (KCL)

À partir de la version 2.x, KCL prend en charge la gestion des enregistrements volumineux. Pour utiliser le support d'enregistrements volumineux, mettez à jour votre stream et utilisez KCL. maxRecordSize Pour plus d'informations, consultez la section Utiliser la bibliothèque cliente Kinesis.

Bibliothèque Kinesis Producer (KPL)

À partir de la version 1.0.5, KPL prend en charge la gestion des enregistrements volumineux. Pour utiliser le support d'enregistrements volumineux, mettez à jour votre stream et utilisez KPL. maxRecordSize Pour plus d'informations, consultez Développer des producteurs à l'aide de la bibliothèque Amazon Kinesis Producer Library (KPL).

Amazon EMR

Amazon EMR avec Apache Spark prend en charge le traitement d'enregistrements volumineux jusqu'à la limite de Kinesis Data Streams (10). MiBs Pour utiliser le support d'enregistrements volumineux, utilisez la readStream fonction. Pour plus d'informations, consultez la section Intégration d'Amazon EMR et d'Amazon Kinesis.

Amazon Data Firehose

Lorsqu'il est utilisé avec Kinesis Data Streams, le comportement d'Amazon Data Firehose avec des enregistrements volumineux dépend de la destination de livraison :

  • Amazon S3 : la livraison d'enregistrements volumineux est prise en charge sans configuration supplémentaire. Lorsque vous utilisez la conversion de format de données, la livraison d'enregistrements volumineux est prise en charge par Firehose. Lorsque vous utilisez le partitionnement dynamique, la livraison d'enregistrements volumineux n'est pas prise en charge par Firehose.

  • Lambda : nous vous déconseillons d'utiliser des enregistrements volumineux avec Firehose lorsqu'il déclenche des fonctions Lambda en aval. Cela peut entraîner des défaillances intermittentes.

  • HTTP : La livraison d'enregistrements volumineux n'est pas prise en charge par Firehose.

  • Snowflake : La livraison d'enregistrements volumineux n'est pas prise en charge par Firehose.

  • Amazon Redshift : La livraison d'enregistrements volumineux n'est pas prise en charge par Firehose.

Pour les applications nécessitant une livraison à Snowflake ou Redshift avec des enregistrements volumineux, transmettez d'abord les données à Amazon S3. Ensuite, utilisez les processus d'extraction, de transformation, de chargement (ETL) pour charger les données. Pour toutes les autres destinations, testez le comportement avec des enregistrements volumineux dans un proof-of-concept environnement avant de l'adapter à l'utilisation en production. La gestion de gros dossiers varie selon la destination.

AWS Lambda

AWS Lambda prend en charge des charges utiles jusqu'à 6 MiBs. Cette limite inclut la charge utile Kinesis convertie en codage base-64 et les métadonnées associées au mappage des sources d'événements (ESM). Pour les enregistrements inférieurs à 6 MiBs, Lambda les traite à l'aide d'ESM sans qu'aucune configuration supplémentaire ne soit requise. Pour les enregistrements supérieurs à 6 MiBs, Lambda les traite en utilisant une destination en cas de défaillance. Vous devez configurer une destination en cas de panne à l'aide d'ESM pour gérer les enregistrements qui dépassent les limites de traitement de Lambda. Chaque événement envoyé à la destination en cas d'échec est un document JSON contenant les métadonnées relatives à l'échec de l'invocation.

Il est recommandé de créer une destination en cas de défaillance dans l'ESM, quelle que soit la taille de l'enregistrement. Cela garantit qu'aucun enregistrement n'est supprimé. Pour plus d'informations, voir Configuration des destinations en cas d'échec des appels.

Amazon Redshift

Amazon Redshift prend uniquement en charge les tailles d'enregistrement inférieures à 1 MiB lors du streaming de données depuis Kinesis Data Streams. Les enregistrements qui dépassent cette limite ne sont pas traités. Les enregistrements qui ne sont pas traités sont enregistrés sous le nom desys_stream_scan_errors. Pour plus d'informations, consultez SYS_STREAM_SCAN_ERRORS.

Connecteur Flink pour Kinesis Data Streams

Il existe deux approches pour consommer les données issues de Kinesis Data Streams : le connecteur source Kinesis et le connecteur Kinesis Sink. Le connecteur source prend en charge le traitement des enregistrements inférieurs à 1 MiB et jusqu'à 10. MiBs N'utilisez pas le connecteur récepteur pour les enregistrements supérieurs à 1 MiB. Pour plus d'informations, consultez Utiliser des connecteurs pour déplacer des données dans Amazon Managed Service pour Apache Flink avec l' DataStreamAPI.

Régions où les enregistrements volumineux sont pris en charge

Cette fonctionnalité Amazon Kinesis Data Streams n'est disponible que dans les régions AWS suivantes :

AWS Région Nom de la région

eu-north-1

Europe (Stockholm)

me-south-1

Middle East (Bahrain)

ap-south-1

Asie-Pacifique (Mumbai)

eu-west-3

Europe (Paris)

ap-southeast-3

Asie-Pacifique (Jakarta)

us-east-2

USA Est (Ohio)

af-south-1

Afrique (Le Cap)

eu-west-1

Europe (Irlande)

me-central-1

Moyen-Orient (EAU)

eu-central-1

Europe (Francfort)

sa-east-1

Amérique du Sud (São Paulo)

ap-east-1

Asie-Pacifique (Hong Kong)

ap-south-2

Asie-Pacifique (Hyderabad)

us-east-1

USA Est (Virginie du Nord)

ap-northeast-2

Asie-Pacifique (Séoul)

ap-northeast-3

Asie-Pacifique (Osaka)

eu-west-2

Europe (Londres)

ap-southeast-4

Asie-Pacifique (Melbourne)

ap-northeast-1

Asie-Pacifique (Tokyo)

us-west-2

USA Ouest (Oregon)

us-west-1

USA Ouest (Californie du Nord)

ap-southeast-1

Asie-Pacifique (Singapour)

ap-southeast-2

Asie-Pacifique (Sydney)

il-central-1

Israël (Tel Aviv)

ca-central-1

Canada (Centre)

ca-west-1

Canada-Ouest (Calgary)

eu-south-2

Europe (Espagne)

cn-northwest-1

Chine (Ningxia)

eu-central-2

Europe (Zurich)

us-gov-east-1

AWS GovCloud (USA Est)

us-gov-west-1

AWS GovCloud (US-Ouest)