View a markdown version of this page

Memuat data dari Amazon EMR - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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 perintah COPY untuk memuat data secara paralel dari cluster Amazon EMR yang dikonfigurasi untuk menulis file teks ke Hadoop Distributed File System (HDFS) cluster sebagai file dengan lebar tetap, file yang dibatasi karakter, file CSV, atau file. JSON-formatted

Proses untuk memuat data dari Amazon EMR

Bagian ini memandu Anda melalui proses memuat data dari cluster Amazon EMR. Bagian berikut memberikan rincian yang harus Anda selesaikan setiap langkah.

Langkah 1: Konfigurasikan izin IAM

Pengguna yang membuat cluster Amazon EMR dan menjalankan perintah Amazon Redshift COPY harus memiliki izin yang diperlukan.

Untuk mengkonfigurasi izin IAM
  1. Tambahkan izin berikut untuk pengguna yang akan membuat cluster Amazon EMR.

    ec2:DescribeSecurityGroups ec2:RevokeSecurityGroupIngress ec2:AuthorizeSecurityGroupIngress redshift:DescribeClusters
  2. Tambahkan izin berikut untuk peran IAM atau pengguna yang akan menjalankan perintah COPY.

    elasticmapreduce:ListInstances
  3. Tambahkan izin berikut ke peran IAM cluster Amazon EMR.

    redshift:DescribeClusters

Langkah 2: Buat cluster Amazon EMR

Perintah COPY memuat data dari file di Amazon EMR Hadoop Distributed File System (HDFS). Saat Anda membuat cluster Amazon EMR, konfigurasikan cluster untuk menampilkan file data ke HDFS cluster.

Cara membuat cluster Amazon EMR
  1. Buat cluster Amazon EMR di Wilayah yang sama AWS dengan cluster Amazon Redshift.

    Jika cluster Amazon Redshift berada di VPC, cluster Amazon EMR harus berada di grup VPC yang sama. Jika cluster Amazon Redshift menggunakan EC2-Classic mode (yaitu, tidak dalam VPC), cluster Amazon EMR juga harus menggunakan mode. EC2-Classic Untuk informasi selengkapnya, lihat Mengelola Cluster di Virtual Private Cloud (VPC) di Panduan Manajemen Amazon Redshift.

  2. Konfigurasikan cluster untuk menampilkan file data ke HDFS cluster. Nama file HDFS tidak boleh menyertakan tanda bintang (*) atau tanda tanya (?).

    penting

    Nama file tidak boleh menyertakan tanda bintang (*) atau tanda tanya (? ).

  3. Tentukan Tidak untuk Auto-terminate opsi dalam konfigurasi cluster Amazon EMR sehingga cluster tetap tersedia saat perintah COPY berjalan.

    penting

    Jika salah satu file data diubah atau dihapus sebelum COPY selesai, Anda mungkin memiliki hasil yang tidak terduga, atau operasi COPY mungkin gagal.

  4. Perhatikan ID cluster dan DNS publik utama (titik akhir untuk instans Amazon EC2 yang menghosting cluster). Anda akan menggunakan informasi tersebut di langkah selanjutnya.

Langkah 3: Ambil kunci publik cluster 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 cluster Amazon Redshift dan alamat IP node cluster untuk cluster Anda menggunakan konsol
  1. Akses Konsol Manajemen Amazon Redshift.

  2. Pilih tautan Cluster di panel navigasi.

  3. Pilih cluster Anda dari daftar.

  4. Temukan grup Peng aturan Ingestion SSH.

    Perhatikan Kunci Publik Cluster dan alamat IP Node. Anda akan menggunakannya di langkah selanjutnya.

    Screenshot dari grup SSH Ingestion Settings yang menunjukkan alamat IP Kunci Publik Cluster dan Node.

    Anda akan menggunakan alamat IP pribadi di Langkah 3 untuk mengonfigurasi host Amazon EC2 untuk menerima koneksi dari Amazon Redshift.

Untuk mengambil kunci publik cluster dan alamat IP node cluster untuk cluster Anda menggunakan Amazon Redshift CLI, jalankan perintah describe-cluster. Contoh:

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

Tanggapan akan mencakup ClusterPublicKey nilai dan daftar alamat IP pribadi dan publik, mirip dengan yang berikut:

{ "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 cluster dan alamat IP node cluster untuk cluster Anda menggunakan Amazon Redshift API, gunakan DescribeClusters tindakan tersebut. Untuk informasi selengkapnya, lihat deskripsi-cluster di Panduan Amazon Redshift CLI atau DescribeClusters di Panduan API Amazon Redshift.

Langkah 4: Tambahkan kunci publik cluster Amazon Redshift ke setiap file kunci resmi host Amazon EC2

Anda menambahkan kunci publik cluster ke file kunci resmi masing-masing host untuk semua node cluster Amazon EMR sehingga host akan mengenali Amazon Redshift dan menerima koneksi SSH.

Untuk menambahkan kunci publik cluster Amazon Redshift ke file kunci resmi host
  1. Akses host menggunakan koneksi SSH.

    Untuk informasi tentang menghubungkan ke instans menggunakan SSH, lihat Mengh ubungkan ke Instans Anda di Panduan Pengguna Amazon EC2.

  2. Salin kunci publik Amazon Redshift dari konsol atau dari teks respons CLI.

  3. 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”. 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 Masuk untuk setiap node cluster Amazon Redshift. Untuk Jenis, pilih SSH dengan protokol TCP pada Port 22. Untuk Sumber, masukkan alamat IP pribadi simpul cluster Amazon Redshift yang Anda ambil. Langkah 3: Ambil kunci publik cluster Amazon Redshift dan alamat IP node cluster Untuk informasi tentang menambahkan aturan ke grup keamanan Amazon EC2, lihat Mengotor isasi Lalu Lintas Masuk untuk Instans Anda di Panduan Pengguna Amazon EC2.

Langkah 6: Jalankan perintah COPY untuk memuat data

Jalan MENYONTEK kan perintah untuk terhubung ke cluster Amazon EMR dan memuat data ke tabel Amazon Redshift. Cluster Amazon EMR harus terus berjalan sampai perintah COPY selesai. Misalnya, jangan mengkonfigurasi cluster untuk mengakhiri secara otomatis.

penting

Jika salah satu file data diubah atau dihapus sebelum COPY selesai, Anda mungkin memiliki hasil yang tidak terduga, atau operasi COPY mungkin gagal.

Dalam perintah COPY, tentukan ID cluster Amazon EMR dan jalur file HDFS 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 dalam folder.

penting

Jika Anda menggunakan karakter wildcard atau hanya menggunakan nama folder, verifikasi bahwa tidak ada file yang tidak diinginkan akan dimuat atau perintah COPY akan gagal. Misalnya, beberapa proses mungkin menulis file log ke folder output.