

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan database Amazon Redshift sebagai target AWS Database Migration Service
<a name="CHAP_Target.Redshift"></a>

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 TargetAmazon Redshift Tanpa Server](#CHAP_Target.Redshift.RSServerless) 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 peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

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: 

**Topics**
+ [Prasyarat untuk menggunakan database Amazon Redshift sebagai target AWS Database Migration Service](#CHAP_Target.Redshift.Prerequisites)
+ [Hak yang diperlukan untuk menggunakan Redshift sebagai target](#CHAP_Target.Redshift.Privileges)
+ [Batasan dalam menggunakan Amazon Redshift sebagai target AWS Database Migration Service](#CHAP_Target.Redshift.Limitations)
+ [Mengonfigurasi database Amazon Redshift sebagai target AWS Database Migration Service](#CHAP_Target.Redshift.Configuration)
+ [Menggunakan perutean VPC yang disempurnakan dengan Amazon Redshift sebagai target AWS Database Migration Service](#CHAP_Target.Redshift.EnhancedVPC)
+ [Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift](#CHAP_Target.Redshift.KMSKeys)
+ [Pengaturan titik akhir saat menggunakan Amazon Redshift sebagai target AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib)
+ [Menggunakan kunci enkripsi data, dan bucket Amazon S3 sebagai penyimpanan perantara](#CHAP_Target.Redshift.EndpointSettings)
+ [Pengaturan tugas multithreaded untuk Amazon Redshift](#CHAP_Target.Redshift.ParallelApply)
+ [Tipe data target untuk Amazon Redshift](#CHAP_Target.Redshift.DataTypes)
+ [Menggunakan AWS DMS Amazon Redshift Serverless sebagai Target](#CHAP_Target.Redshift.RSServerless)

## Prasyarat untuk menggunakan database Amazon Redshift sebagai target AWS Database Migration Service
<a name="CHAP_Target.Redshift.Prerequisites"></a>

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 peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole). 
+ AWS DMS mengonversi BLOBs, CLOBs, dan NCLOBs ke VARCHAR pada instans 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 [BatchApplyEnabled](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)ke `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. 
+ Ketika Keamanan Tingkat Baris diaktifkan pada tabel di Redshift, Anda harus memberikan izin yang sesuai untuk semua pengguna DMS Anda.

## Hak yang diperlukan untuk menggunakan Redshift sebagai target
<a name="CHAP_Target.Redshift.Privileges"></a>

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](https://docs.aws.amazon.com//redshift/latest/dg/r_GRANT.html) 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
<a name="CHAP_Target.Redshift.Limitations"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) penyimpanan. Untuk menghapus versi objek S3, lihat [Menghapus versi objek dari bucket berkemampuan versi](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjectVersions.html).
+ DDL berikut ini tidak didukung:

  ```
  ALTER TABLE table name MODIFY COLUMN column name data type;
  ```
+  AWS DMS tidak dapat memigrasi atau mereplikasi perubahan ke skema dengan nama yang dimulai dengan garis bawah (\$1). 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](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) 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 kustom saat mengonfigurasi titik akhir untuk klaster Redshift, dan Anda perlu menggunakan nama DNS yang disediakan Amazon. Karena klaster Amazon Redshift harus berada di AWS akun dan Wilayah yang sama dengan instance replikasi, validasi gagal jika Anda menggunakan titik akhir DNS kustom.
+ 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](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html) *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.
+ Pemotongan partisi tidak didukung selama replikasi CDC dari sumber Oracle ke target Redshift.
+ Rekaman duplikat mungkin muncul di tabel target karena Amazon Redshift tidak menerapkan kunci utama dan AWS DMS dapat memutar ulang CDC saat tugas dilanjutkan. Untuk mencegah duplikat, gunakan `ApplyErrorInsertPolicy=INSERT_RECORD` pengaturan. Untuk informasi selengkapnya, lihat [Penanganan kesalahan pengaturan tugas](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md). Atau, Anda dapat menerapkan deteksi duplikat tingkat aplikasi dan prosedur pembersihan pasca-migrasi.

## Mengonfigurasi database Amazon Redshift sebagai target AWS Database Migration Service
<a name="CHAP_Target.Redshift.Configuration"></a>

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](#CHAP_Target.Redshift.ConnectionAttrib).

## Menggunakan perutean VPC yang disempurnakan dengan Amazon Redshift sebagai target AWS Database Migration Service
<a name="CHAP_Target.Redshift.EnhancedVPC"></a>

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:

1. AWS DMS menyalin data dari sumber ke file.csv di server replikasi.

1. AWS DMS menggunakan AWS SDK untuk menyalin file.csv ke dalam bucket S3 di akun Anda.

1. 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 di 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](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) dalam dokumentasi Amazon Redshift. 

## Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift
<a name="CHAP_Target.Redshift.KMSKeys"></a>

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, `your-kms-key-ARN` 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](#CHAP_Target.Redshift.EndpointSettings).
+ Tetapkan atribut koneksi tambahan `encryptionMode` ke nilai `SSE_KMS` dan atribut koneksi tambahan `serverSideEncryptionKmsKeyId` ke ARN untuk kunci KMS Anda. Untuk informasi selengkapnya, lihat [Pengaturan titik akhir saat menggunakan Amazon Redshift sebagai target AWS DMS](#CHAP_Target.Redshift.ConnectionAttrib).

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**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**. Halaman **Peran** terbuka.

1. Pilih **Buat peran**. Halaman **Buat peran** terbuka.

1. Pilih **Layanan AWS ** sebagai entitas terpercaya, pilih **DMS** sebagai layanan untuk menggunakan peran.

1. Pilih **Berikutnya: Izin**. Halaman **Lampirkan kebijakan izin** akan muncul.

1. Cari dan pilih `AmazonDMSRedshiftS3Role` kebijakan.

1. Pilih **Berikutnya: Penandaan**. Halaman **Tambahkan penandaan** akan muncul. Di sini, Anda dapat menambahkan tanda apa pun yang Anda inginkan.

1. Pilih **Berikutnya: Tinjauan** dan lihat hasil yang dikeluarkan.

1. 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, lihat[Menyetel kunci enkripsi dan menentukan izin AWS KMS](CHAP_Security.md#CHAP_Security.EncryptionKey).

1. Masuk ke Konsol Manajemen AWS dan buka konsol AWS Key Management Service (AWS KMS) di [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.

1. Di panel navigasi, pilih **Kunci yang dikelola pelanggan**.

1. Pilih **Buat kunci**. Halaman **Konfigurasi kunci** terbuka.

1. 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.

1. Pilih **Pilihan lanjutan**. Untuk **Asal material kunci**, pastikan bahwa **KMS** dipilih, lalu pilih **Selanjutnya**. Halaman **Tambahkan label** terbuka.

1. Untuk **Buat alias dan deskripsi**, masukkan alias untuk kunci (misalnya, `DMS-Redshift-endpoint-encryption-key`) dan keterangan tambahan apa pun.

1. 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.

1. Tambahkan pengguna dan peran yang Anda inginkan untuk mengelola kunci. Pastikan bahwa pengguna dan peran ini memiliki izin yang diperlukan untuk mengelola kunci. 

1. 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.

1. 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`).

1. 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 **Meninjau dan mengedit kebijakan kunci** terbuka dan menampilkan JSON untuk kebijakan kunci yang dapat Anda tinjau dan edit dengan mengetik ke JSON yang ada. Di sini, Anda dapat melihat tempat kebijakan kunci mereferensikan peran dan pengguna (misalnya, `Admin` dan `User1`) 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.

------
#### [ JSON ]

****  

   ```
   {
       "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
                   }
               }
           }
       ]
   }
   ```

------

1. 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
<a name="CHAP_Target.Redshift.ConnectionAttrib"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--redshift-settings '{"EndpointSetting": "value", ...}'` JSON.

Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan Amazon Redshift sebagai target.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/dms/latest/userguide/CHAP_Target.Redshift.html)

## Menggunakan kunci enkripsi data, dan bucket Amazon S3 sebagai penyimpanan perantara
<a name="CHAP_Target.Redshift.EndpointSettings"></a>

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
<a name="CHAP_Target.Redshift.EndpointSettings.KMSkeys"></a>

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 --password your-password 
--server-name your-server-name --port 5439 --database-name your-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 --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"EncryptionMode": "SSE_S3"}'
```

Untuk informasi selengkapnya tentang bekerja dengan enkripsi sisi server S3, lihat [Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) 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 ada dari `SSE_KMS` ke `SSE_S3`. Tapi Anda tidak dapat mengubah nilai `EncryptionMode` dari `SSE_S3` ke `SSE_KMS`.

### Pengaturan bucket Amazon S3
<a name="CHAP_Target.Redshift.EndpointSettings.S3Buckets"></a>

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](#CHAP_Target.Redshift.EndpointSettings.KMSkeys) 

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 pada `AmazonDMSRedshiftS3Role` kebijakan, nilai ini harus memiliki awalan`dms-`, 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 kebijakan `AmazonDMSRedshiftS3Role`. 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](#CHAP_Target.Redshift.KMSKeys).
**catatan**  
Jika Anda menetapkan ARN dari IAM role yang berbeda menggunakan pilihan`--service-access-role-arn` dari perintah `create-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 --password your-password 
--server-name your-server-name --port 5439 --database-name your-db-name 
--redshift-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", 
"BucketName": "your-bucket-name", "BucketFolder": "your-bucket-folder-name"}'
```

## Pengaturan tugas multithreaded untuk Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply"></a>

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
<a name="CHAP_Target.Redshift.ParallelApply.FullLoad"></a>

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](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

  Anda dapat menggunakan `enableParallelBatchInMemoryCSVFiles` atribut yang disetel `false` saat menggunakan pengaturan `ParallelLoadThreads` tugas. Atribut meningkatkan kinerja tugas beban penuh multithreaded yang lebih besar dengan meminta DMS menulis ke disk, bukan memori. Nilai default-nya adalah `true`.
+ `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 yang 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 [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)di *Referensi AWS Database Migration Service API*

### Pengaturan tugas CDC multithreaded untuk Amazon Redshift
<a name="CHAP_Target.Redshift.ParallelApply.CDC"></a>

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 jumlah `ParallelApplyThreads`.

**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](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).

**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
<a name="CHAP_Target.Redshift.DataTypes"></a>

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, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


| 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 \$12)  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
<a name="CHAP_Target.Redshift.RSServerless"></a>

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](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html).](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html)

Topik ini menjelaskan cara menggunakan titik akhir Amazon Redshift Tanpa Server dengan. AWS DMS

**catatan**  
Saat membuat titik akhir Amazon Redshift Tanpa Server, untuk **DatabaseName**bidang konfigurasi [RedshiftSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_RedshiftSettings.html)titik akhir Anda, gunakan nama gudang data Amazon Redshift atau nama titik akhir grup kerja. Untuk **ServerName**bidang, 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, lihat[Membuat titik akhir sumber dan target](CHAP_Endpoints.Creating.md). Untuk informasi tentang titik akhir workgroup, lihat [Menyambung ke Amazon Redshift Tanpa Server](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html).

### Kebijakan Kepercayaan dengan Amazon Redshift Serverless sebagai target
<a name="CHAP_Target.Redshift.RSServerless.policy"></a>

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.

Untuk informasi selengkapnya tentang menggunakan kebijakan kepercayaan dengan AWS DMS, lihat[Membuat peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

### Keterbatasan saat menggunakan Amazon Redshift Serverless sebagai target
<a name="CHAP_Target.Redshift.RSServerless.Limitations"></a>

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 Redshift**[dan topik kuota di Referensi](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) Umum.AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html)
+ 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](#CHAP_Target.Redshift.EnhancedVPC).
+ AWS DMS tidak mendukung Enhanced Throughput untuk Amazon Redshift Serverless sebagai target. Untuk informasi selengkapnya, lihat [Throughput yang Ditingkatkan untuk Oracle Beban Penuh ke Amazon Redshift dan Migrasi Amazon S3](CHAP_Serverless.Components.md#CHAP_Serverless.Throughput).
+ AWS DMS tidak mendukung koneksi ke Amazon Redshift Redshift Serverless saat mode SSL disetel ke. `verify-full` Untuk koneksi yang memerlukan verifikasi SSL ke target Amazon Redshift Tanpa Server, gunakan mode SSL alternatif seperti atau. `require` `verify-ca`