Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memuat data dari Amazon EMR
Anda dapat menggunakan COPY perintah untuk memuat data secara paralel dari EMR klaster Amazon yang dikonfigurasi untuk menulis file teks ke Hadoop Distributed File System (HDFS) cluster sebagai file dengan lebar tetap, file yang dibatasi karakter, file, atau file yang diformat. CSV JSON
Proses untuk memuat data dari Amazon EMR
Bagian ini memandu Anda melalui proses pemuatan data dari EMR cluster Amazon. Bagian berikut memberikan rincian yang harus Anda capai setiap langkah.
-
Langkah 1: Konfigurasikan IAM izin
Pengguna yang membuat EMR cluster Amazon dan menjalankan COPY perintah Amazon Redshift harus memiliki izin yang diperlukan.
-
Langkah 2: Buat EMR cluster Amazon
Konfigurasikan cluster untuk mengeluarkan file teks ke Hadoop Distributed File System ()HDFS. Anda akan memerlukan ID EMR klaster Amazon dan publik utama klaster DNS (titik akhir untuk EC2 instans Amazon yang menghosting cluster).
-
Langkah 3: Ambil kunci publik klaster Amazon Redshift dan alamat IP node cluster
Kunci publik memungkinkan node cluster Amazon Redshift untuk membuat SSH koneksi ke host. Anda akan menggunakan alamat IP untuk setiap node cluster untuk mengonfigurasi grup keamanan host untuk mengizinkan akses dari cluster Amazon Redshift Anda menggunakan alamat IP ini.
-
Langkah 4: Tambahkan kunci publik klaster Amazon Redshift ke setiap file kunci resmi EC2 host Amazon
Anda menambahkan kunci publik klaster Amazon Redshift ke file kunci resmi host sehingga host akan mengenali cluster Amazon Redshift dan menerima koneksi. SSH
-
Langkah 5: Konfigurasikan host untuk menerima semua alamat IP cluster Amazon Redshift
Ubah grup keamanan EMR instans Amazon untuk menambahkan aturan input guna menerima alamat IP Amazon Redshift.
-
Langkah 6: Jalankan COPY perintah untuk memuat data
Dari database Amazon Redshift, jalankan COPY perintah untuk memuat data ke dalam tabel Amazon Redshift.
Langkah 1: Konfigurasikan IAM izin
Pengguna yang membuat EMR cluster Amazon dan menjalankan COPY perintah Amazon Redshift harus memiliki izin yang diperlukan.
Untuk mengkonfigurasi IAM izin
-
Tambahkan izin berikut untuk pengguna yang akan membuat EMR cluster Amazon.
ec2:DescribeSecurityGroups ec2:RevokeSecurityGroupIngress ec2:AuthorizeSecurityGroupIngress redshift:DescribeClusters
-
Tambahkan izin berikut untuk IAM peran atau pengguna yang akan menjalankan COPY perintah.
elasticmapreduce:ListInstances
-
Tambahkan izin berikut ke IAM peran EMR klaster Amazon.
redshift:DescribeClusters
Langkah 2: Buat EMR cluster Amazon
COPYPerintah memuat data dari file di Amazon EMR Hadoop Distributed File System ()HDFS. Saat Anda membuat EMR klaster Amazon, konfigurasikan cluster untuk mengeluarkan file data ke clusterHDFS.
Untuk membuat EMR cluster Amazon
-
Buat EMR klaster Amazon di AWS Wilayah yang sama dengan cluster Amazon Redshift.
Jika cluster Amazon Redshift berada di aVPC, EMR cluster Amazon harus berada dalam grup yang samaVPC. Jika cluster Amazon Redshift menggunakan mode EC2 -Classic (yaitu, tidak dalam aVPC), EMR cluster Amazon juga harus menggunakan EC2 mode -Classic. Untuk informasi selengkapnya, lihat Mengelola Cluster di Virtual Private Cloud (VPC) di Panduan Manajemen Amazon Redshift.
-
Konfigurasikan cluster untuk mengeluarkan file data ke clusterHDFS. Nama HDFS file tidak boleh menyertakan tanda bintang (*) atau tanda tanya (?).
penting
Nama file tidak boleh menyertakan tanda bintang (*) atau tanda tanya (? ).
-
Tentukan Tidak untuk opsi Auto-terminate dalam konfigurasi EMR klaster Amazon sehingga cluster tetap tersedia saat COPY perintah berjalan.
penting
Jika salah satu file data diubah atau dihapus sebelum COPY selesai, Anda mungkin memiliki hasil yang tidak terduga, atau COPY operasi mungkin gagal.
-
Perhatikan ID cluster dan public utama DNS (titik akhir untuk EC2 instans Amazon yang menghosting cluster). Anda akan menggunakan informasi itu di langkah selanjutnya.
Langkah 3: Ambil kunci publik klaster Amazon Redshift dan alamat IP node cluster
Anda akan menggunakan alamat IP untuk setiap node cluster untuk mengonfigurasi grup keamanan host untuk mengizinkan akses dari cluster Amazon Redshift Anda menggunakan alamat IP ini.
Untuk mengambil kunci publik klaster Amazon Redshift dan alamat IP node cluster untuk klaster Anda menggunakan konsol
-
Akses Konsol Manajemen Amazon Redshift.
-
Pilih tautan Clusters di panel navigasi.
-
Pilih klaster Anda dari daftar.
-
Temukan grup Pengaturan SSH Tertelan.
Perhatikan alamat IP Cluster Public Key dan Node. Anda akan menggunakannya di langkah selanjutnya.
Anda akan menggunakan alamat IP pribadi di Langkah 3 untuk mengonfigurasi EC2 host Amazon untuk menerima koneksi dari Amazon Redshift.
Untuk mengambil kunci publik klaster dan alamat IP node cluster untuk klaster Anda menggunakan Amazon CLI Redshift, jalankan perintah deskripsikan klaster. Sebagai contoh:
aws redshift describe-clusters --cluster-identifier <cluster-identifier>
Respons akan mencakup ClusterPublicKey nilai dan daftar alamat IP pribadi dan publik, mirip dengan yang berikut ini:
{ "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", ... ... }
Untuk mengambil kunci publik klaster dan alamat IP node cluster untuk klaster Anda menggunakan Amazon API Redshift, gunakan DescribeClusters
tindakan. Untuk informasi selengkapnya, lihat deskripsikan klaster di Panduan Amazon Redshift atau CLIdi Panduan Amazon Redshift. DescribeClustersAPI
Langkah 4: Tambahkan kunci publik klaster Amazon Redshift ke setiap file kunci resmi EC2 host Amazon
Anda menambahkan kunci publik klaster ke file kunci resmi masing-masing host untuk semua node EMR cluster Amazon sehingga host akan mengenali Amazon Redshift dan menerima koneksi. SSH
Untuk menambahkan kunci publik klaster Amazon Redshift ke file kunci resmi host
-
Akses host menggunakan SSH koneksi.
Untuk informasi tentang menghubungkan ke instans yang menggunakanSSH, lihat Connect to Your Instance di Panduan EC2 Pengguna Amazon.
-
Salin kunci publik Amazon Redshift dari konsol atau dari teks CLI respons.
-
Salin dan tempel isi kunci publik ke dalam
/home/<ssh_username>/.ssh/authorized_keys
file di host. Sertakan string lengkap, termasuk awalan "ssh-rsa
" dan akhiran "”Amazon-Redshift
. Sebagai contoh:ssh-rsa AAAACTP3isxgGzVWoIWpbVvRCOzYdVifMrh… uA70BnMHCaMiRdmvsDOedZDOedZ Amazon-Redshift
Langkah 5: Konfigurasikan host untuk menerima semua alamat IP cluster Amazon Redshift
Untuk mengizinkan lalu lintas masuk ke instans host, edit grup keamanan dan tambahkan satu aturan Inbound untuk setiap node cluster Amazon Redshift. Untuk Type, pilih SSH dengan TCP protokol pada Port 22. Untuk Sumber, masukkan alamat IP pribadi node cluster Amazon Redshift yang Anda ambil. Langkah 3: Ambil kunci publik klaster Amazon Redshift dan alamat IP node cluster Untuk informasi tentang menambahkan aturan ke grup EC2 keamanan Amazon, lihat Mengotorisasi Lalu Lintas Masuk untuk Instans Anda di Panduan Pengguna Amazon EC2.
Langkah 6: Jalankan COPY perintah untuk memuat data
Jalankan COPY perintah untuk menyambung ke EMR cluster Amazon dan memuat data ke dalam tabel Amazon Redshift. EMRCluster Amazon harus terus berjalan hingga COPY perintah selesai. Misalnya, jangan mengkonfigurasi cluster untuk mengakhiri otomatis.
penting
Jika salah satu file data diubah atau dihapus sebelum COPY selesai, Anda mungkin memiliki hasil yang tidak terduga, atau COPY operasi mungkin gagal.
Dalam COPY perintah, tentukan ID EMR cluster Amazon dan jalur HDFS file dan nama file.
COPY sales FROM 'emr://myemrclusterid/myoutput/part*' CREDENTIALS IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Anda dapat menggunakan karakter wildcard asterisk (*
) dan tanda tanya (?
) sebagai bagian dari argumen nama file. Misalnya, part*
memuat filepart-0000
,part-0001
, dan sebagainya. Jika Anda hanya menentukan nama folder, COPY mencoba memuat semua file di folder.
penting
Jika Anda menggunakan karakter wildcard atau hanya menggunakan nama folder, verifikasi bahwa tidak ada file yang tidak diinginkan yang akan dimuat atau COPY perintah akan gagal. Misalnya, beberapa proses mungkin menulis file log ke folder output.