Chargement de données à partir d’une table Amazon DynamoDB - Amazon Redshift

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 à partir d’une table Amazon DynamoDB

Vous pouvez utiliser la COPY commande pour charger une table contenant les données d'une seule table Amazon DynamoDB.

Important

La table Amazon DynamoDB qui fournit les données doit être créée dans la même AWS Région en tant que cluster, sauf si vous utilisez l'REGIONoption permettant de spécifier AWS Région dans laquelle se trouve la table Amazon DynamoDB.

La COPY commande utilise l'architecture Amazon Redshift massively parallel processing MPP () pour lire et charger des données en parallèle à partir d'une table Amazon DynamoDB. Vous pouvez profiter au maximum du traitement parallèle en définissant les styles de distribution de vos tables Amazon Redshift. Pour de plus amples informations, veuillez consulter Utilisation des styles de distribution de données.

Important

Lorsque la COPY commande lit les données de la table Amazon DynamoDB, le transfert de données qui en résulte fait partie du débit provisionné de cette table.

Pour éviter de consommer des quantités excessives de débit alloué en lecture, nous vous recommandons de ne pas charger les données à partir des tables Amazon DynamoDB qui se trouvent dans des environnements de production. Si vous chargez des données à partir de tables de production, nous vous recommandons de définir l'READRATIOoption bien en dessous du pourcentage moyen de débit provisionné inutilisé. Un READRATIO réglage faible permettra de minimiser les problèmes d'étranglement. Pour utiliser la totalité du débit provisionné d'une table Amazon DynamoDB, définissez-le sur 100. READRATIO

La COPY commande fait correspondre les noms d'attributs des éléments extraits de la table DynamoDB aux noms de colonnes d'une table Amazon Redshift existante en utilisant les règles suivantes :

  • Les colonnes de la table Amazon Redshift sont mises en correspondance sans sensibilité à la casse avec les attributs d’élément Amazon DynamoDB. Si un élément de la table DynamoDB contient plusieurs attributs qui ne diffèrent qu'au cas où, tels que Price PRICE et, COPY la commande échouera.

  • Les colonnes de table Amazon Redshift qui ne correspondent à aucun attribut de la table Amazon DynamoDB sont chargées NULL soit comme telles, soit vides, en fonction de la valeur spécifiée avec EMPTYASNULL l'option dans la commande. COPY

  • Les attributs Amazon DynamoDB qui ne correspondent pas à une colonne de la table Amazon Redshift sont ignorés. Les attributs sont lus avant d’être mis en correspondance, et à fortiori les attributs ignorés consomment une partie du débit alloué de la table.

  • Seuls les attributs Amazon DynamoDB avec des types STRING scalaires NUMBER et de données sont pris en charge. Amazon BINARY DynamoDB SET et les types de données ne sont pas pris en charge. Si une COPY commande tente de charger un attribut dont le type de données n'est pas pris en charge, elle échouera. Si l'attribut ne correspond pas à une colonne de table Amazon Redshift, il COPY ne tente pas de le charger et cela ne génère aucune erreur.

La COPY commande utilise la syntaxe suivante pour charger des données depuis une table Amazon DynamoDB :

COPY <redshift_tablename> FROM 'dynamodb://<dynamodb_table_name>' authorization readratio '<integer>';

Les valeurs d'autorisation sont AWS informations d'identification nécessaires pour accéder à la table Amazon DynamoDB. Si ces informations d'identification correspondent à un utilisateur, celui-ci doit être autorisé à accéder à SCAN DESCRIBE la table Amazon DynamoDB en cours de chargement.

Les valeurs d'autorisation fournissent AWS autorisation dont votre cluster a besoin pour accéder à la table Amazon DynamoDB. L'autorisation doit inclure SCAN et DESCRIBE pour la table Amazon DynamoDB en cours de chargement. Pour plus d’informations sur les autorisations requises, consultez IAMautorisations pour COPYUNLOAD, et CREATE LIBRARY. La méthode d'authentification préférée consiste à spécifier le ROLE paramètre IAM _ et à fournir le nom de ressource Amazon (ARN) pour un IAM rôle disposant des autorisations nécessaires. Pour de plus amples informations, veuillez consulter Contrôle d’accès basé sur les rôles.

Pour vous authentifier à l'aide du ROLE paramètre IAM _, <aws-account-id> and <role-name> comme indiqué dans la syntaxe suivante.

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

L'exemple suivant montre l'authentification à l'aide d'un IAM rôle.

COPY favoritemovies FROM 'dynamodb://ProductCatalog' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Pour plus d’informations sur d’autres options d’autorisation, consultez Paramètres d’autorisation

Si vous souhaitez valider vos données sans charger réellement le tableau, utilisez l'NOLOADoption associée à la COPY commande.

L'exemple suivant charge la FAVORITEMOVIES table avec les données de la table DynamoDB my-favorite-movies-table. L’activité de lecture peut consommer jusqu’à 50 % du débit alloué.

COPY favoritemovies FROM 'dynamodb://my-favorite-movies-table' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' READRATIO 50;

Pour optimiser le débit, la COPY commande charge les données d'une table Amazon DynamoDB en parallèle sur les nœuds de calcul du cluster.

Débit alloué avec compression automatique

Par défaut, la COPY commande applique une compression automatique chaque fois que vous spécifiez une table cible vide sans codage de compression. La compression automatique analyse initialement un grand nombre de lignes de la table Amazon DynamoDB. La taille de l'échantillon est basée sur la valeur du COMPROWS paramètre. La valeur par défaut est de 100 000 lignes par tranche.

Après le prélèvement, les lignes de l’exemple sont ignorées et la totalité de la table est chargée. Par conséquent, la plupart des lignes sont lues deux fois. Pour plus d’informations sur le fonctionnement de la compression, consultez Chargement des tables avec compression automatique.

Important

Lorsque la COPY commande lit les données de la table Amazon DynamoDB, y compris les lignes utilisées pour l'échantillonnage, le transfert de données qui en résulte fait partie du débit provisionné de cette table.

Chargement de données multioctets à partir d’Amazon DynamoDB

Si vos données contiennent des caractères non ASCII multioctets (tels que des caractères chinois ou cyrilliques), vous devez les charger dans des colonnes. VARCHAR Le type de VARCHAR données prend en charge les caractères à UTF 8 octets sur quatre octets, mais il n'accepte que les CHAR caractères à ASCII un octet. Vous ne pouvez pas charger de caractères codés sur cinq octets ou plus dans des tables Amazon Redshift. Pour plus d'informations sur CHAR etVARCHAR, voirTypes de données.