Caricamento di dati da Amazon EMR - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Caricamento di dati da Amazon EMR

Puoi utilizzare il COPY comando per caricare dati in parallelo da un EMR cluster Amazon configurato per scrivere file di testo nell'Hadoop Distributed File System (HDFS) del cluster come file a larghezza fissa, file delimitati da caratteri, file o file formattati. CSV JSON

Procedura per il caricamento dei dati da Amazon EMR

Questa sezione illustra il processo di caricamento dei dati da un EMR cluster Amazon. Le sezioni seguenti forniscono le informazioni dettagliate necessarie per completare ogni fase.

Passaggio 1: configurare le autorizzazioni IAM

Gli utenti che creano il EMR cluster Amazon ed eseguono il COPY comando Amazon Redshift devono disporre delle autorizzazioni necessarie.

Per configurare le autorizzazioni IAM
  1. Aggiungi le seguenti autorizzazioni per l'utente che creerà il EMR cluster Amazon.

    ec2:DescribeSecurityGroups ec2:RevokeSecurityGroupIngress ec2:AuthorizeSecurityGroupIngress redshift:DescribeClusters
  2. Aggiungi la seguente autorizzazione per il IAM ruolo o l'utente che eseguirà il COPY comando.

    elasticmapreduce:ListInstances
  3. Aggiungi la seguente autorizzazione al IAM ruolo del EMR cluster Amazon.

    redshift:DescribeClusters

Fase 2: Creare un EMR cluster Amazon

Il COPY comando carica i dati dai file su Amazon EMR Hadoop Distributed File System ()HDFS. Quando crei il EMR cluster Amazon, configura il cluster per inviare file di dati al clusterHDFS.

Per creare un EMR cluster Amazon
  1. Crea un EMR cluster Amazon nella stessa AWS regione del cluster Amazon Redshift.

    Se il cluster Amazon Redshift si trova in unVPC, il EMR cluster Amazon deve appartenere allo stesso VPC gruppo. Se il cluster Amazon Redshift utilizza la modalità EC2 -Classic (ovvero non si trova in unaVPC), il EMR cluster Amazon deve utilizzare EC2 anche la modalità -Classic. Per ulteriori informazioni, consulta Managing Clusters in Virtual Private Cloud (VPC) nella Amazon Redshift Management Guide.

  2. Configura il cluster per inviare file di dati al cluster. HDFS I nomi dei HDFS file non devono includere asterischi (*) o punti interrogativi (?).

    Importante

    I nomi dei file non devono contenere asterischi (*) o punti interrogativi (?).

  3. Specificare No per l'opzione Auto-terminate nella configurazione del EMR cluster Amazon in modo che il cluster rimanga disponibile durante l'esecuzione del COPY comando.

    Importante

    Se uno qualsiasi dei file di dati viene modificato o eliminato prima del COPY completamento, è possibile che si ottengano risultati imprevisti o che l'COPYoperazione non riesca.

  4. Annota l'ID del cluster e il pubblico principale DNS (l'endpoint per l'EC2istanza Amazon che ospita il cluster). Queste informazioni saranno utili per le fasi successive.

Fase 3: Recupero degli indirizzi IP dei nodi del cluster e della chiave pubblica del cluster Amazon Redshift

Sarà utilizzato l'indirizzo IP per ciascun nodo del cluster per configurare i gruppi di sicurezza dell'host in modo da consentire l'accesso dal cluster Amazon Redshift utilizzando questi indirizzi IP.

Come recuperare la chiave pubblica del cluster Amazon Redshift e gli indirizzi IP dei nodi del cluster tramite la console
  1. Accedere alla console di gestione di Amazon Redshift.

  2. Nel riquadro di navigazione scegli Clusters (Cluster).

  3. Selezionare il cluster dall'elenco.

  4. Individua il gruppo SSHIngestion Settings.

    Prendere nota dei valori di Cluster Public Key (Chiave pubblica del cluster) e Node IP addresses (Indirizzi IP del nodo). Queste informazioni saranno utili per le fasi successive.

    Schermata del gruppo SSH Ingestion Settings che mostra gli indirizzi IP della chiave pubblica del cluster e del nodo.

    Utilizzerai gli indirizzi IP privati nella fase 3 per configurare l'EC2host Amazon in modo che accetti la connessione da Amazon Redshift.

Per recuperare la chiave pubblica del cluster e gli indirizzi IP del nodo del cluster per il cluster utilizzando Amazon CLI Redshift, esegui il comando describe-clusters. Per esempio:

aws redshift describe-clusters --cluster-identifier <cluster-identifier>

La risposta includerà un ClusterPublicKey valore e l'elenco di indirizzi IP privati e pubblici, simili al seguente:

{ "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", ... ... }

Per recuperare la chiave pubblica del cluster e gli indirizzi IP del nodo del cluster per il cluster utilizzando Amazon API Redshift, utilizza l'DescribeClustersazione. Per ulteriori informazioni, consulta describe-clusters nella Amazon Redshift Guide o CLInella Amazon Redshift Guide. DescribeClustersAPI

Fase 4: aggiungi la chiave pubblica del cluster Amazon Redshift al file di chiavi autorizzate di EC2 ogni host Amazon

Aggiungi la chiave pubblica del cluster al file di chiavi autorizzate di ciascun host per tutti i nodi del EMR cluster Amazon in modo che gli host riconoscano Amazon Redshift e accettino la SSH connessione.

Come aggiungere la chiave pubblica del cluster Amazon Redshift al file di chiavi autorizzate di ciascun host
  1. Accedi all'host utilizzando una SSH connessione.

    Per informazioni sulla connessione a un'istanza utilizzandoSSH, consulta Connect to Your Instance nella Amazon EC2 User Guide.

  2. Copia la chiave pubblica di Amazon Redshift dalla console o dal testo della CLI risposta.

  3. Copiare e incollare i contenuti della chiave pubblica nel file /home/<ssh_username>/.ssh/authorized_keys nell'host. Includere la stringa completa, compreso il prefisso "ssh-rsa " e il suffisso "Amazon-Redshift". Ad esempio:

    ssh-rsa AAAACTP3isxgGzVWoIWpbVvRCOzYdVifMrh… uA70BnMHCaMiRdmvsDOedZDOedZ Amazon-Redshift

Fase 5: Configurazione degli host affinché accettino tutti gli indirizzi IP del cluster Amazon Redshift

Per consentire il traffico in entrata verso le istanze dell'host, modificare il gruppo di sicurezza e aggiungere una regola in entrata per ciascun nodo del cluster Amazon Redshift. Per Tipo, seleziona SSH con TCP protocollo sulla porta 22. In Source (Origine), inserisci gli indirizzi IP privati dei nodi cluster di Amazon Redshift recuperati in Fase 3: Recupero degli indirizzi IP dei nodi del cluster e della chiave pubblica del cluster Amazon Redshift. Per informazioni sull'aggiunta di regole a un gruppo di EC2 sicurezza Amazon, consulta Authorizing Inbound Traffic for Your Instances nella Amazon EC2 User Guide.

Passaggio 6: esegui il COPY comando per caricare i dati

Esegui un COPY comando per connetterti al EMR cluster Amazon e carica i dati in una tabella Amazon Redshift. Il EMR cluster Amazon deve continuare a funzionare fino al completamento del COPY comando. Ad esempio, non configurare la terminazione automatica del cluster.

Importante

Se uno qualsiasi dei file di dati viene modificato o eliminato prima del COPY completamento, è possibile che si ottengano risultati imprevisti o che l'COPYoperazione non riesca.

Nel COPY comando, specifica l'ID del EMR cluster Amazon, il HDFS percorso e il nome del file.

COPY sales FROM 'emr://myemrclusterid/myoutput/part*' CREDENTIALS IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

È possibile utilizzare i caratteri jolly asterisco (*) e punto interrogativo (?) come parte dell'argomento del nome file. Ad esempio, part* carica i file part-0000, part-0001 e così via. Se specifichi solo il nome di una cartella, COPY tenta di caricare tutti i file nella cartella.

Importante

Se utilizzate caratteri jolly o utilizzate solo il nome della cartella, verificate che non vengano caricati file indesiderati o il COPY comando avrà esito negativo. Ad esempio, alcuni processi potrebbero scrivere un file di log nella cartella di output.