Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan basis data Amazon Redshift sebagai target untuk AWS Database Migration Service
Anda dapat memigrasikan data ke database Amazon Redshift menggunakan. AWS Database Migration Service Amazon Redshift adalah layanan gudang data dengan skala petabyte yang terkelola penuh di cloud. Dengan basis data Amazon Redshift sebagai target, Anda dapat memigrasi data dari semua basis data sumber lain yang didukung.
Anda dapat menggunakan Amazon Redshift Serverless sebagai target. AWS DMS Untuk informasi lebih lanjut, lihat Menggunakan AWS DMS Amazon Redshift Serverless sebagai Target berikut ini.
Cluster Amazon Redshift harus berada di AWS akun yang sama dan AWS Wilayah yang sama dengan instance replikasi.
Selama migrasi database ke Amazon Redshift, AWS DMS pertama-tama memindahkan data ke bucket Amazon S3. Saat file berada di bucket Amazon S3 AWS DMS , lalu transfer ke tabel yang tepat di gudang data Amazon Redshift. AWS DMS membuat bucket S3 di AWS Wilayah yang sama dengan database Amazon Redshift. Contoh AWS DMS replikasi harus ditempatkan di AWS Wilayah yang sama.
Jika Anda menggunakan API AWS CLI atau DMS untuk memigrasikan data ke Amazon Redshift, siapkan AWS Identity and Access Management peran (IAM) untuk mengizinkan akses S3. Untuk informasi lebih lanjut tentang pembuatan IAM role, lihat Membuat IAM peran untuk digunakan dengan AWS DMS.
Titik akhir Amazon Redshift menyediakan otomatisasi penuh untuk hal berikut:
-
Pembuatan skema dan pemetaan tipe data
-
Beban penuh dari tabel basis data sumber
-
Beban tambahan dari perubahan yang dibuat ke tabel sumber
-
Penerapan perubahan skema dalam bahasa definisi data (DDL) yang dibuat ke tabel sumber
-
Sinkronisasi antara proses beban penuh dan penangkapan perubahan data (CDC).
AWS Database Migration Service mendukung operasi pemrosesan beban penuh dan perubahan. AWS DMS membaca data dari database sumber dan membuat serangkaian file nilai dipisahkan koma (.csv). Untuk operasi beban penuh, AWS DMS buat file untuk setiap tabel. AWS DMS kemudian menyalin file tabel untuk setiap tabel ke folder terpisah di Amazon S3. Saat file diunggah ke Amazon S3 AWS DMS , kirim perintah salin dan data dalam file disalin ke Amazon Redshift. Untuk operasi pemrosesan perubahan, salin perubahan AWS DMS bersih ke file.csv. AWS DMS kemudian mengunggah file perubahan bersih ke Amazon S3 dan menyalin data ke Amazon Redshift.
Untuk detail tambahan tentang bekerja dengan Amazon Redshift sebagai target AWS DMS, lihat bagian berikut:
Topik
Prasyarat untuk menggunakan database Amazon Redshift sebagai target AWS Database Migration Service
Hak yang diperlukan untuk menggunakan Redshift sebagai target
Batasan dalam menggunakan Amazon Redshift sebagai target AWS Database Migration Service
Mengonfigurasi database Amazon Redshift sebagai target AWS Database Migration Service
Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift
Pengaturan titik akhir saat menggunakan Amazon Redshift sebagai target AWS DMS
Menggunakan kunci enkripsi data, dan bucket Amazon S3 sebagai penyimpanan perantara
Menggunakan AWS DMS Amazon Redshift Serverless sebagai Target
Prasyarat untuk menggunakan database Amazon Redshift sebagai target AWS Database Migration Service
Daftar berikut menjelaskan prasyarat yang diperlukan untuk bekerja dengan Amazon Redshift sebagai target migrasi data:
-
Gunakan Konsol AWS Manajemen untuk meluncurkan klaster Amazon Redshift. Perhatikan informasi dasar tentang AWS akun Anda dan klaster Amazon Redshift Anda, seperti kata sandi, nama pengguna, dan nama database Anda. Anda perlu nilai-nilai ini saat membuat titik akhir target Amazon Redshift target.
-
Cluster Amazon Redshift harus berada di AWS akun yang sama dan AWS Wilayah yang sama dengan instance replikasi.
-
Instans AWS DMS replikasi memerlukan konektivitas jaringan ke endpoint Amazon Redshift (nama host dan port) yang digunakan klaster Anda.
-
AWS DMS menggunakan bucket Amazon S3 untuk mentransfer data ke database Amazon Redshift. Agar AWS DMS dapat membuat bucket, konsol tersebut menggunakan IAM role,
dms-access-for-endpoint
. Jika Anda menggunakan AWS CLI atau DMS API untuk membuat migrasi database dengan Amazon Redshift sebagai database target, Anda harus membuat peran IAM ini. Untuk informasi lebih lanjut tentang pembuatan peran, lihat Membuat IAM peran untuk digunakan dengan AWS DMS. -
AWS DMS mengonversi BLOBs, CLOBs, dan NCLOBs ke VARCHAR pada instance Amazon Redshift target. Amazon Redshift tidak mendukung tipe data VARCHAR yang lebih besar dari 64 KB, jadi Anda tidak dapat menyimpan tradisional di Amazon LOBs Redshift.
-
Tetapkan pengaturan tugas metadata target BatchApplyEnabledke
true
for AWS DMS untuk menangani perubahan pada tabel target Amazon Redshift selama CDC. Diperlukan sebuah Kunci Primer pada sumber dan target tabel. Tanpa Kunci Primer, perubahan diterapkan pernyataan demi pernyataan. Dan hal itu dapat memengaruhi performa tugas selama CDC berlangsung dengan menyebabkan latensi target dan memengaruhi antrean melakukan klaster.
Hak yang diperlukan untuk menggunakan Redshift sebagai target
Gunakan perintah GRANT untuk menentukan hak akses pengguna atau grup pengguna. Hak termasuk pilihan akses seperti dapat membaca data dalam tabel dan view, menulis data, dan membuat tabel. Untuk informasi lebih lanjut tentang penggunaan GRANT dengan Amazon Redshift, lihat GRANT di Panduan Developer Basis data Amazon Redshift.
Berikut adalah sintaks untuk memberikan hak khusus untuk tabel, basis data, skema, fungsi, prosedur, atau hak tingkat-bahasa pada tabel dan view di Amazon Redshift.
GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] } TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL PROCEDURES IN SCHEMA schema_name [, ...] } TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] GRANT USAGE ON LANGUAGE language_name [, ...] TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]
Berikut adalah sintaks untuk hak tingkat-kolom pada tabel dan views di Amazon Redshift.
GRANT { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } TO { username | GROUP group_name | PUBLIC } [, ...]
Berikut adalah sintaks untuk hak ASSUMEROLE yang diberikan kepada pengguna dan kelompok dengan peran tertentu.
GRANT ASSUMEROLE ON { 'iam_role' [, ...] | ALL } TO { username | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD } [, ...]
Batasan dalam menggunakan Amazon Redshift sebagai target AWS Database Migration Service
Batasan berikut berlaku saat menggunakan database Amazon Redshift sebagai target:
-
Jangan aktifkan pembuatan versi untuk bucket S3 yang Anda gunakan sebagai penyimpanan perantara untuk target Amazon Redshift Anda. Jika Anda memerlukan versi S3, gunakan kebijakan siklus hidup untuk menghapus versi lama secara aktif. Jika tidak, Anda mungkin mengalami kegagalan koneksi pengujian titik akhir karena batas waktu
list-object
panggilan S3. Untuk membuat kebijakan siklus hidup bucket S3, lihat Mengelola siklus hidup penyimpanan. Untuk menghapus versi objek S3, lihat Menghapus versi objek dari bucket berkemampuan versi. -
DDL berikut ini tidak didukung:
ALTER TABLE
table name
MODIFY COLUMNcolumn name
data type
; -
AWS DMS tidak dapat memigrasi atau mereplikasi perubahan ke skema dengan nama yang dimulai dengan garis bawah (_). Jika Anda memiliki skema dengan nama yang dimulai dengan garis bawah, gunakan transformasi pemetaan untuk mengubah nama skema pada target.
-
Amazon Redshift tidak mendukung VARCHARs lebih dari 64 KB. LOBs dari database tradisional tidak dapat disimpan di Amazon Redshift.
-
Menerapkan pernyataan DELETE ke tabel dengan kunci primer multi-kolom tidak didukung ketika salah satu nama kolom kunci primer menggunakan kata yang dicadangkan. Pergi ke sini untuk melihat daftar kosakata cadangan pada Amazon Redshift.
-
Anda mungkin mengalami masalah performa jika sistem sumber Anda melakukan operasi UPDATE pada kunci primer tabel sumber. Masalah performa ini terjadi saat menerapkan perubahan pada target. Hal ini disebabkan oleh operasi UPDATE (dan DELETE) bergantung pada nilai kunci primer untuk mengidentifikasi baris target. Jika Anda memperbarui kunci primer dari tabel sumber, log tugas Anda akan berisi pesan seperti berikut:
Update on table 1 changes PK to a PK that was previously updated in the same bulk update.
-
DMS tidak mendukung nama DNS khusus saat mengonfigurasi titik akhir untuk klaster Redshift, dan Anda perlu menggunakan nama DNS yang disediakan Amazon. Karena klaster Amazon Redshift harus berada dalam akun dan wilayah AWS yang sama dengan instans replikasi, validasi gagal jika Anda menggunakan titik akhir DNS khusus.
-
Amazon Redshift memiliki batas waktu sesi idle 4 jam default. Jika tidak ada aktivitas apa pun dalam tugas replikasi DMS, Redshift memutus sesi setelah 4 jam. Kesalahan dapat terjadi karena DMS tidak dapat terhubung dan berpotensi perlu memulai ulang. Sebagai solusinya, tetapkan batas WAKTU SESI lebih dari 4 jam untuk pengguna replikasi DMS. Atau, lihat deskripsi ALTER USER di Panduan Pengembang Database Amazon Redshift.
-
Saat AWS DMS mereplikasi data tabel sumber tanpa kunci primer atau unik, latensi CDC mungkin tinggi sehingga menghasilkan tingkat kinerja yang tidak dapat diterima.
Mengonfigurasi database Amazon Redshift sebagai target AWS Database Migration Service
AWS Database Migration Service harus dikonfigurasi agar berfungsi dengan instans Amazon Redshift. Tabel berikut menjelaskan properti konfigurasi yang tersedia untuk titik akhir Amazon Redshift.
Properti |
Deskripsi |
---|---|
Server |
Nama klaster Amazon Redshift yang Anda gunakan. |
port |
Nomor port untuk Amazon Redshift. Nilai default adalah 5439. |
nama pengguna |
Nama pengguna Amazon Redshift untuk pengguna terdaftar. |
Kata sandi |
Kata sandi untuk pengguna yang disebutkan di properti nama pengguna. |
basis data |
Nama (layanan) gudang data Amazon Redshift yang Anda gunakan. |
Jika ingin menambahkan atribut string koneksi tambahan untuk titik akhir Amazon Redshift, Anda dapat menentukan atribut maxFileSize
dan fileTransferUploadStreams
. Untuk informasi lebih lanjut tentang atribut ini, lihat Pengaturan titik akhir saat menggunakan Amazon Redshift sebagai target AWS DMS.
Menggunakan perutean VPC yang disempurnakan dengan Amazon Redshift sebagai target AWS Database Migration Service
Jika Anda menggunakan Perutean VPC yang disempurnakan dengan target Amazon Redshift, semua lalu lintas COPY antara klaster Amazon Redshift dan repositori data Anda akan melewati VPC tersebut. Karena perutean VPC yang disempurnakan memengaruhi cara Amazon Redshift mengakses sumber daya lain, perintah COPY kmeungkinan gagal jika Anda belum mengonfigurasi VPC Anda dengan benar.
AWS DMS dapat dipengaruhi oleh perilaku ini karena menggunakan perintah COPY untuk memindahkan data di S3 ke cluster Amazon Redshift.
Berikut adalah langkah-langkah yang AWS DMS diperlukan untuk memuat data ke target Amazon Redshift:
-
AWS DMS menyalin data dari sumber ke file.csv di server replikasi.
-
AWS DMS menggunakan AWS SDK untuk menyalin file.csv ke dalam bucket S3 di akun Anda.
-
AWS DMS kemudian menggunakan perintah COPY di Amazon Redshift untuk menyalin data dari file.csv di S3 ke tabel yang sesuai di Amazon Redshift.
Jika Perutean VPC yang Ditingkatkan tidak diaktifkan, Amazon Redshift merutekan lalu lintas melalui internet, termasuk lalu lintas ke layanan lain dalam jaringan. AWS Jika fitur ini tidak diaktifkan Anda tidak harus mengonfigurasi jalur jaringan. Jika fitur diaktifkan, Anda harus secara khusus membuat jalur jaringan antara Anda VPC dari klaster dan sumber data Anda. Untuk informasi lebih lanjut tentang konfigurasi yang diperlukan, lihat Perutean VPC dalam dokumentasi Amazon Redshift.
Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift
Anda dapat mengenkripsi data target yang dikirim ke Amazon S3 sebelum disalin ke Amazon Redshift. Untuk melakukannya, Anda dapat membuat dan menggunakan AWS KMS kunci khusus. Anda dapat menggunakan kunci yang Anda buat untuk mengenkripsi data target menggunakan salah satu mekanisme berikut saat Anda membuat titik akhir target Amazon Redshift:
-
Gunakan pilihan berikut ketika Anda menjalankan perintah
create-endpoint
menggunakan AWS CLI.--redshift-settings '{"EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "
your-kms-key-ARN
"}'Di sini,
adalah Amazon Resource Name (ARN) untuk kunci KMS Anda. Untuk informasi lebih lanjut, lihat Menggunakan kunci enkripsi data, dan bucket Amazon S3 sebagai penyimpanan perantara.your-kms-key-ARN
-
Tetapkan atribut koneksi tambahan
encryptionMode
ke nilaiSSE_KMS
dan atribut koneksi tambahanserverSideEncryptionKmsKeyId
ke ARN untuk kunci KMS Anda. Untuk informasi selengkapnya, lihat Pengaturan titik akhir saat menggunakan Amazon Redshift sebagai target AWS DMS.
Untuk mengenkripsi data target Amazon Redshift menggunakan kunci KMS, Anda memerlukan peran (IAM) AWS Identity and Access Management yang memiliki izin untuk mengakses data Amazon Redshift. IAM role ini kemudian diakses dalam sebuah kebijakan (kebijakan kunci) yang dilampirkan ke kunci enkripsi yang Anda buat. Anda dapat melakukannya melalui konsol IAM Anda dengan membuat hal berikut:
-
Peran IAM dengan kebijakan yang AWS dikelola.
-
Kunci KMS dengan kebijakan kunci yang mereferensikan peran ini.
Prosedur berikut menjelaskan cara pembuatannya.
Untuk membuat peran IAM dengan kebijakan AWS-managed yang diperlukan
Buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Di panel navigasi, pilih Peran. Halaman Peran terbuka.
-
Pilih Buat peran. Halaman Buat peran terbuka.
-
Pilih Layanan AWS sebagai entitas terpercaya, pilih DMS sebagai layanan untuk menggunakan peran.
-
Pilih Berikutnya: Izin. Halaman Lampirkan kebijakan izin akan muncul.
-
Cari dan pilih
AmazonDMSRedshiftS3Role
kebijakan. -
Pilih Berikutnya: Penandaan. Halaman Tambahkan penandaan akan muncul. Di sini, Anda dapat menambahkan tanda apa pun yang Anda inginkan.
-
Pilih Berikutnya: Tinjauan dan lihat hasil yang dikeluarkan.
-
Jika Anda membutuhkan pengaturan, masukkan nama untuk peran (misalnya,
DMS-Redshift-endpoint-access-role
), dan deskripsi tambahan apa pun, lalu pilih Buat peran. Halaman Peran terbuka dengan pesan yang menunjukkan bahwa peran Anda telah dibuat.
Anda sekarang telah membuat peran baru untuk mengakses sumber daya Amazon Redshift untuk enkripsi dengan nama tertentu, misalnya DMS-Redshift-endpoint-access-role
.
Untuk membuat kunci AWS KMS enkripsi dengan kebijakan kunci yang mereferensikan peran IAM Anda
catatan
Untuk informasi selengkapnya tentang cara AWS DMS kerja dengan kunci AWS KMS enkripsi, lihatMenyetel kunci enkripsi dan menentukan izin AWS KMS.
-
Masuk ke AWS Management Console dan buka konsol AWS Key Management Service (AWS KMS) di https://console.aws.amazon.com/kms
. -
Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.
-
Di panel navigasi, pilih Kunci yang dikelola pelanggan.
-
Pilih Buat kunci. Halaman Konfigurasi kunci terbuka.
-
Untuk Tipe Kunci, pilih Simetris.
catatan
Saat Anda membuat kunci ini, Anda hanya dapat membuat kunci simetris, karena semua AWS layanan, seperti Amazon Redshift, hanya berfungsi dengan kunci enkripsi simetris.
-
Pilih Pilihan lanjutan. Untuk Asal material kunci, pastikan bahwa KMS dipilih, lalu pilih Selanjutnya. Halaman Tambahkan label terbuka.
-
Untuk Buat alias dan deskripsi, masukkan alias untuk kunci (misalnya,
DMS-Redshift-endpoint-encryption-key
) dan keterangan tambahan apa pun. -
Untuk Penandaan, tambahkan tanda apa pun yang Anda inginkan untuk membantu mengidentifikasi kunci dan melacak penggunaannya, lalu pilih Selanjutnya. Halaman Tentukan izin administratif kunci terbuka dan menampilkan daftar pengguna dan peran yang dapat Anda pilih.
-
Tambahkan pengguna dan peran yang Anda inginkan untuk mengelola kunci. Pastikan bahwa pengguna dan peran ini memiliki izin yang diperlukan untuk mengelola kunci.
-
Untuk Penghapusan kunci, pilih apakah administrator kunci dapat menghapus kunci, lalu pilih Selanjutnya. Halaman Tentukan izin penggunaan kunci terbuka dan menampilkan daftar pengguna dan peran tambahan yang dapat Anda pilih.
-
Untuk Akun ini, pilih pengguna yang tersedia yang Anda inginkan untuk melakukan operasi kriptografi pada target Amazon Redshift. Juga pilih peran yang sudah Anda buat sebelumnya di Peran untuk mengaktifkan akses guna mengenkripsi objek target Amazon Redshift, misalnya
DMS-Redshift-endpoint-access-role
). -
Jika Anda ingin menambahkan akun lain yang tidak terdaftar untuk memiliki akses yang sama, untuk AWS Akun lain, pilih Tambah AWS akun lain, lalu pilih Berikutnya. Halaman Tinjau dan edit kebijakan kunci terbuka dan menampilkan JSON untuk kebijakan kunci yang dapat Anda tinjau dan edit dengan mengetik ke JSON yang sudah ada. Di sini, Anda dapat melihat tempat kebijakan kunci mereferensikan peran dan pengguna (misalnya,
Admin
danUser1
) yang sudah Anda pilih pada langkah sebelumnya. Anda juga dapat melihat tindakan kunci berbeda diizinkan untuk principals yang berbeda (pengguna dan peran), seperti yang ditunjukkan dalam contoh berikut.{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/Admin" ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/DMS-Redshift-endpoint-access-role", "arn:aws:iam::111122223333:role/Admin", "arn:aws:iam::111122223333:role/User1" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/DMS-Redshift-endpoint-access-role", "arn:aws:iam::111122223333:role/Admin", "arn:aws:iam::111122223333:role/User1" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ]
-
Pilih Selesai. Halaman kunci Enkripsi terbuka dengan pesan yang menunjukkan bahwa Anda AWS KMS key telah dibuat.
Anda sekarang telah membuat bukti kunci KMS baru dengan nama alias tertentu (misalnya DMS-Redshift-endpoint-encryption-key
). Kunci ini memungkinkan AWS DMS untuk mengenkripsi data target Amazon Redshift.
Pengaturan titik akhir saat menggunakan Amazon Redshift sebagai target AWS DMS
Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data target Amazon Redshift mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir target menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint
perintah di AWS CLI, dengan sintaks --redshift-settings '{"
JSON.EndpointSetting"
:
"value"
, ...
}'
Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan Amazon Redshift sebagai target.
Nama | Deskripsi |
---|---|
|
Tentukan ukuran maksimum (dalam KB) dari setiap file .csv yang digunakan untuk mentransfer data ke Amazon Redshift. Nilai default: 32768 KB (32 MB) Nilai valid: 1-1.048.576 Contoh: |
|
Tentukan jumlah thread yang digunakan untuk mengunggah satu file. Nilai default: 10 Nilai valid: 1-64 Contoh: |
|
Tentukan apakah semua format tanggal diterima, termasuk format tanggal yang tidak valid seperti 0000-00-00. Nilai Boolean. Nilai default: SALAH Nilai valid: BETUL | SALAH Contoh: |
|
Tentukan format tanggal. Ini adalah masukan string yang secara default kosong. Format defaultnya adalah YYYY-MM-DD tetapi Anda dapat mengubahnya menjadi, misalnya, DD-MM-YYYY. Jika nilai tanggal atau waktu Anda menggunakan format yang berbeda, gunakan argumen Nilai default: kosong Nilai yang valid: " Contoh: |
|
Menentukan format waktu. Ini adalah masukan string yang secara default kosong. Argumen Nilai default: 10 Nilai yang valid: " Contoh: |
|
Menentukan apakah AWS DMS harus bermigrasi bidang CHAR kosong dan VARCHAR sebagai null. Nilai benar menetapkan field CHAR dan VARCHAR kosong sebagai null. Nilai default: SALAH Nilai valid: BETUL | SALAH Contoh: |
TruncateColumns |
Potong data dalam kolom sesuai dengan jumlah karakter sehingga cocok dengan spesifikasi kolom. Berlaku hanya pada kolom dengan tipe data VARCHAR atau CHAR, dan baris berukuran 4 MB atau kurang. Nilai default: SALAH Nilai valid: BETUL | SALAH Contoh: |
RemoveQuotes |
Hapus tanda kutip yang mengelilingi string pada data yang akan masuk. Semua karakter dalam tanda kutip, termasuk delimiter, dipertahankan. Untuk informasi lebih lanjut tentang menghapus kutipan untuk target Amazon Redshift, lihat Panduan Developer Database Amazon Redshift. Nilai default: SALAH Nilai valid: BETUL | SALAH Contoh: |
TrimBlanks |
Menghapus jejak karakter spasi putih dari VARCHAR string. Parameter ini hanya berlaku untuk kolom dengan tipe data VARCHAR. Nilai default: SALAH Nilai valid: BETUL | SALAH Contoh: |
EncryptionMode |
Menentukan mode enkripsi sisi server yang ingin Anda gunakan untuk mengirim data Anda ke S3 sebelum disalin ke Amazon Redshift. Nilai valid adalah SSE_S3 (enkripsi sisi server S3) atau SSE_KMS (enkripsi kunci KMS). Jika Anda memilih SSE_KMS , atur parameter ServerSideEncryptionKmsKeyId Untuk Amazon Resource Name (ARN) untuk kunci KMS yang akan digunakan untuk enkripsi. catatanAnda juga dapat menggunakan Nilai default: Nilai valid: Contoh: |
ServerSideEncryptionKmsKeyId |
Jika Anda mengatur EncryptionMode ke SSE_KMS , tetapkan parameter ini ke ARN untuk kunci KMS. Anda dapat menemukan ARN ini dengan memilih alias kunci dalam daftar kunci yang dibuat untuk AWS KMS akun Anda. Bila Anda membuat kunci, Anda harus mengasosiasikan kebijakan dan peran tertentu dengannya. Untuk informasi selengkapnya, lihat Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift. Contoh: |
EnableParallelBatchInMemoryCSVFiles |
EnableParallelBatchInMemoryCSVFiles Pengaturan ini meningkatkan kinerja tugas beban penuh multithreaded yang lebih besar dengan meminta DMS menulis ke disk, bukan memori. Nilai default-nya adalah false . |
CompressCsvFiles |
Gunakan atribut ini untuk mengompres data yang dikirim ke target Amazon Redshift selama migrasi. Nilai defaultnya adalahtrue , dan kompresi diaktifkan secara default. |
Menggunakan kunci enkripsi data, dan bucket Amazon S3 sebagai penyimpanan perantara
Anda dapat menggunakan Amazon Redshift target endpoint pengaturan untuk mengkonfigurasi berikut:
-
Kunci enkripsi AWS KMS data khusus. Kemudian Anda dapat menggunakan kunci ini untuk mengenkripsi data Anda yang dikirim ke Amazon S3 sebelum disalin ke Amazon Redshift.
-
Sebuah bucket S3 kustom sebagai penyimpanan perantara untuk data yang dimigrasi ke Amazon Redshift.
-
Memetakan boolean sebagai boolean dari sumber PostgreSQL. Secara default, tipe BOOLEAN dimigrasikan sebagai varchar (1). Anda dapat menentukan
MapBooleanAsBoolean
untuk membiarkan target Redshift Anda memigrasikan jenis boolean sebagai boolean, seperti yang ditunjukkan pada contoh berikut.--redshift-settings '{"MapBooleanAsBoolean": true}'
Perhatikan bahwa Anda harus mengatur pengaturan ini pada titik akhir sumber dan target agar dapat diterapkan.
Pengaturan kunci KMS untuk enkripsi data
Contoh berikut menunjukkan konfigurasi kunci KMS kustom untuk mengenkripsi data Anda yang dikirim ke S3. Anda bisa memulai dengan membuat panggilan create-endpoint
menggunakan AWS CLI.
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target --engine-name redshift --username
your-username
--passwordyour-password
--server-nameyour-server-name
--port 5439 --database-nameyour-db-name
--redshift-settings '{"EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1"}'
Di sini, objek JSON ditentukan oleh pilihan --redshift-settings
yang mendefinisikan dua parameter. Satu berupa parameter EncryptionMode
dengan nilai SSE_KMS
. Yang satu lagi berupa parameter ServerSideEncryptionKmsKeyId
dengan nilai arn:aws:kms:us-east-1:111122223333:key/24c3c5a1-f34a-4519-a85b-2debbef226d1
. Nilai ini adalah Amazon Resource Name (ARN) untuk kunci KMS kustom Anda.
Secara default, enkripsi data S3 terjadi menggunakan enkripsi pada sisi server S3. Bagi target Amazon Redshift pada contoh sebelumnya, ini juga setara dengan menentukan pengaturan titik akhir, seperti dalam contoh berikut.
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target --engine-name redshift --username
your-username
--passwordyour-password
--server-nameyour-server-name
--port 5439 --database-nameyour-db-name
--redshift-settings '{"EncryptionMode": "SSE_S3"}'
Untuk informasi selengkapnya tentang bekerja dengan enkripsi sisi server S3, lihat Melindungi data menggunakan enkripsi sisi server di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
catatan
Anda juga dapat menggunakan perintah CLI modify-endpoint
untuk mengubah nilai parameter EncryptionMode
untuk titik akhir yang sudah ada dari SSE_KMS
ke SSE_S3
. Tapi Anda tidak dapat mengubah nilai EncryptionMode
dari SSE_S3
ke SSE_KMS
.
Pengaturan bucket Amazon S3
Saat Anda memigrasikan data ke titik akhir target Amazon Redshift AWS DMS , gunakan bucket Amazon S3 default sebagai penyimpanan tugas perantara sebelum menyalin data yang dimigrasi ke Amazon Redshift. Misalnya, contoh yang ditampilkan untuk membuat titik akhir target Amazon Redshift dengan kunci enkripsi AWS KMS data menggunakan bucket S3 default ini (lihat). Pengaturan kunci KMS untuk enkripsi data
Sebagai gantinya, Anda dapat menentukan bucket S3 kustom untuk penyimpanan perantara ini dengan menyertakan parameter berikut dalam nilai --redshift-settings
opsi Anda pada AWS CLI
create-endpoint
perintah:
-
BucketName
– String yang Anda tentukan sebagai nama penyimpanan bucket S3. Jika peran akses layanan Anda didasarkan padaAmazonDMSRedshiftS3Role
kebijakan, nilai ini harus memiliki awalandms-
, misalnya,dms-my-bucket-name
. -
BucketFolder
– (Opsional) Sebuah string yang dapat Anda tentukan sebagai nama folder penyimpanan di bucket S3 yang sudah ditetapkan. -
ServiceAccessRoleArn
– ARN dari IAM role yang memberikan akses administratif ke bucket S3. Umumnya, Anda membuat peran ini berdasarkan pada kebijakanAmazonDMSRedshiftS3Role
. Sebagai contoh, lihat prosedur untuk membuat IAM role dengan kebijakan terkelola AWS di Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift.catatan
Jika Anda menetapkan ARN dari IAM role yang berbeda menggunakan pilihan
--service-access-role-arn
dari perintahcreate-endpoint
, maka pilihan IAM role ini akan diutamakan.
Contoh berikut menunjukkan bagaimana Anda bisa menggunakan parameter ini untuk menentukan bucket Amazon S3 kustom dalam panggilan create-endpoint
yang menggunakan AWS CLI berikut ini.
aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target --engine-name redshift --username
your-username
--passwordyour-password
--server-nameyour-server-name
--port 5439 --database-nameyour-db-name
--redshift-settings '{"ServiceAccessRoleArn": "your-service-access-ARN
", "BucketName": "your-bucket-name
", "BucketFolder": "your-bucket-folder-name
"}'
Pengaturan tugas multithreaded untuk Amazon Redshift
Anda dapat meningkatkan kinerja tugas full load dan change data capture (CDC) untuk titik akhir target Amazon Redshift dengan menggunakan pengaturan tugas multithreaded. Mereka memungkinkan Anda untuk menentukan jumlah thread serentak dan jumlah catatan untuk disimpan dalam buffer.
Pengaturan tugas beban penuh multithreaded untuk Amazon Redshift
Untuk mempromosikan kinerja beban penuh, Anda dapat menggunakan pengaturan ParallelLoad*
tugas berikut:
-
ParallelLoadThreads
— Menentukan jumlah thread bersamaan yang digunakan DMS selama pemuatan penuh untuk mendorong catatan data ke titik akhir target Amazon Redshift. Nilai default adalah nol (0) dan nilai maksimum adalah 32. Untuk informasi selengkapnya, lihat Pengaturan tugas beban penuh.Anda dapat menggunakan
enableParallelBatchInMemoryCSVFiles
atribut yang disetelfalse
saat menggunakan pengaturanParallelLoadThreads
tugas. Atribut meningkatkan kinerja tugas beban penuh multithreaded yang lebih besar dengan meminta DMS menulis ke disk, bukan memori. Nilai default-nya adalahtrue
. -
ParallelLoadBufferSize
— Menentukan permintaan catatan data maksimum saat menggunakan thread beban paralel dengan target Redshift. Nilai default adalah 100 dan nilai maksimum adalah 1.000. Kami menyarankan Anda menggunakan opsi ini ketika ParallelLoadThreads > 1 (lebih besar dari satu).
catatan
Support untuk penggunaan pengaturan ParallelLoad*
tugas selama LOAD PENUH ke titik akhir target Amazon Redshift tersedia dalam AWS DMS versi 3.4.5 dan lebih tinggi.
Pengaturan titik akhir ReplaceInvalidChars
Redshift tidak didukung untuk digunakan selama pengambilan data perubahan (CDC) atau selama tugas migrasi BEBAN PENUH yang diaktifkan beban paralel. Hal ini didukung untuk migrasi FULL LOAD ketika beban paralel tidak diaktifkan. Untuk informasi selengkapnya lihat RedshiftSettingsdi Referensi AWS Database Migration Service API
Pengaturan tugas CDC multithreaded untuk Amazon Redshift
Untuk mempromosikan performa CDC, Anda dapat menggunakan pengaturan tugas ParallelApply*
berikut:
-
ParallelApplyThreads
— Menentukan jumlah thread bersamaan yang AWS DMS digunakan selama pemuatan CDC untuk mendorong catatan data ke titik akhir target Amazon Redshift. Nilai default adalah nol (0) dan nilai maksimum adalah 32. Nilai minimum yang disarankan sama dengan jumlah irisan di cluster Anda. -
ParallelApplyBufferSize
- Tentukan permintaan catatan data maksimum saat menggunakan thread penerapan paraleld dengan target Redshift. Nilai default adalah 100 dan nilai maksimum adalah 1.000. Kami merekomendasikan untuk menggunakan opsi ini ketika ParallelApplyThreads > 1 (lebih besar dari satu).Untuk mendapatkan manfaat yang paling besar untuk Redshift sebagai target, kami merekomendasikan bahwa nilai
ParallelApplyBufferSize
setidaknya dua kali (dobel atau lebih) dari jumlahParallelApplyThreads
.
catatan
Support untuk penggunaan pengaturan ParallelApply*
tugas selama titik akhir target CDC ke Amazon Redshift tersedia AWS DMS dalam versi 3.4.3 dan yang lebih tinggi.
Tingkat paralelisme yang diterapkan tergantung pada korelasi antara total Ukuran batch dan Ukuran file maksimal yang digunakan untuk mentransfer data. Ketika menggunakan pengaturan tugas CDC multithreaded dengan target Redshift, manfaat yang diperoleh ketika ukuran batch besar dalam kaitannya dengan ukuran file maksimum. Misalnya, Anda dapat menggunakan kombinasi titik akhir dan pengaturan tugas berikut untuk menyetel performa yang optimal.
// Redshift endpoint setting MaxFileSize=250000; // Task settings BatchApplyEnabled=true; BatchSplitSize =8000; BatchApplyTimeoutMax =1800; BatchApplyTimeoutMin =1800; ParallelApplyThreads=32; ParallelApplyBufferSize=100;
Menggunakan pengaturan pada contoh sebelumnya, pelanggan dengan beban kerja transaksional berat mendapat manfaat dengan buffer batch mereka, berisi 8000 catatan, diisi dalam 1800 detik, memanfaatkan 32 thread paralel dengan ukuran file maksimum 250 MB.
Untuk informasi selengkapnya, lihat Mengubah pengaturan penyetelan pemrosesan.
catatan
DMS permintaan yang berjalan selama replikasi berkelanjutan klaster Redshift dapat berbagi sama WLM (beban kerja manajemen) antrean dengan aplikasi lain permintaan yang berjalan. Jadi, pertimbangkan untuk mengonfigurasi properti WLM dengan benar agar memengaruhi performa selama replikasi berkelanjutan ke target Redshift. Sebagai contoh, jika kueri ETL paralel lainnya berjalan, DMS berjalan lebih lambat dan peningkatan performa hilang.
Tipe data target untuk Amazon Redshift
Titik akhir Amazon Redshift untuk AWS DMS mendukung sebagian besar tipe data Amazon Redshift. Tabel berikut menunjukkan tipe data target Amazon Redshift yang didukung saat menggunakan AWS DMS dan pemetaan default dari AWS DMS tipe data.
Untuk informasi tambahan tentang tipe AWS DMS data, lihatTipe data untuk AWS Database Migration Service.
AWS DMS tipe data |
Tipe data Amazon Redshift |
---|---|
BOOLEAN |
BOOL |
BYTES |
VARCHAR (Length) |
DATE |
DATE |
TIME |
VARCHAR(20) |
DATETIME |
Jika skalanya => 0 dan =< 6, tergantung pada jenis kolom target Redshift, maka salah satu dari berikut ini: TIMESTAMP (s) TIMESTAMPTZ (s) - Jika stempel waktu sumber berisi offset zona (seperti di SQL Server atau Oracle) itu dikonversi ke UTC saat disisipkan/diperbarui. Jika tidak mengandung offset, maka waktu sudah dipertimbangkan dalam UTC. Jika skala => 7 dan =< 9, maka: VARCHAR (37) |
INT1 |
INT2 |
INT2 |
INT2 |
INT4 |
INT4 |
INT8 |
INT8 |
NUMERIC |
Jika skala => 0 dan =< 37, maka: NUMERIC (p,s) Jika skala => 38 dan =< 127, maka: VARCHAR (Length) |
REAL4 |
FLOAT4 |
REAL8 |
FLOAT8 |
STRING |
Jika panjangnya 1-65.535, gunakan VARCHAR (length in bytes) Jika panjangnya 65.536-2.147.483.647, maka gunakan VARCHAR (65535) |
UINT1 |
INT2 |
UINT2 |
INT2 |
UINT4 |
INT4 |
UINT8 |
NUMERIC (20,0) |
WSTRING |
Jika panjangnya 1-65.535, gunakan NVARCHAR (length in bytes) Jika panjangnya 65.536-2.147.483.647, gunakan NVARCHAR (65535) |
BLOB |
VARCHAR (maximum LOB size *2) Ukuran LOB maksimum tidak dapat melebihi 31 KB. Amazon Redshift tidak mendukung VARCHARs lebih dari 64 KB. |
NCLOB |
NVARCHAR (maximum LOB size) Ukuran LOB maksimum tidak dapat melebihi 63 KB. Amazon Redshift tidak mendukung VARCHARs lebih dari 64 KB. |
CLOB |
VARCHAR (maximum LOB size) Ukuran LOB maksimum tidak dapat melebihi 63 KB. Amazon Redshift tidak mendukung VARCHARs lebih dari 64 KB. |
Menggunakan AWS DMS Amazon Redshift Serverless sebagai Target
AWS DMS mendukung penggunaan Amazon Redshift Serverless sebagai titik akhir target. Untuk informasi tentang menggunakan Amazon Redshift Tanpa Server, lihat Amazon Redshift Tanpa Server di Panduan Manajemen Pergeseran Merah Amazon.
Topik ini menjelaskan cara menggunakan titik akhir Amazon Redshift Tanpa Server dengan. AWS DMS
catatan
Saat membuat titik akhir Amazon Redshift Tanpa Server, untuk DatabaseNamebidang konfigurasi RedshiftSettingstitik akhir Anda, gunakan nama gudang data Amazon Redshift atau nama titik akhir grup kerja. Untuk ServerNamebidang, gunakan nilai untuk Endpoint yang ditampilkan di halaman Workgroup untuk klaster tanpa server (misalnya,). default-workgroup.093291321484.us-east-1.redshift-serverless.amazonaws.com
Untuk informasi tentang membuat titik akhir, lihatMembuat titik akhir sumber dan target. Untuk informasi tentang titik akhir workgroup, lihat Menyambung ke Amazon Redshift Tanpa Server.
Kebijakan Kepercayaan dengan Amazon Redshift Serverless sebagai target
Saat menggunakan Amazon Redshift Tanpa Server sebagai titik akhir target, Anda harus menambahkan bagian yang disorot berikut ke kebijakan kepercayaan Anda. Kebijakan kepercayaan ini melekat pada dms-access-for-endpoint
peran.
{ "PolicyVersion": { "CreateDate": "2016-05-23T16:29:57Z", "VersionId": "v3", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:service:region:account:resourcetype/id", "Effect": "Allow" }
, { "Sid": "", "Effect": "Allow", "Principal": { "Service": "redshift-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" }
] }, "IsDefaultVersion": true } }
Untuk informasi selengkapnya tentang menggunakan kebijakan kepercayaan dengan AWS DMS, lihatMembuat IAM peran untuk digunakan dengan AWS DMS.
Keterbatasan saat menggunakan Amazon Redshift Serverless sebagai target
Menggunakan Redshift Tanpa Server sebagai target memiliki batasan sebagai berikut:
AWS DMS hanya mendukung Amazon Redshift Serverless sebagai titik akhir di wilayah yang mendukung Amazon Redshift Tanpa Server. Untuk informasi tentang wilayah mana yang mendukung Amazon Redshift Serverless, lihat Redshift Serverless API di titik akhir Amazon Redshiftdan topik kuota di Referensi Umum.AWS
Saat menggunakan Perutean VPC yang Ditingkatkan, pastikan Anda membuat endpoint Amazon S3 di VPC yang sama dengan cluster Redshift Serverless atau Redshift Provisioned Anda. Untuk informasi selengkapnya, lihat Menggunakan perutean VPC yang disempurnakan dengan Amazon Redshift sebagai target AWS Database Migration Service.