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 depuis Amazon EMR
Vous pouvez utiliser cette COPY commande pour charger des données en parallèle à partir d'un EMR cluster Amazon configuré pour écrire des fichiers texte dans le système de fichiers distribué Hadoop (HDFS) du cluster sous forme de fichiers à largeur fixe, de fichiers séparés par des caractères, de fichiers ou de fichiers formatés. CSV JSON
Processus de chargement des données depuis Amazon EMR
Cette section explique le processus de chargement des données depuis un EMR cluster Amazon. Les sections suivantes fournissent les informations détaillées dont vous avez besoin pour effectuer chaque étape.
-
Étape 1 : configurer les IAM autorisations
Les utilisateurs qui créent le EMR cluster Amazon et exécutent la COPY commande Amazon Redshift doivent disposer des autorisations nécessaires.
-
Étape 2 : créer un EMR cluster Amazon
Configurez le cluster pour générer des fichiers texte vers le système de fichiers distribué Hadoop ()HDFS. Vous aurez besoin de l'identifiant du EMR cluster Amazon et du public principal du cluster DNS (le point de terminaison de l'EC2instance Amazon qui héberge le cluster).
-
Étape 3 : Récupérer la clé publique de cluster Amazon Redshift et les adresses IP de nœud de cluster
La clé publique permet aux nœuds du cluster Amazon Redshift d'établir des SSH connexions avec les hôtes. Vous allez utiliser l’adresse IP de chaque nœud de cluster pour configurer les groupes de sécurité hôte et permettre l’accès à partir de votre cluster Amazon Redshift à l’aide de ces adresses IP.
-
Vous ajoutez la clé publique du cluster Amazon Redshift au fichier de clés autorisées de l'hôte afin que celui-ci reconnaisse le cluster Amazon Redshift et accepte la connexion. SSH
-
Étape 5 : Configurer les hôtes pour accepter toutes les adresses IP du cluster Amazon Redshift
Modifiez les groupes de sécurité de l'EMRinstance Amazon pour ajouter des règles de saisie afin d'accepter les adresses IP Amazon Redshift.
-
Étape 6 : Exécutez la COPY commande pour charger les données
À partir d'une base de données Amazon Redshift, exécutez la COPY commande pour charger les données dans une table Amazon Redshift.
Étape 1 : configurer les IAM autorisations
Les utilisateurs qui créent le EMR cluster Amazon et exécutent la COPY commande Amazon Redshift doivent disposer des autorisations nécessaires.
Pour configurer les IAM autorisations
-
Ajoutez les autorisations suivantes pour l'utilisateur qui créera le EMR cluster Amazon.
ec2:DescribeSecurityGroups ec2:RevokeSecurityGroupIngress ec2:AuthorizeSecurityGroupIngress redshift:DescribeClusters
-
Ajoutez l'autorisation suivante pour le IAM rôle ou l'utilisateur qui exécutera la COPY commande.
elasticmapreduce:ListInstances
-
Ajoutez l'autorisation suivante au IAM rôle du EMR cluster Amazon.
redshift:DescribeClusters
Étape 2 : créer un EMR cluster Amazon
La COPY commande charge des données à partir de fichiers sur le système de fichiers distribué Amazon EMR Hadoop ()HDFS. Lorsque vous créez le EMR cluster Amazon, configurez-le pour qu'il envoie des fichiers de données vers celui du clusterHDFS.
Pour créer un EMR cluster Amazon
-
Créez un EMR cluster Amazon dans le même AWS Région en tant que cluster Amazon Redshift.
Si le cluster Amazon Redshift se trouve dans unVPC, le EMR cluster Amazon doit appartenir au même VPC groupe. Si le cluster Amazon Redshift utilise le mode EC2 -Classic (c'est-à-dire qu'il n'est pas en mode aVPC), le EMR cluster Amazon doit également utiliser EC2 le mode -Classic. Pour plus d'informations, consultez la section Gestion des clusters dans un cloud privé virtuel (VPC) dans le guide de gestion Amazon Redshift.
-
Configurez le cluster pour générer des fichiers de données vers celui du clusterHDFS. Les noms de HDFS fichiers ne doivent pas comporter d'astérisques (*) ni de points d'interrogation (?).
Important
Les noms de fichiers ne doivent pas comporter d’astérisque (*) ou de point d’interrogation ( ? ).
-
Spécifiez Non pour l'option de terminaison automatique dans la configuration du EMR cluster Amazon afin que le cluster reste disponible pendant l'exécution de la COPY commande.
Important
Si l'un des fichiers de données est modifié ou supprimé avant la COPY fin, vous risquez d'avoir des résultats inattendus ou l'COPYopération peut échouer.
-
Notez l'ID du cluster et le public principal DNS (le point de terminaison de l'EC2instance Amazon qui héberge le cluster). Vous allez utiliser ces informations dans les étapes ultérieures.
Étape 3 : Récupérer la clé publique de cluster Amazon Redshift et les adresses IP de nœud de cluster
Pour récupérer la clé publique de cluster et les adresses IP de nœud de cluster Amazon Redshift pour votre cluster à l’aide de la console
-
Accédez à la console de gestion Amazon Redshift.
-
Choisissez le lien Clusters dans le volet de navigation.
-
Sélectionnez votre cluster dans la liste.
-
Localisez le groupe de paramètres d'SSHingestion.
Notez la Clé publique du cluster et les Adresses IP du nœud. Vous allez les utiliser dans les étapes ultérieures.
Vous utiliserez les adresses IP privées de l'étape 3 pour configurer l'EC2hôte Amazon afin qu'il accepte la connexion depuis Amazon Redshift.
Pour récupérer la clé publique du cluster et les adresses IP des nœuds de cluster de votre cluster à l'aide d'Amazon RedshiftCLI, exécutez la commande describe-clusters. Par exemple :
aws redshift describe-clusters --cluster-identifier <cluster-identifier>
La réponse inclura une ClusterPublicKey valeur et la liste des adresses IP privées et publiques, similaires à ce qui suit :
{ "Clusters": [ { "VpcSecurityGroups": [], "ClusterStatus": "available", "ClusterNodes": [ { "PrivateIPAddress": "10.nnn.nnn.nnn", "NodeRole": "LEADER", "PublicIPAddress": "10.nnn.nnn.nnn" }, { "PrivateIPAddress": "10.nnn.nnn.nnn", "NodeRole": "COMPUTE-0", "PublicIPAddress": "10.nnn.nnn.nnn" }, { "PrivateIPAddress": "10.nnn.nnn.nnn", "NodeRole": "COMPUTE-1", "PublicIPAddress": "10.nnn.nnn.nnn" } ], "AutomatedSnapshotRetentionPeriod": 1, "PreferredMaintenanceWindow": "wed:05:30-wed:06:00", "AvailabilityZone": "us-east-1a", "NodeType": "dc2.large", "ClusterPublicKey": "ssh-rsa AAAABexamplepublickey...Y3TAl Amazon-Redshift", ... ... }
Pour récupérer la clé publique du cluster et les adresses IP des nœuds de cluster de votre cluster à l'aide d'Amazon RedshiftAPI, utilisez l'DescribeClusters
action. Pour plus d'informations, consultez la section describe-clusters dans le guide Amazon CLI Redshift DescribeClustersou dans le guide Amazon Redshift. API
Étape 4 : ajouter la clé publique du cluster Amazon Redshift au fichier de clés autorisées de EC2 chaque hôte Amazon
Vous ajoutez la clé publique du cluster au fichier de clés autorisées de chaque hôte pour tous les nœuds du EMR cluster Amazon afin que les hôtes reconnaissent Amazon Redshift et acceptent la SSH connexion.
Pour ajouter la clé publique de cluster Amazon Redshift au fichier de clés autorisées de l’hôte
-
Accédez à l'hôte à l'aide d'une SSH connexion.
Pour plus d'informations sur la connexion à une instance en utilisantSSH, consultez Connect to Your Instance dans le guide de EC2 l'utilisateur Amazon.
-
Copiez la clé publique Amazon Redshift depuis la console ou depuis le texte de CLI réponse.
-
Copiez et collez le contenu de la clé publique dans le fichier
/home/<ssh_username>/.ssh/authorized_keys
de l’hôte. Incluez la chaîne complète, y compris le préfixe «ssh-rsa
» et le suffixe «Amazon-Redshift
». Par exemple :ssh-rsa AAAACTP3isxgGzVWoIWpbVvRCOzYdVifMrh… uA70BnMHCaMiRdmvsDOedZDOedZ Amazon-Redshift
Étape 5 : Configurer les hôtes pour accepter toutes les adresses IP du cluster Amazon Redshift
Pour autoriser le trafic entrant des instances de l’hôte, modifiez le groupe de sécurité et ajoutez une règle de trafic entrant pour chacun nœud de cluster Amazon Redshift. Pour Type, sélectionnez SSH avec TCP protocole sur le port 22. Pour Source, saisissez les adresses IP privées du nœud de cluster Amazon Redshift que vous avez récupérées dans Étape 3 : Récupérer la clé publique de cluster Amazon Redshift et les adresses IP de nœud de cluster. Pour plus d'informations sur l'ajout de règles à un groupe EC2 de sécurité Amazon, consultez Autoriser le trafic entrant pour vos instances dans le guide de EC2l'utilisateur Amazon.
Étape 6 : Exécutez la COPY commande pour charger les données
Exécutez une COPY commande pour vous connecter au EMR cluster Amazon et chargez les données dans une table Amazon Redshift. Le EMR cluster Amazon doit continuer à fonctionner jusqu'à ce que la COPY commande soit terminée. Par exemple, ne configurez pas le cluster pour qu’il se termine automatiquement.
Important
Si l'un des fichiers de données est modifié ou supprimé avant la COPY fin, vous risquez d'avoir des résultats inattendus ou l'COPYopération peut échouer.
Dans la COPY commande, spécifiez l'ID du EMR cluster Amazon ainsi que le HDFS chemin et le nom du fichier.
COPY sales FROM 'emr://myemrclusterid/myoutput/part*' CREDENTIALS IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Vous pouvez utiliser l’astérisque comme caractère générique (*
) et le point d’interrogation (?
) dans le cadre de l’argument de nom de fichier. Par exemple, part*
charge les fichiers part-0000
, part-0001
, et ainsi de suite. Si vous spécifiez uniquement un nom de dossier, COPY tente de charger tous les fichiers du dossier.
Important
Si vous utilisez des caractères génériques ou si vous utilisez uniquement le nom du dossier, vérifiez qu'aucun fichier indésirable ne sera chargé ou que la COPY commande échouera. Par exemple, certains processus peuvent écrire un fichier journal sur le dossier de sortie.