Chargement de données de DynamoDB dans Amazon Redshift - Amazon DynamoDB

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.

Chargement de données de DynamoDB dans Amazon Redshift

Amazon Redshift complète Amazon DynamoDB grâce à des capacités de business intelligence avancées et une interface SQL puissante. Lorsque vous copiez les données d'une table DynamoDB vers Amazon Redshift, vous pouvez exécuter des requêtes d'analyse de données complexes sur ces données, ainsi que des jointures avec d'autres tables de votre cluster Amazon Redshift.

En termes de débit approvisionné, une opération de copie d'une table DynamoDB est comptabilisée par rapport à la capacité de lecture de la table. Une fois les données copiées, vos requêtes SQL dans Amazon Redshift n'affectent en rien DynamoDB. Cela est dû au fait que vos requêtes agissent sur une copie des données de DynamoDB, plutôt que sur DynamoDB lui-même.

Avant de pouvoir charger les données d'une table DynamoDB, vous devez créer une table Amazon Redshift pour faire office de destination pour les données. Gardez à l'esprit que vous copiez les données d'un environnement NoSQL vers un environnement SQL, et qu'il existe certaines règles dans un environnement qui ne s'appliquent pas dans l'autre. Voici quelques exemples de différences à prendre en compte :

  • Les noms de table DynamoDB peuvent contenir jusqu'à 255 caractères, y compris « . » (point) et '-' (tiret), et sont sensibles à la casse. Les noms de table Amazon Redshift sont limités à 127 caractères, ne peuvent pas contenir de points ou de tirets, et ne sont pas sensibles à la casse. En outre, les noms de table ne peuvent pas entrer en conflit avec les mots réservés Amazon Redshift.

  • DynamoDB ne prend pas en charge le concept SQL de NULL. Vous devez spécifier la manière dont Amazon Redshift interprète les valeurs d'attribut vides dans DynamoDB, en les traitant comme des champs de valeur NULL ou vides.

  • Les types de données DynamoDB ne correspondent pas directement à ceux d'Amazon Redshift. Vous devez vous assurer que chaque colonne de la table Amazon Redshift a le type de données et la taille appropriés pour contenir les données de DynamoDB.

Voici un exemple de commande COPY d'Amazon Redshift SQL :

copy favoritemovies from 'dynamodb://my-favorite-movies-table' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' readratio 50;

Dans cet exemple, la table source dans DynamoDB est my-favorite-movies-table. La table cible dans Amazon Redshift est favoritemovies. La clause readratio 50 règle le pourcentage de débit provisionné qui est consommé ; dans ce cas, la commande COPY n'utilise pas plus de 50 % des unités de capacité en lecture provisionnées pour my-favorite-movies-table. Nous vous recommandons hautement de définir ce ratio avec une valeur inférieure au débit moyen alloué non utilisé.

Pour obtenir des instructions détaillées sur le chargement de données de DynamoDB dans Amazon Redshift, consultez les sections suivantes dans le Manuel du développeur de bases de données Amazon Redshift :