Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Saat membuat ETL integrasi nol Amazon RDS , Anda menentukan basis data sumber dan gudang data Amazon Redshift target. Anda juga dapat menyesuaikan pengaturan enkripsi dan menambahkan tag. Amazon RDS menciptakan integrasi antara . Setelah integrasi aktif, data apa pun yang Anda masukkan ke dalam database sumber akan direplikasi ke target Amazon Redshift yang dikonfigurasi.
Topik
Prasyarat
Sebelum membuat ETL integrasi nol, Anda harus membuat database sumber dan gudang data Amazon Redshift target. Anda juga harus mengizinkan replikasi ke gudang data dengan menambahkan database sebagai sumber integrasi resmi.
Untuk petunjuk cara menyelesaikan setiap langkah ini, lihat Memulai ETL integrasi nol Amazon RDS dengan Amazon Redshift.
Izin yang diperlukan
IAMIzin tertentu diperlukan untuk membuat ETL integrasi nol. Setidaknya, Anda memerlukan izin untuk melakukan tindakan berikut:
Buat nol- ETL integrasi untuk RDSdatabase sumber .
Lihat dan hapus semua nol- ETL integrasi.
Buat integrasi masuk ke gudang data target. Anda tidak memerlukan izin ini jika akun yang sama memiliki gudang data Amazon Redshift dan akun ini merupakan prinsipal yang diotorisasi untuk gudang data tersebut. Untuk informasi tentang menambahkan prinsipal resmi, lihat Mengonfigurasi otorisasi untuk gudang data Amazon Redshift Anda.
Contoh kebijakan berikut menunjukkan izin hak akses paling rendah yang diperlukan untuk membuat dan mengelola integrasi. Anda mungkin tidak memerlukan izin persis ini jika pengguna atau peran Anda memiliki izin yang lebih luas, seperti kebijakan terkelola AdministratorAccess
.
catatan
Redshift Amazon Resource Names (ARNs) memiliki format berikut. Perhatikan penggunaan garis miring ke depan(/
) daripada titik dua (:
) sebelum namespace tanpa server. UUID
-
Klaster terprovisi –
arn:aws:redshift:{region}:{account-id}:namespace:
namespace-uuid
-
Nirserver –
arn:aws:redshift-serverless:{region}:{account-id}:namespace/
namespace-uuid
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"rds:CreateIntegration"
],
"Resource": [
"arn:aws:rds:{region}
:{account-id}
:db:source-db
",
"arn:aws:rds:{region}
:{account-id}
:integration:*"
]
},
{
"Effect": "Allow",
"Action": [
"rds:DescribeIntegrations"
],
"Resource": ["*"]
},
{
"Effect": "Allow",
"Action": [
"rds:DeleteIntegration",
"rds:ModifyIntegration"
],
"Resource": [
"arn:aws:rds:{region}
:{account-id}
:integration:*"
]
},
{
"Effect": "Allow",
"Action": [
"redshift:CreateInboundIntegration"
],
"Resource": [
"arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
"
]
}]
}
Memilih gudang data target di akun yang berbeda
Jika Anda berencana untuk menentukan gudang data Amazon Redshift target yang ada di gudang lain Akun AWS, Anda harus membuat peran yang memungkinkan pengguna di akun saat ini mengakses sumber daya di akun target. Untuk informasi selengkapnya, lihat Menyediakan akses ke IAM pengguna lain Akun AWS yang Anda miliki.
Peran harus memiliki izin berikut, yang memungkinkan pengguna melihat klaster terprovisi Amazon Redshift dan ruang nama Redshift Nirserver di akun target.
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"redshift:DescribeClusters",
"redshift-serverless:ListNamespaces"
],
"Resource":[
"*"
]
}
]
}
Peran harus memiliki kebijakan kepercayaan berikut ini, yang menentukan ID akun target.
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS": "arn:aws:iam::{external-account-id}
:root"
},
"Action":"sts:AssumeRole"
}
]
}
Untuk petunjuk cara membuat peran, lihat Membuat peran menggunakan kebijakan kepercayaan kustom.
Membuat nol- ETL integrasi
Anda dapat membuat integrasi nol ETL integrasi menggunakan AWS Management Console, the AWS CLI, atau. RDS API
Secara default, RDS untuk My SQL segera membersihkan file log biner. Karena ETL integrasi nol bergantung pada log biner untuk mereplikasi data dari sumber ke target, periode retensi untuk database sumber harus setidaknya satu jam. Segera setelah Anda membuat integrasi, Amazon RDS memeriksa periode penyimpanan file log biner untuk database sumber yang dipilih. Jika nilai saat ini adalah 0 jam, Amazon RDS secara otomatis mengubahnya menjadi 1 jam. Jika tidak, nilainya tetap sama.
Untuk membuat ETL integrasi nol
Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. -
Di panel navigasi kiri, pilih Nol- ETL integrasi.
-
Pilih Buat nol- ETL integrasi.
-
Untuk Pengidentifikasi integrasi, masukkan nama untuk integrasi. Nama dapat memiliki maksimal 63 karakter alfanumerik dan dapat menyertakan tanda hubung.
-
Pilih Berikutnya.
Untuk Sumber, pilih RDSdatabase tempat data akan berasal.
catatan
RDSmemberi tahu Anda jika parameter DB tidak dikonfigurasi dengan benar. Jika Anda menerima pesan ini, Anda dapat memilih Perbaiki untuk saya, atau mengonfigurasinya secara manual. Untuk petunjuk cara memperbaikinya secara manual, lihat Langkah 1: Buat grup parameter DB kustom.
Memodifikasi parameter DB membutuhkan boot ulang. Sebelum Anda dapat membuat integrasi, reboot harus lengkap dan nilai parameter baru harus berhasil diterapkan ke database.
-
Setelah basis data sumber Anda berhasil dikonfigurasi, pilih Berikutnya.
Untuk Target, lakukan hal berikut:
(Opsional) Untuk menggunakan target Amazon Redshift yang berbeda Akun AWS , pilih Tentukan akun yang berbeda. Kemudian, masukkan ARN IAM peran dengan izin untuk menampilkan gudang data Anda. Untuk instruksi untuk membuat IAM peran, lihatMemilih gudang data target di akun yang berbeda.
Anda dapat memilih klaster Amazon Redshift terprovisi atau ruang nama Redshift Nirserver sebagai target.
catatan
RDSmemberi tahu Anda jika kebijakan sumber daya atau pengaturan sensitivitas kasus untuk gudang data yang ditentukan tidak dikonfigurasi dengan benar. Jika Anda menerima pesan ini, Anda dapat memilih Perbaiki untuk saya, atau mengonfigurasinya secara manual. Untuk petunjuk cara memperbaikinya secara manual, lihat Mengaktifkan kepekaan huruf besar/kecil untuk gudang data Anda dan Mengonfigurasi otorisasi untuk gudang data Anda dalam Panduan Manajemen Amazon Redshift.
Modifikasi kepekaan huruf besar/kecil untuk klaster Redshift terprovisi memerlukan boot ulang. Sebelum Anda dapat membuat integrasi, boot ulang harus selesai dan nilai parameter baru harus berhasil diterapkan ke klaster.
Jika sumber dan target yang Anda pilih berbeda Akun AWS, maka Amazon RDS tidak dapat memperbaiki pengaturan ini untuk Anda. Anda harus menavigasi ke akun lain dan memperbaikinya secara manual di Amazon Redshift.
-
Setelah gudang data target Anda dikonfigurasi dengan benar, pilih Berikutnya.
-
(Opsional) Untuk Tag, tambahkan satu atau beberapa tag ke integrasi. Untuk informasi selengkapnya, lihat Menandai sumber Amazon RDS.
-
Untuk Enkripsi, tentukan cara enkripsi integrasi Anda. Secara default, RDS mengenkripsi semua integrasi dengan file. Kunci milik AWS Untuk memilih kunci yang dikelola pelanggan, aktifkan Sesuaikan pengaturan enkripsi dan pilih KMS kunci yang akan digunakan untuk enkripsi. Untuk informasi selengkapnya, lihat Mengenkripsi sumber daya Amazon RDS Amazon.
Secara opsional, tambahkan konteks enkripsi. Untuk informasi lebih lanjut, lihat Konteks enkripsi di Panduan Developer AWS Key Management Service .
catatan
Amazon RDS menambahkan pasangan konteks enkripsi berikut selain yang Anda tambahkan:
-
aws:redshift:integration:arn
-IntegrationArn
-
aws:servicename:id
-Redshift
Ini mengurangi jumlah keseluruhan pasangan yang dapat Anda tambahkan dari 8 menjadi 6, dan berkontribusi pada batas karakter keseluruhan dari batasan hibah. Untuk informasi selengkapnya, lihat Menggunakan batasan hibah di Panduan Pengembang.AWS Key Management Service
-
-
Pilih Berikutnya.
Tinjau pengaturan integrasi Anda dan pilih Buat ETL integrasi nol.
Jika pembuatan gagal, lihat Saya tidak dapat membuat ETL integrasi nol untuk langkah-langkah pemecahan masalah.
Integrasi memiliki status Creating
ketika sedang dibuat dan gudang data Amazon Redshift target memiliki status Modifying
. Selama waktu ini, Anda tidak dapat mengueri gudang data atau membuat perubahan konfigurasi apa pun di dalamnya.
Ketika integrasi berhasil dibuat, status integrasi dan gudang data Amazon Redshift target berubah menjadi Active
.
Untuk membuat ETL integrasi nol menggunakan AWS CLI, gunakan perintah create-integration dengan opsi berikut:
-
--integration-name
– Tentukan nama untuk integrasi. -
--source-arn
— Tentukan ARN RDSdatabase yang akan menjadi sumber untuk integrasi. -
--target-arn
— Tentukan ARN gudang data Amazon Redshift yang akan menjadi target integrasi.
Untuk Linux, macOS, atau Unix:
aws rds create-integration \ --integration-name
my-integration
\ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
\ --target-arn arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
Untuk Windows:
aws rds create-integration ^ --integration-name
my-integration
^ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
^ --target-arn arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
Untuk membuat ETL integrasi nol dengan menggunakan Amazon RDSAPI, gunakan CreateIntegration
operasi dengan parameter berikut:
-
IntegrationName
– Tentukan nama untuk integrasi. -
SourceArn
— Tentukan ARN RDSdatabase yang akan menjadi sumber untuk integrasi. -
TargetArn
— Tentukan ARN gudang data Amazon Redshift yang akan menjadi target integrasi.
Mengenkripsi integrasi dengan kunci yang dikelola pelanggan
Jika Anda menentukan KMS kunci kustom dan bukan Kunci milik AWS saat Anda membuat integrasi, kebijakan kunci harus menyediakan akses utama layanan Amazon Redshift ke tindakan tersebutCreateGrant
. Selain itu, harus memungkinkan pengguna saat ini untuk melakukan CreateGrant
tindakan DescribeKey
dan tindakan.
Kebijakan contoh berikut menunjukkan cara memberikan izin yang diperlukan dalam kebijakan utama. Ini termasuk kunci konteks untuk lebih mengurangi ruang lingkup izin.
{
"Version": "2012-10-17",
"Id": "Key policy",
"Statement": [
{
"Sid": "Enables IAM user permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{account-ID}
:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allows the Redshift service principal to add a grant to a KMS key",
"Effect": "Allow",
"Principal": {
"Service": "redshift.amazonaws.com"
},
"Action": "kms:CreateGrant",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:{context-key}
":"{context-value}
"
},
"ForAllValues:StringEquals": {
"kms:GrantOperations": [
"Decrypt",
"GenerateDataKey",
"CreateGrant"
]
}
}
},
{
"Sid": "Allows the current user or role to add a grant to a KMS key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{account-ID}
:role/{role-name}
"
},
"Action": "kms:CreateGrant",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:{context-key}
":"{context-value}
",
"kms:ViaService": "rds.us-east-1.amazonaws.com"
},
"ForAllValues:StringEquals": {
"kms:GrantOperations": [
"Decrypt",
"GenerateDataKey",
"CreateGrant"
]
}
}
},
{
"Sid": "Allows the current uer or role to retrieve information about a KMS key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{account-ID}
:role/{role-name}
"
},
"Action": "kms:DescribeKey",
"Resource": "*"
}
]
}
Untuk informasi selengkapnya, lihat Membuat kebijakan kunci di Panduan Developer AWS Key Management Service .
Langkah selanjutnya
Setelah berhasil membuat ETL integrasi nol, Anda harus membuat database tujuan dalam klaster atau grup kerja Amazon Redshift target Anda. Kemudian, Anda dapat mulai menambahkan data ke RDSdatabase sumber dan menanyakannya di Amazon Redshift. Untuk petunjuknya, lihat Membuat basis data tujuan di Amazon Redshift.