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.

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

Il est recommandé de conserver des enregistrements volumineux à moins de 2 % de votre trafic global. Dans un flux, chaque partition a une capacité de débit de 1 MiB par seconde. Pour gérer des enregistrements volumineux, Kinesis Data diffuse des données en rafale jusqu'à 10 MiBs, avec une moyenne de 1 MiB par seconde. Cette capacité à prendre en charge des enregistrements volumineux est continuellement réinjectée dans le flux. Le taux de remplissage dépend de la taille des grands enregistrements et de la taille de l'enregistrement de référence. Pour de meilleurs résultats, utilisez une clé de partition uniformément distribuée. Pour plus d'informations sur l'évolution de Kinesis On-Demand, consultez la section Fonctionnalités et cas d'utilisation du mode à la demande.

Atténuez le ralentissement avec des enregistrements volumineux

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 répartir les enregistrements volumineux sur les partitions disponibles.

  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)