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
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat integrasi acara S3 untuk menyalin file secara otomatis dari bucket Amazon S3
catatan
Rilis pratinjau untuk salin otomatis telah berakhir. Akibatnya, cluster pratinjau akan dihapus secara otomatis 30 hari setelah akhir periode pratinjau. Jika Anda berencana untuk terus menggunakan salin otomatis, sebaiknya buat ulang pekerjaan salin otomatis yang ada di cluster Amazon Redshift lain. Upgrade cluster pratinjau ke versi Amazon Redshift terbaru tidak didukung.
Anda dapat menggunakan pekerjaan penyalinan otomatis untuk memuat data ke tabel Amazon Redshift dari file yang disimpan di Amazon S3. Amazon Redshift mendeteksi ketika file Amazon S3 baru ditambahkan ke jalur yang ditentukan dalam perintah COPY Anda. Perintah COPY kemudian dijalankan secara otomatis tanpa Anda harus membuat pipeline penyerapan data eksternal. Amazon Redshift melacak file mana yang telah dimuat. Amazon Redshift menentukan jumlah file yang digabungkan bersama per perintah COPY. Anda dapat melihat perintah COPY yang dihasilkan dalam tampilan sistem.
Langkah pertama untuk membuat COPY JOB otomatis adalah membuat integrasi acara S3. Saat file baru muncul di bucket sumber Amazon S3, Amazon Redshift kemudian mengelola pemuatan file ke database Anda menggunakan perintah COPY.
Prasyarat untuk membuat integrasi acara S3
Untuk mengatur integrasi acara s3 Anda, konfirmasikan prasyarat berikut telah selesai.
Bucket Amazon S3 Anda harus memiliki kebijakan bucket yang mengizinkan beberapa izin Amazon S3. Misalnya, kebijakan contoh berikut mengizinkan izin untuk bucket sumber daya
amzn-s3-demo-bucketyang dihostingus-east-1. Baik bucket Amazon S3 dan integrasinya sama Wilayah AWS.Cluster target yang disediakan Amazon Redshift atau namespace Redshift Serverless Anda harus memiliki izin ke bucket. Konfirmasikan peran IAM yang terkait dengan cluster atau ruang nama tanpa server Anda memiliki kebijakan IAM yang memungkinkan izin yang tepat. Kebijakan harus mengizinkan baik
s3:GetObjectuntuk sumber daya bucket sepertidanamzn-s3-demo-buckets3:ListBucketuntuk sumber daya bucket dan isinya seperti.amzn-s3-demo-bucket/*Menambahkan kebijakan Anda ke peran IAM yang memiliki hubungan kepercayaan untuk peran tersebut adalah sebagai berikut.
Jika gudang data target Anda adalah cluster yang disediakan, Anda dapat mengaitkan peran IAM ke cluster yang disediakan menggunakan konsol Amazon Redshift, tab Izin klaster di detail cluster Anda. Untuk informasi tentang cara mengaitkan peran ke cluster yang disediakan, lihat Mengaitkan peran IAM dengan cluster di Panduan Manajemen Amazon Redshift.
Jika gudang data target Anda adalah Redshift Serverless, Anda dapat mengaitkan peran IAM ke namespace tanpa server menggunakan konsol Redshift Serverless, tab Keamanan dan enkripsi di detail namespace Anda. Untuk informasi tentang cara mengaitkan peran ke namespace tanpa server Anda, lihat Memberikan izin ke Amazon Redshift Serverless di Panduan Manajemen Amazon Redshift.
Gudang data Amazon Redshift Anda juga harus memiliki kebijakan sumber daya yang memungkinkan bucket Amazon S3. Jika Anda menggunakan konsol Amazon Redshift, saat Anda membuat integrasi peristiwa s3, Amazon Redshift menyediakan opsi Per baiki agar saya menambahkan kebijakan ini ke gudang data Amazon Redshift Anda. Untuk memperbarui kebijakan sumber daya sendiri, Anda dapat menggunakan perintah put-resour AWS CLI ce-policy. Misalnya, untuk melampirkan kebijakan sumber daya ke cluster yang disediakan Amazon Redshift untuk integrasi peristiwa S3 dengan bucket Amazon S3, jalankan AWS CLI perintah yang serupa dengan berikut ini. Contoh berikut menunjukkan kebijakan untuk namespace cluster yang disediakan di akun pengguna
us-east-1Wilayah AWS untuk.123456789012Ember itu diberi namaamzn-s3-demo-bucket.aws redshift put-resource-policy \ --policy file://rs-rp.json \ --resource-arn "arn:aws:redshift:us-east-1:123456789012:namespace/cc4ffe56-ad2c-4fd1-a5a2-f29124a56433"Di mana
rs-rp.jsonberisi:Untuk melampirkan kebijakan sumber daya ke namespace Redshift Serverless Anda untuk integrasi peristiwa S3 dengan bucket Amazon S3, jalankan AWS CLI perintah yang serupa dengan berikut ini. Contoh berikut menunjukkan kebijakan untuk namespace tanpa server di
us-east-1Wilayah AWS untuk akun pengguna.123456789012Ember itu diberi namaamzn-s3-demo-bucket.aws redshift put-resource-policy \ --policy file://rs-rp.json \ --resource-arn "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/namespace-1"Di mana
rs-rp.jsonberisi:
Membuat integrasi acara S3
Untuk mengatur pekerjaan penyalinan Anda, pertama-tama Anda menentukan integrasi peristiwa S3.
Amazon Redshift kemudian membuat integrasi peristiwa S3 dengan sumber dan target terkait, status, dan informasi tentang status pekerjaan penyalinan otomatis terkait. Anda dapat melihat informasi tentang integrasi acara S3 di konsol Amazon Redshift dengan memilih integrasi acara S3, dan memilih integrasi untuk menampilkan detailnya. Integrasi dipisahkan oleh yang dibuat di akun saya dan Dari akun lain. Daftar Di akun saya menunjukkan integrasi di mana sumber dan target berada di akun yang sama. Daftar Dari akun lain menunjukkan integrasi di mana sumbernya dimiliki oleh akun lain.
Jika Anda menghapus integrasi peristiwa S3, status COPY JOB yang sesuai berubah dari 1 (aktif) menjadi 0 (inactive/pending). Namun, COPY JOB yang sesuai tidak secara otomatis dihapus. Jika nanti Anda mencoba membuat COPY JOB dengan nama yang sama, mungkin ada konflik.
Membuat dan memantau COPY JOB
Setelah integrasi dibuat, pada halaman detail integrasi peristiwa S3 untuk integrasi yang Anda buat, pilih Buat pekerjaan penyalinan otomatis untuk membuka editor kueri Amazon Redshift v2 di mana Anda dapat membuat pekerjaan penyalinan otomatis untuk integrasi. Amazon Redshift mencocokkan bucket dalam klausa FROM dalam pernyataan COPY JOB CREATE dengan bucket yang digunakan dalam integrasi peristiwa S3. Untuk informasi tentang cara menggunakan editor kueri Amazon Redshift v2, lihat Meng kueri database menggunakan editor kueri Amazon Redshift v2 di Panduan Manajemen Amazon Redshift. Misalnya, jalankan perintah COPY berikut di query editor v2 untuk membuat COPY JOB otomatis yang cocok dengan bucket s3://amzn-s3-demo-bucket/staging-folder Amazon S3 dengan integrasi acara Amazon S3.
COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' JOB CREATE my_copy_job_name AUTO ON;
Anda mendefinisikan COPY JOB satu kali. Parameter yang sama digunakan untuk proses di masa mendatang.
Untuk menentukan dan mengelola COPY JOB, Anda harus memiliki izin. Untuk informasi tentang pemberian dan pencabutan izin pada COPY JOB, lihat HIBAH danMENCABUT. Untuk informasi selengkapnya tentang pemberian dan pencabutan izin cakupan untuk COPY JOB, lihat Memberikan izin bercakupan dan. Mencabut izin yang dicakup
Anda mengelola operasi pemuatan menggunakan opsi untuk CREATE, LIST, SHOW, DROP, ALTER, dan RUN. Untuk informasi selengkapnya, lihat SALIN PEKERJAAN.
Anda dapat menanyakan tampilan sistem untuk melihat status dan kemajuan COPY JOB. Tampilan disediakan sebagai berikut:
SYS_COPY_JOB— berisi baris untuk setiap COPY JOB yang didefinisikan saat ini.
SYS_COPY_JOB_DETAIL— berisi detail tentang file yang tertunda, kesalahan, dan dicerna untuk setiap COPY JOB.
SYS_COPY_JOB_INFO— berisi pesan yang dicatat tentang COPY JOB.
SYS_LOAD_HISTORY- berisi rincian perintah COPY.
SYS_LOAD_ERROR_DETAIL- berisi rincian kesalahan perintah COPY.
SVV_COPY_JOB_INTEGRATIONS— berisi rincian integrasi acara S3.
STL_LOAD_ERROR- berisi kesalahan dari perintah COPY.
STL_LOAD_COMMIT- berisi informasi yang digunakan untuk memecahkan masalah pemuatan data perintah COPY.
Untuk informasi tentang pemecahan masalah kesalahan integrasi peristiwa S3, lihatMemecahkan masalah integrasi peristiwa S3 dan kesalahan COPY JOB.
Untuk mendapatkan daftar file yang dimuat oleh COPY JOB, jalankan SQL berikut, tetapi pertama-tama ganti<job_id>:
SELECT job_id, job_name, data_source, copy_query, filename, status, curtime FROM sys_copy_job copyjob JOIN stl_load_commits loadcommit ON copyjob.job_id = loadcommit.copy_job_id WHERE job_id =<job_id>;
Pertimbangan saat membuat integrasi acara S3 untuk penyalinan otomatis
Pertimbangkan hal berikut saat menggunakan salin otomatis.
Anda dapat membuat maksimal 200 COPY JOBS untuk setiap cluster atau workgroup dalam sebuah Akun AWS.
Anda dapat membuat maksimal 50 integrasi acara S3 untuk setiap target Amazon Redshift.
Anda tidak dapat membuat integrasi peristiwa S3 dengan bucket Amazon S3 sumber yang memiliki titik (.) dalam nama bucket.
Anda hanya dapat membuat satu integrasi peristiwa S3 antara sumber dan target yang sama. Artinya, hanya ada satu integrasi peristiwa S3 antara bucket Amazon S3 dan gudang data Amazon Redshift pada satu waktu.
Anda tidak dapat memiliki notifikasi peristiwa yang ada untuk jenis peristiwa
S3_OBJECT_CREATEDyang ditentukan pada bucket Amazon S3 sumber. Namun, setelah integrasi peristiwa S3 dibuat, Anda dapat memperbarui pemberitahuan peristiwa bucket Amazon S3 dengan cakupan yang prefix/suffix lebih sempit. Dengan cara ini, Anda juga dapat mengonfigurasiS3_OBJECT_CREATEDuntuk target lain prefix/suffix ke target lain dan menghindari konflik dengan integrasi peristiwa S3. Jika Anda mengalami masalah karena penyalinan otomatis tidak berjalan seperti yang diharapkan, siapkan AWS CloudTrail logs3:PutBucketNotificationConfigurationtindakan pada bucket S3 Anda untuk kerangka waktu yang dimaksud saat Anda menghubungi AWS Dukungan.
Wilayah yang Didukung
Wilayah berikut tersedia untuk penyalinan otomatis.
| Region | Auto-copy |
|---|---|
| Africa (Cape Town) | Available |
| Asia Pasifik (Hong Kong) | Available |
| Asia Pasifik (Taipei) | Available |
| Asia Pasifik (Tokyo) | Available |
| Asia Pasifik (Seoul) | Available |
| Asia Pasifik (Osaka) | Available |
| Asia Pasifik (Mumbai) | Available |
| Asia Pasifik (Hyderabad) | Available |
| Asia Pasifik (Singapura) | Available |
| Asia Pasifik (Sydney) | Available |
| Asia Pasifik (Jakarta) | Available |
| Asia Pacific (Melbourne) | Available |
| Asia Pasifik (Malaysia) | Available |
| Asia Pasifik (Selandia Baru) | Tidak tersedia |
| Asia Pasifik (Thailand) | Available |
| Kanada (Pusat) | Available |
| Kanada Barat (Calgary) | Available |
| Tiongkok (Beijing) | Available |
| Tiongkok (Ningxia) | Available |
| Eropa (Frankfurt) | Available |
| Europe (Zurich) | Available |
| Eropa (Stockholm) | Available |
| Europe (Milan) | Available |
| Eropa (Spanyol) | Available |
| Eropa (Irlandia) | Available |
| Eropa (London) | Available |
| Eropa (Paris) | Available |
| Israel (Tel Aviv) | Available |
| Timur Tengah (UAE) | Available |
| Timur Tengah (Bahrain) | Available |
| Meksiko (Tengah) | Available |
| Amerika Selatan (Sao Paulo) | Available |
| AS Timur (Virginia Utara) | Available |
| AS Timur (Ohio) | Available |
| AS Barat (California Utara) | Available |
| AS Barat (Oregon) | Tersedia |
| AWS GovCloud (US-East) | Tersedia |
| AWS GovCloud (US-West) | Tersedia |
Pertimbangan saat memulihkan target integrasi peristiwa S3
Saat Anda memulihkan namespace Amazon Redshift Serverless dari snapshot atau titik pemulihan ke namespace tanpa server yang sama, integrasi peristiwa S3 dan COPY JOB terkait akan dipertahankan secara otomatis. Pertimbangan berikut berlaku untuk instans Mac:
-
Memulihkan snapshot ke namespace yang berbeda tidak mempertahankan integrasi peristiwa S3.
-
Setelah pemulihan, Amazon Redshift secara otomatis mengidentifikasi file yang diunggah ke bucket Amazon S3 sumber setelah snapshot diambil. File apa pun yang ada di Amazon S3 yang belum dimuat akan dicerna secara otomatis. Selama proses ini, penyerapan file baru dari notifikasi peristiwa S3 terus bekerja secara paralel.
catatan
Setelah pemulihan, hanya file yang ada di bucket Amazon S3 yang memenuhi syarat untuk dicerna. File yang diunggah setelah snapshot diambil dan kemudian dihapus sebelum pemulihan selesai tidak dicerna.
-
Jika integrasi peristiwa S3 dibuat setelah snapshot diambil, integrasi memasuki
NEEDS_ATTENTIONstatus setelah pemulihan. Untuk mengatasi masalah ini, Anda dapat memulihkan dari snapshot yang lebih baru yang menyertakan integrasi, atau menghapus integrasi. -
Jika integrasi peristiwa S3 dihapus setelah snapshot diambil, integrasi tidak dipulihkan. Status COPY JOB yang sesuai berubah menjadi
PENDING. Anda dapat membuat integrasi baru ke bucket Amazon S3 yang sama dan membuat ulang COPY JOB. File yang ditambahkan ke S3 antara waktu snapshot dan waktu COPY JOB dibuat ulang tidak dapat dipulihkan atau dicerna kembali. Untuk mengidentifikasi file-file ini, periksa waktu snapshot di konsol dan waktu penghapusan integrasi CloudTrail dan file yang tiba di bucket S3 antara waktu-waktu ini adalah file yang terlewatkan. -
Jika COPY JOB diubah setelah snapshot diambil, namespace yang dipulihkan menggunakan COPY JOB dari snapshot. Amazon Redshift merekonsiliasi perbedaan apa pun dan memperbarui integrasi untuk mencerminkan konfigurasi COPY JOB yang dipulihkan.
-
Untuk memilih tidak mempertahankan integrasi peristiwa S3 selama pemulihan, hapus centang pada kotak Maintain Integrations pada halaman restore di, atau jika Anda menggunakan Konsol Manajemen AWS, setel
--no-maintain-integrationparameter saat memanggil operasi API restore-from-snapshot atau restore-from-recovery-point. AWS CLIhttps://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromRecoveryPoint.html Saat Anda memilih keluar, integrasi masuk keFAILEDstatus setelah pemulihan. -
Fitur ini berlaku untuk Amazon Redshift Serverless hanya ketika dipulihkan ke namespace tanpa server yang sama. Pemulihan snapshot pada cluster yang disediakan tidak mempertahankan integrasi peristiwa S3.