Exportation, importation, interrogation et jointure de tables dans DynamoDB à l'aide d'Amazon EMR - Amazon EMR

Exportation, importation, interrogation et jointure de tables dans DynamoDB à l'aide d'Amazon EMR

Note

Le connecteur Amazon EMR-DynamoDB est open source sur GitHub. Pour plus d'informations, consultez https://github.com/awslabs/emr-dynamodb-connector.

DynamoDB est un service de base de données NoSQL entièrement géré offrant des performances rapides et prévisibles avec une scalabilité simple. Les développeurs peuvent créer une table de base de données et développer sans limite son trafic de demandes ou son stockage. DynamoDB répartit automatiquement les données et le trafic de la table sur un nombre de serveurs approprié afin de gérer le volume de requêtes spécifié par le client et la quantité de données stockées, tout en assurant la cohérence et la rapidité des performances. Avec Amazon EMR et Hive, vous pouvez traiter rapidement et efficacement de grandes quantités de données, telles que les données stockées dans DynamoDB. Pour plus d'informations sur DynamoDB, consultez le manuel du développeur Amazon DynamoDB.

Apache Hive est une couche logicielle que vous pouvez utiliser pour interroger, mapper ou réduire les clusters à l'aide d'un langage de requête simplifié de type SQL, appelé HiveQL. Il s'exécute sur l'architecture Hadoop. Pour plus d'informations sur Hive et HiveQL, consultez le Manuel du langage HiveQL. Pour plus d'informations sur Hive et Amazon EMR, consultez Apache Hive .

Vous pouvez utiliser Amazon EMR avec une version personnalisée de Hive qui inclut une connectivité à DynamoDB pour effectuer des opérations sur les données stockées dans DynamoDB :

  • Chargement des données DynamoDB dans le système de fichier distribué Hadoop (HDFS) et son utilisation en tant qu'entrée dans un cluster Amazon EMR.

  • Interrogation de données DynamoDB en direct à l'aide d'instructions de type SQL (HiveQL).

  • Jointure de données stockées dans DynamoDB et exportation ou interrogation par rapport aux données jointes.

  • Exportation de données stockées dans DynamoDB vers Amazon S3.

  • Importation de données stockées dans Amazon S3 vers DynamoDB.

Note

Le connecteur Amazon EMR-DynamoDB ne prend pas en charge les clusters configurées pour utiliser l'authentification Kerberos.

Pour exécuter chacune des tâches suivantes, vous allez lancer un cluster Amazon EMR, spécifier l'emplacement des données dans DynamoDB et émettre des commandes Hive pour manipuler les données dans DynamoDB.

Il existe plusieurs façons de lancer un cluster Amazon EMR : vous pouvez utiliser la console Amazon EMR ou l'interface de ligne de commande, ou vous pouvez programmer votre cluster à l'aide d'un kit SDK AWS ou de l'API Amazon EMR. Vous pouvez également choisir d'exécuter un cluster Hive de façon interactive ou à partir d'un script. Dans cette section, nous allons vous montrer comment lancer un cluster Hive interactif à partir de la console et de l'interface de ligne de commande Amazon EMR.

L'utilisation interactive de Hive est un excellent moyen de tester les performances des requêtes et de régler votre application. Une fois que vous avez défini un ensemble de commandes Hive qui s'exécuteront régulièrement, envisagez de créer un script Hive qu'Amazon EMR peut exécuter automatiquement.

Avertissement

Les opérations Amazon EMR de lecture et d'écriture sur une table DynamoDB desservent votre débit réservé établi, en augmentant potentiellement la fréquence des exceptions de débit réservé. Pour les demandes importantes, Amazon EMR implémente de nouvelles tentatives avec un backoff exponentiel pour gérer la charge des demandes sur la table DynamoDB. L'exécution simultanée de travaux Amazon EMR avec le reste du trafic peut entraîner un dépassement du niveau de débit réservé alloué. Vous pouvez surveiller cet aspect en vérifiant la métrique ThrottleRequests dans Amazon CloudWatch. Si la charge de la demande est trop élevée, vous pouvez relancer le cluster et diminuer la valeur Paramètre de pourcentage de lecture ou Paramètre de pourcentage d'écriture afin de limiter les opérations Amazon EMR. Pour de plus amples informations sur les paramètres de débit DynamoDB, veuillez consulter Débit alloué.

Si une table est configurée pour le mode à la demande, vous devez la remettre en mode provisionné avant d'exécuter une opération d'exportation ou d'importation. Les pipelines ont besoin d'un ratio de débit pour calculer les ressources à utiliser à partir d'une DynamoDBTable. Le mode à la demande supprime le débit provisionné. Pour provisionner la capacité de débit, vous pouvez utiliser les métriques Amazon CloudWatch Events pour évaluer le débit agrégé utilisé par une table.