2013-07-17 5 views
5

Quindi la mia limitata capire di Redshift questo è il mio piano per andare circa il mio problema ...Come utilizzare l'output della query RedShift come input di un processo EMR?

voglio prendere i risultati di una query, e li usa come un ingresso per un lavoro di EMR. Qual è il modo migliore per andare su questo programmaticamente.

Attualmente il mio processo EMR prende un file flat da S3 come input e io uso l'SDK Amazon Java per impostare questo processo e tutto.

Devo scrivere l'output della mia query RedShift su S3 e puntare il mio processo EMR lì e quindi rimuovere il file dopo che il processo EMR è stato completato?

Oppure il RedShift e AWS SKD offrono un modo più ingegnoso per convogliare direttamente la query da RedShift a EMR, eliminando il passo S3?

Grazie

ha recentemente parlato con memebers di Amazon Redshift squadra, hanno detto una soluzione per questo è in preparazione.

risposta

4

Questo è abbastanza semplice, non c'è bisogno di Sqoop. Aggiungere un passo Cascading Lingual nella parte anteriore del vostro lavoro, che esegue un comando Redshift UNLOAD a S3:

UNLOAD ('select_statement') 
TO 's3://object_path_prefix' 
[ WITH ] CREDENTIALS [AS] 'aws_access_credentials' 
[ option [ ... ] ] 

allora si può elaborare l'esportazione direttamente sul S3, o aggiungere un S3DistCp passo per portare i dati su HDFS prima.

Questo sarà molto più performante dell'aggiunta di Sqoop e molto più semplice da mantenere.

Problemi correlati