Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
COPYdari host jarak jauh (SSH)
Anda dapat menggunakan COPY perintah untuk memuat data secara paralel dari satu atau lebih host jarak jauh, seperti instans Amazon Elastic Compute Cloud (AmazonEC2) atau komputer lain. COPYterhubung ke host jarak jauh menggunakan Secure Shell (SSH) dan menjalankan perintah pada host jarak jauh untuk menghasilkan output teks. Host jarak jauh dapat berupa instance EC2 Linux atau komputer Unix atau Linux lain yang dikonfigurasi untuk menerima SSH koneksi. Amazon Redshift dapat terhubung ke beberapa host, dan dapat membuka beberapa SSH koneksi ke setiap host. Amazon Redshift mengirimkan perintah unik melalui setiap koneksi untuk menghasilkan output teks ke output standar host, yang kemudian dibaca Amazon Redshift seperti halnya file teks.
Gunakan FROM klausa untuk menentukan kunci objek Amazon S3 untuk file manifes yang menyediakan COPY informasi yang digunakan untuk SSH membuka koneksi dan menjalankan perintah jarak jauh.
penting
Jika bucket S3 yang menyimpan file manifes tidak berada di AWS Region yang sama dengan cluster, Anda harus menggunakan REGION parameter tersebut untuk menentukan Region tempat bucket berada.
Sintaks
FROM 's3://'ssh_manifest_file' } authorization SSH | optional-parameters
Contoh
Contoh berikut menggunakan file manifes untuk memuat data dari host jarak jauh menggunakanSSH.
copy sales from 's3://amzn-s3-demo-bucket/ssh_manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' ssh;
Parameter
- FROM
-
Sumber data yang akan dimuat.
- 's3://copy_from_ssh_manifest_file '
-
COPYPerintah dapat terhubung ke beberapa host menggunakanSSH, dan dapat membuat beberapa SSH koneksi ke setiap host. COPYmenjalankan perintah melalui setiap koneksi host, dan kemudian memuat output dari perintah secara paralel ke dalam tabel. Argumen s3://copy_from_ssh_manifest_file menentukan kunci objek Amazon S3 untuk file manifes yang menyediakan COPY informasi yang digunakan untuk SSH membuka koneksi dan menjalankan perintah jarak jauh.
Argumen s3://copy_from_ssh_manifest_file harus secara eksplisit mereferensikan satu file; itu tidak bisa menjadi key prefix. Berikut ini menunjukkan contoh:
's3://amzn-s3-demo-bucket/ssh_manifest.txt'
File manifes adalah file teks dalam JSON format yang digunakan Amazon Redshift untuk terhubung ke host. File manifes menentukan titik akhir SSH host dan perintah yang akan dijalankan pada host untuk mengembalikan data ke Amazon Redshift. Secara opsional, Anda dapat menyertakan kunci publik host, nama pengguna login, dan bendera wajib untuk setiap entri. Contoh berikut menunjukkan file manifes yang membuat dua SSH koneksi:
{ "entries": [ {"endpoint":"<
ssh_endpoint_or_IP
>", "command": "<remote_command
>", "mandatory":true, "publickey": "<public_key
>", "username": "<host_user_name
>"}, {"endpoint":"<ssh_endpoint_or_IP
>", "command": "<remote_command
>", "mandatory":true, "publickey": "<public_key
>", "username": "<host_user_name
>"} ] }File manifes berisi satu
"entries"
konstruksi untuk setiap SSH koneksi. Anda dapat memiliki beberapa koneksi ke satu host atau beberapa koneksi ke beberapa host. Karakter tanda kutip ganda diperlukan seperti yang ditunjukkan, baik untuk nama bidang maupun nilainya. Karakter tanda kutip harus berupa tanda kutip sederhana (0x22), bukan tanda kutip miring atau “pintar”. Satu-satunya nilai yang tidak memerlukan karakter tanda kutip ganda adalah nilai Booleantrue
ataufalse
untuk bidang."mandatory"
Daftar berikut menjelaskan bidang dalam file manifes.
- titik akhir
-
URLAlamat atau alamat IP host—misalnya,
"ec2-111-222-333.compute-1.amazonaws.com"
, atau."198.51.100.0"
- perintah
-
Perintah yang akan dijalankan oleh host untuk menghasilkan output teks atau output biner dalam format gzip, lzop, bzip2, atau zstd. Perintah dapat berupa perintah apa pun yang pengguna “host_user_name” memiliki izin untuk dijalankan. Perintahnya bisa sesederhana mencetak file, atau bisa menanyakan database atau meluncurkan skrip. Output (file teks, file biner gzip, file biner lzop, atau file biner bzip2) harus dalam bentuk yang dapat dikonsumsi oleh perintah Amazon Redshift. COPY Untuk informasi selengkapnya, lihat Mempersiapkan data masukan Anda.
- kunci publik
-
(Opsional) Kunci publik tuan rumah. Jika tersedia, Amazon Redshift akan menggunakan kunci publik untuk mengidentifikasi host. Jika kunci publik tidak disediakan, Amazon Redshift tidak akan mencoba identifikasi host. Misalnya, jika kunci publik host jarak jauh adalah
ssh-rsa AbcCbaxxx…Example root@amazon.com
, ketikkan teks berikut di bidang kunci publik:"AbcCbaxxx…Example"
- wajib
-
(Opsional) Klausa yang menunjukkan apakah COPY perintah harus gagal jika upaya koneksi gagal. Default-nya adalah
false
. Jika Amazon Redshift tidak berhasil membuat setidaknya satu koneksi, COPY perintah gagal. - nama pengguna
-
(Opsional) Nama pengguna yang akan digunakan untuk masuk ke sistem host dan menjalankan perintah jarak jauh. Nama login pengguna harus sama dengan login yang digunakan untuk menambahkan kunci publik klaster Amazon Redshift ke file kunci resmi host. Nama pengguna default adalah
redshift
.
Untuk informasi selengkapnya tentang membuat file manifes, lihatMemuat proses data.
Untuk COPY dari host jarak jauh, SSH parameter harus ditentukan dengan COPY perintah. Jika SSH parameter tidak ditentukan, COPY mengasumsikan bahwa file yang ditentukan dengan FROM adalah file data dan akan gagal.
Jika Anda menggunakan kompresi otomatis, COPY perintah melakukan dua operasi baca data, yang berarti akan menjalankan perintah jarak jauh dua kali. Operasi baca pertama adalah menyediakan sampel data untuk analisis kompresi, kemudian operasi baca kedua benar-benar memuat data. Jika menjalankan perintah jarak jauh dua kali dapat menyebabkan masalah, Anda harus menonaktifkan kompresi otomatis. Untuk menonaktifkan kompresi otomatis, jalankan COPY perintah dengan COMPUPDATE parameter yang disetel keOFF. Untuk informasi selengkapnya, lihat Memuat tabel dengan kompresi otomatis.
Untuk prosedur rinci untuk menggunakan COPY dariSSH, lihatMemuat data dari host jarak jauh.
- otorisasi
-
COPYPerintah tersebut memerlukan otorisasi untuk mengakses data di AWS sumber daya lain, termasuk di Amazon S3, Amazon, EMR Amazon DynamoDB, dan Amazon. EC2 Anda dapat memberikan otorisasi tersebut dengan mereferensikan peran AWS Identity and Access Management (IAM) yang dilampirkan ke klaster Anda (kontrol akses berbasis peran) atau dengan memberikan kredenal akses untuk pengguna (kontrol akses berbasis kunci). Untuk meningkatkan keamanan dan fleksibilitas, sebaiknya gunakan kontrol akses IAM berbasis peran. Untuk informasi selengkapnya, lihat Parameter otorisasi.
- SSH
-
Klausa yang menentukan bahwa data akan dimuat dari host jarak jauh menggunakan protokol. SSH Jika Anda menentukanSSH, Anda juga harus menyediakan file manifes menggunakan s3://copy_from_ssh_manifest_file argumen.
catatan
Jika Anda menggunakan SSH untuk menyalin dari host menggunakan alamat IP pribadi di remoteVPC, VPC perutean VPC harus diaktifkan. Untuk informasi selengkapnya tentang VPC Perutean yang disempurnakan, lihat Amazon Redshift VPC Enhanced Routing.
Parameter opsional
Anda dapat secara opsional menentukan parameter berikut dengan COPY fromSSH:
Parameter yang tidak didukung
Anda tidak dapat menggunakan parameter berikut dengan COPY fromSSH:
-
ENCRYPTED
-
MANIFEST
-
READRATIO