Menggunakan Amazon S3 sebagai target AWS Database Migration Service - AWS Layanan Migrasi Database

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

Menggunakan Amazon S3 sebagai target AWS Database Migration Service

Anda dapat memigrasikan data ke Amazon S3 AWS DMS menggunakan dari salah satu sumber database yang didukung. Saat menggunakan Amazon S3 sebagai target dalam AWS DMS tugas, data full load dan change data capture (CDC) ditulis ke format comma-separated value (.csv) secara default. Untuk penyimpanan yang lebih ringkas dan pilihan kueri yang lebih cepat, Anda juga memiliki pilihan untuk membuat data ditulis ke format Apache Parquet (.parquet).

AWS DMS nama file yang dibuat selama pemuatan penuh menggunakan penghitung heksadesimal inkremental—misalnya LOAD00001.csv, LOAD00002..., LOAD00009, LOAD0000A, dan seterusnya untuk file.csv. AWS DMS nama file CDC menggunakan stempel waktu, misalnya 20141029-1134010000.csv. Untuk setiap tabel sumber yang berisi catatan, AWS DMS buat folder di bawah folder target yang ditentukan (jika tabel sumber tidak kosong). AWS DMS menulis semua beban penuh dan file CDC ke bucket Amazon S3 yang ditentukan. Anda dapat mengontrol ukuran file yang AWS DMS dibuat dengan menggunakan pengaturan MaxFileSizeendpoint.

Parameter bucketFolder berisi lokasi di mana file .csv atau .parquet disimpan sebelum diunggah ke bucket S3. Dengan file .csv, data tabel disimpan dalam format berikut dalam bucket S3, ditampilkan dengan file beban penuh.

database_schema_name/table_name/LOAD00000001.csv database_schema_name/table_name/LOAD00000002.csv ... database_schema_name/table_name/LOAD00000009.csv database_schema_name/table_name/LOAD0000000A.csv database_schema_name/table_name/LOAD0000000B.csv ...database_schema_name/table_name/LOAD0000000F.csv database_schema_name/table_name/LOAD00000010.csv ...

Anda dapat menentukan delimiter kolom, delimiter baru, dan parameter lainnya menggunakan atribut koneksi tambahan. Untuk informasi lebih lanjut tentang atribut koneksi tambahan, lihat Pengaturan titik akhir saat menggunakan Amazon S3 sebagai target AWS DMS pada akhir bagian ini.

Anda dapat menentukan pemilik bucket dan mencegah sniping dengan menggunakan setelan endpoint ExpectedBucketOwner Amazon S3, seperti yang ditunjukkan berikut ini. Kemudian, saat Anda membuat permintaan untuk menguji koneksi atau melakukan migrasi, S3 memeriksa ID akun pemilik bucket terhadap parameter yang ditentukan.

--s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'

Saat Anda menggunakan AWS DMS untuk mereplikasi perubahan data menggunakan tugas CDC, kolom pertama dari file keluaran.csv atau.parquet menunjukkan bagaimana data baris diubah seperti yang ditunjukkan untuk file.csv berikut.

I,101,Smith,Bob,4-Jun-14,New York U,101,Smith,Bob,8-Oct-15,Los Angeles U,101,Smith,Bob,13-Mar-17,Dallas D,101,Smith,Bob,13-Mar-17,Dallas

Untuk contoh ini, anggaplah ada EMPLOYEE tabel di database sumber. AWS DMS menulis data ke file.csv atau .parquet, sebagai tanggapan atas peristiwa berikut:

  • Seorang karyawan baru (Bob Smith, ID karyawan 101) dipekerjakan pada 4-Jun-14 di kantor New York. Dalam file .csv atau .parquet, I di kolom pertama menunjukkan bahwa baris baru diINSERTkan ke tabel EMPLOYEE di basis data sumber.

  • Pada 8-Okt-15, Bob pindah ke kantor Los Angeles. Dalam file .csv atau .parquet, U menunjukkan bahwa baris yang sesuai dalam tabel EMPLOYEE diUPDATE untuk mencerminkan lokasi kantor Bob yang baru. Sisa barisan mencerminkan baris dalam tabel EMPLOYEE seperti yang muncul setelah UPDATE.

  • Pada 13-Mar-17, Bob ditransfer lagi ke kantor Dallas. Dalam file .csv atau .parquet, U menunjukkan bahwa baris ini diUPDATE lagi. Sisa barisan mencerminkan baris dalam tabel EMPLOYEE seperti yang muncul setelah UPDATE.

  • Setelah beberapa waktu bekerja di Dallas, Bob meninggalkan perusahaan. Dalam file .csv atau .parquet, D menunjukkan bahwa baris ini diDELETEkan di tabel sumber. Sisa barisan mencerminkan bagaiman tampilan baris dalam tabel EMPLOYEE sebelum data baris dihapus.

Perhatikan bahwa secara default untuk CDC, AWS DMS menyimpan perubahan baris untuk setiap tabel database tanpa memperhatikan urutan transaksi. Jika Anda ingin menyimpan perubahan baris dalam file CDC sesuai urutan transaksi, Anda harus menggunakan pengaturan titik akhir S3 untuk menentukan hal ini dan jalur folder di mana Anda ingin file transaksi CDC disimpan pada target S3. Untuk informasi lebih lanjut, lihat Perubahan pengambilan data (CDC) termasuk transaksi order pada target S3.

Untuk mengontrol frekuensi menulis ke target Amazon S3 selama tugas replikasi data, Anda dapat mengonfigurasi atribut koneksi tambahan cdcMaxBatchInterval dan cdcMinFileSize. Hal ini dapat menghasilkan performa yang lebih baik ketika menganalisis data tanpa operasi overhead tambahan. Untuk informasi lebih lanjut, lihat Pengaturan titik akhir saat menggunakan Amazon S3 sebagai target AWS DMS

Prasyarat penggunaan Amazon S3 sebagai target

Sebelum menggunakan Amazon S3 sebagai target, pastikan bahwa hal berikut ini benar:

  • Bucket S3 yang Anda gunakan sebagai target berada di AWS Wilayah yang sama dengan instance replikasi DMS yang Anda gunakan untuk memigrasikan data Anda.

  • AWS Akun yang Anda gunakan untuk migrasi memiliki peran IAM dengan akses tulis dan hapus ke bucket S3 yang Anda gunakan sebagai target.

  • Peran ini memiliki akses penandaan sehingga Anda dapat menandai objek S3 apa pun yang ditulis ke target bucket.

  • IAM role memiliki DMS (dms.amazonaws.com) yang ditambahkan sebagai entitas terpercaya.

  • Untuk AWS DMS versi 3.4.7 dan yang lebih tinggi, DMS harus mengakses bucket sumber melalui titik akhir VPC atau rute umum. Untuk informasi tentang titik akhir VPC, lihat. Mengkonfigurasi titik akhir VPC sebagaiAWSSumber DMS dan titik akhir target

Untuk mengatur akses akun ini, pastikan peran yang diberikan ke akun pengguna yang digunakan untuk membuat tugas migrasi memiliki serangkaian izin berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::buckettest2/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::buckettest2" ] } ] }

Untuk prasyarat untuk menggunakan validasi dengan S3 sebagai target, lihat. Prasyarat validasi target S3

Keterbatasan penggunaan Amazon S3 sebagai target

Batasan berikut berlaku saat menggunakan Amazon S3 sebagai target:

  • Jangan aktifkan pembuatan versi untuk S3. 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.

  • Bucket S3 berkemampuan VPC (gateway VPC) didukung dalam versi 3.4.7 dan yang lebih tinggi.

  • Perintah bahasa definisi data berikut (DDL) didukung untuk perubahan penangkapan data (CDC): Truncate Table, Drop Table, Create Table, Rename Table, Add Column, Drop Column, Rename Column, dan Change COlumn Data Type. Perhatikan bahwa ketika kolom ditambahkan, dihapus, atau diganti namanya pada database sumber, tidak ada pernyataan ALTER yang direkam dalam bucket S3 target, dan AWS DMS tidak mengubah catatan yang dibuat sebelumnya agar sesuai dengan struktur baru. Setelah perubahan, AWS DMS membuat catatan baru menggunakan struktur tabel baru.

    catatan

    Operasi pemotongan DDL menghapus semua file dan folder tabel yang terkait dari bucket S3. Anda dapat menggunakan pengaturan tugas untuk menonaktifkan perilaku itu dan mengonfigurasi cara DMS menangani perilaku DDL selama pengambilan perubahan data (CDC). Untuk informasi lebih lanjut, lihat Pengaturan tugas untuk DDL penanganan pemrosesan perubahan.

  • Mode LOB penuh tidak didukung.

  • Perubahan pada struktur tabel sumber selama beban penuh tidak didukung. Perubahan data didukung selama beban penuh.

  • Beberapa tugas yang mereplikasi data dari tabel sumber yang sama untuk titik akhir bucket S3 target yang sama, mengakibatkan tugas-tugas itu menulis ke dalam file yang sama. Kami sarankan Anda menentukan titik akhir target yang berbeda (buckets) jika sumber data Anda berasal dari tabel yang sama.

  • BatchApply tidak didukung untuk titik akhir S3. Menggunakan penerapan Batch (misalnya, pengaturan tugas metadata target BatchApplyEnabled) untuk target S3 dapat mengakibatkan hilangnya data.

  • Anda tidak dapat menggunakan DatePartitionEnabled atau addColumnName bersama-sama dengan PreserveTransactions atauCdcPath.

  • AWS DMS tidak mendukung penggantian nama beberapa tabel sumber ke folder target yang sama menggunakan aturan transformasi.

  • Jika ada penulisan intensif ke tabel sumber selama fase beban penuh, DMS dapat menulis catatan duplikat ke bucket S3 atau perubahan cache.

  • Jika Anda mengonfigurasi tugas dengan TargetTablePrepMode ofDO_NOTHING, DMS dapat menulis catatan duplikat ke bucket S3 jika tugas berhenti dan dilanjutkan secara tiba-tiba selama fase pemuatan penuh.

  • Jika Anda mengonfigurasi titik akhir target dengan PreserveTransactions pengaturantrue, memuat ulang tabel tidak akan menghapus file CDC yang dihasilkan sebelumnya. Untuk informasi selengkapnya, lihat Perubahan pengambilan data (CDC) termasuk transaksi order pada target S3.

Untuk batasan penggunaan validasi dengan S3 sebagai target, lihat. Batasan untuk menggunakan validasi target S3

Keamanan

Untuk menggunakan Amazon S3 sebagai target, akun yang digunakan untuk migrasi harus memiliki akses tulis dan hapus terhadap bucket Amazon S3 yang digunakan sebagai target. Tentukan Amazon Resource Name (ARN) dari IAM role yang memiliki izin yang diperlukan untuk mengakses Amazon S3.

AWS DMS mendukung serangkaian hibah yang telah ditentukan untuk Amazon S3, yang dikenal sebagai daftar kontrol akses kaleng (ACL). Setiap ACL terekam memiliki serangkaian penerima dan izin yang dapat Anda gunakan untuk mengatur izin bucket Amazon S3. Anda dapat menentukan ACL terekam menggunakan cannedAclForObjects pada atribut string koneksi untuk titik akhir target S3 Anda. Untuk informasi lebih lanjut tentang penggunaan atribut koneksi tambahan cannedAclForObjects, lihat Pengaturan titik akhir saat menggunakan Amazon S3 sebagai target AWS DMS. Untuk informasi lebih lanjut tentang ACL terekam Amazon S3, lihat ACL Terekam.

IAM role yang Anda gunakan untuk migrasi harus dapat melakukan Operasi API s3:PutObjectAcl.

Menggunakan Apache Parquet untuk menyimpan objek Amazon S3

Format comma-separated value (.csv) adalah format penyimpanan default untuk objek target Amazon S3. Untuk penyimpanan yang lebih ringkas dan kueri lebih cepat, sebagai gantinya Anda bisa menggunakan Apache Parquet (.parquet) sebagai format penyimpanan.

Apache Parquet adalah format penyimpanan file sumber terbuka yang awalnya dirancang untuk Hadoop. Untuk informasi lebih lanjut tentang Apache Parket, lihat https://parquet.apache.org/.

Untuk mengatur .parquet sebagai format penyimpanan untuk objek target S3 dimigrasikan, Anda dapat menggunakan mekanisme berikut:

Penandaan objek Amazon S3

Anda dapat menandai objek Amazon S3 yang dibuat oleh instans replikasi dengan menentukan objek JSON yang sesuai sebagai bagian dari aturan pemetaan tabel tugas. Untuk informasi selengkapnya tentang persyaratan dan opsi untuk penandaan objek S3, termasuk nama tag yang valid, lihat Penandaan objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Untuk informasi lebih lanjut tentang pemetaan tabel menggunakan JSON, lihat Menentukan pemilihan tabel dan transformasi aturan menggunakan JSON.

Anda menandai objek S3 yang dibuat untuk tabel dan skema tertentu dengan menggunakan satu atau lebih objek JSON dari jenis aturan selection. Anda kemudian mengikuti objek selection ini (atau beberapa objek) oleh satu atau lebih objek JSON dari jenis aturan post-processing dengan tindakan add-tag. Aturan pasca-pemrosesan ini mengidentifikasi objek S3 yang ingin Anda, tandai dan menentukan nama dan nilai-nilai tanda yang ingin Anda tambahkan ke objek S3 ini.

Anda dapat menemukan parameter yang akan ditetapkan dalam objek JSON dari tipe aturan post-processing dalam tabel berikut.

Parameter Kemungkinan nilai Deskripsi
rule-type post-processing

Nilai yang menerapkan tindakan pasca pemrosesan untuk objek target yang dihasilkan. Anda dapat menentukan satu atau lebih aturan pasca-pemrosesan untuk menandai objek S3 yang dipilih.

rule-id Nilai numerik. Nilai numerik yang unik untuk mengidentifikasi aturan.
rule-name Nilai alfanumerik. Nama unik untuk mengidentifikasi aturan.
rule-action add-tag Tindakan pasca-pemrosesan yang ingin Anda terapkan ke objek S3. Anda dapat menambahkan satu atau lebih tanda menggunakan satu objek pasca-pemrosesan JSON tindakan add-tag.
object-locator

schema-name – Nama skema tabel.

table-name – Nama tabel.

Nama setiap skema dan tabel tempat aturannya berlaku. Anda dapat menggunakan tanda “%” persen sebagai wildcard untuk semua atau sebagian dari nilai masing-masing parameter object-locator. Dengan demikian, Anda bisa mencocokkan item berikut:

  • Sebuah tabel tunggal dalam skema tunggal

  • Sebuah tabel tunggal di beberapa atau semua skema

  • Beberapa atau semua tabel dalam skema tunggal

  • Beberapa atau semua tabel di beberapa atau semua skema

tag-set

key – Nama apa pun yang valid untuk satu tanda.

value – Nilai JSON apa pun yang valid untuk tanda ini.

Nama dan nilai-nilai untuk satu atau beberapa tanda yang ingin Anda tetapkan pada setiap objek S3 dibuat cocok dengan yang ditentukan object-locator. Anda dapat menentukan hingga 10 pasangan nilai-kunci dalam satu objek parameter tag-set. Untuk informasi selengkapnya tentang penandaan objek S3, lihat Penandaan objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Anda juga dapat menentukan nilai dinamis untuk semua atau sebagian dari nilai untuk parameter key dan value dari tanda menggunakan ${dyn-value}. Di sini, ${dyn-value} dapat berupa ${schema-name} maupun ${table-name}. Sehingga Anda dapat memasukkan nama skema atau tabel yang sedang dipilih atau tabel secara keseluruhan atau bagian mana pun dari nilai parameter.

catatan
penting

Jika Anda memasukkan nilai dinamis untuk parameter key, Anda dapat menghasilkan tanda dengan nama duplikat untuk objek S3, tergantung bagaimana Anda menggunakannya. Dalam kasus ini, hanya satu dari pengaturan tanda duplikat ditambahkan ke objek.

Ketika Anda menentukan beberapa jenis aturan post-processing untuk menandai pilihan objek S3, setiap objek S3 ditandai menggunakan hanya satu objek tag-set dari satu aturan pasca-pemrosesan. Seperangkat tanda tertentu yang digunakan untuk menandai objek S3 yang diberikan adalah yang berasal dari aturan pasca-pemrosesan yang pencari objek terkaitnya paling sesuai dengan objek S3 tersebut.

Misalnya anggaplah bahwa dua aturan pasca-pemrosesan mengidentifikasi objek S3 yang sama. Misalkan juga pencari objek dari satu aturan menggunakan wildcard dan pencari objek dari aturan lain menggunakan exact match untuk mengidentifikasi objek S3 (tanpa wildcard). Dalam hal ini, seperangkat tanda yang terkait dengan aturan pasca-pemrosesan dengan exact match digunakan untuk menandai objek S3. Jika beberapa aturan pasca-pemrosesan cocok dengan objek S3 yang diberikan dengan sama baiknya, seperangkat tanda yang terkait dengan aturan pasca-pemrosesan pertama digunakan untuk menandai objek.

contoh Menambahkan tanda statis ke objek S3 yang dibuat untuk tabel dan skema tunggal

Aturan pemilihan dan pasca-pemrosesan berikut menambahkan tiga tanda (tag_1, tag_2, dan tag_3 dengan nilai statis yang sesuai value_1, value_2, dan value_3) ke objek S3 yang sudah dibuat. Objek S3 ini berkaitan dengan sebuah tabel di sumber bernama STOCK dengan skema bernama aat2.

{ "rules": [ { "rule-type": "selection", "rule-id": "5", "rule-name": "5", "object-locator": { "schema-name": "aat2", "table-name": "STOCK" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "41", "rule-name": "41", "rule-action": "add-tag", "object-locator": { "schema-name": "aat2", "table-name": "STOCK" }, "tag-set": [ { "key": "tag_1", "value": "value_1" }, { "key": "tag_2", "value": "value_2" }, { "key": "tag_3", "value": "value_3" } ] } ] }
contoh Menambahkan tanda statis ke objek S3 yang dibuat untuk beberapa tabel dan skema

Contoh berikut memiliki satu pilihan dan dua aturan pasca-pemrosesan, dengan masukan dari sumber mencakup semua tabel dan semua skema mereka.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "21", "rule-name": "21", "rule-action": "add-tag", "object-locator": { "schema-name": "%", "table-name": "%", }, "tag-set": [ { "key": "dw-schema-name", "value":"${schema-name}" }, { "key": "dw-schema-table", "value": "my_prefix_${table-name}" } ] }, { "rule-type": "post-processing", "rule-id": "41", "rule-name": "41", "rule-action": "add-tag", "object-locator": { "schema-name": "aat", "table-name": "ITEM", }, "tag-set": [ { "key": "tag_1", "value": "value_1" }, { "key": "tag_2", "value": "value_2" } ] } ] }

Aturan pasca-pemrosesan pertama menambahkan dua tanda (dw-schema-name dan dw-schema-table) dengan nilai dinamis yang sesuai (${schema-name} dan my_prefix_${table-name}) untuk hampir semua objek S3 yang dibuat dalam target. Kecuali ketika objek S3 diidentifikasi dan ditandai dengan aturan pasca-pemrosesan kedua. Sehingga setiap objek target S3 yang teridentifikasi oleh pencari objek wildcard dibuat dengan penanda yang mengidentifikasi skema dan tabel yang sesuai dengan sumbernya.

Aturan pasca-pemrosesan kedua menambahkan tag_1 dan tag_2 dengan nilai statis yang sesuai dengan value_1 dan value_2 ke objek S3 yang sudah dibuat yang teridentifikasi oleh pencari objek yang sama persis. Objek S3 yang dibuat ini sesuai dengan tabel tunggal di sumber bernama ITEM dengan skema bernama aat. Karena objek yang sama persis, tanda ini menggantikan tanda apa pun pada objek yang ditambahkan dari aturan pasca-pemrosesan pertama ini, yang membandingkan objek S3 hanya berdasarkan wildcard saja.

contoh Menambahkan nilai maupun nama tanda dinamis ke objek S3

Contoh berikut memiliki dua aturan seleksi dan satu aturan pasca-pemrosesan. Di sini, masukan dari sumber hanya menyertakan tabel ITEM di skema retail atau wholesale.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "retail", "table-name": "ITEM" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "wholesale", "table-name": "ITEM" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "21", "rule-name": "21", "rule-action": "add-tag", "object-locator": { "schema-name": "%", "table-name": "ITEM", }, "tag-set": [ { "key": "dw-schema-name", "value":"${schema-name}" }, { "key": "dw-schema-table", "value": "my_prefix_ITEM" }, { "key": "${schema-name}_ITEM_tag_1", "value": "value_1" }, { "key": "${schema-name}_ITEM_tag_2", "value": "value_2" } ] ] }

Tanda yang ditetapkan untuk aturan pasca-pemrosesan menambahkan dua tanda (dw-schema-name dan dw-schema-table) untuk semua objek S3 yang dibuat untuk tabel ITEM di target. Tanda pertama mempunyai nilai dinamis "${schema-name}" dan tanda kedua memiliki nilai statis, "my_prefix_ITEM". Jadi, setiap objek target S3 dibuat dengan tanda yang mengidentifikasi skema dan tabel yang sesuai dengan sumbernya.

Selain itu, sekolompok tanda menambahkan dua tanda tambahan dengan nama dinamis (${schema-name}_ITEM_tag_1 dan "${schema-name}_ITEM_tag_2"). Tanda Ini memiliki nilai statis yang sesuai value_1 dan value_2. Sehingga penanda ini masing-masing dinamai untuk skema saat ini, retail atau wholesale. Anda tidak dapat membuat salinan penanda nama dinamis dalam objek ini karena setiap objek dibuat untuk satu nama skema unik. Nama skema digunakan untuk membuat nama tanda yang unik.

Membuat AWS KMS kunci untuk mengenkripsi objek target Amazon S3

Anda dapat membuat dan menggunakan AWS KMS kunci khusus untuk mengenkripsi objek target Amazon S3 Anda. Setelah membuat kunci KMS, Anda dapat menggunakannya untuk mengenkripsi objek menggunakan salah satu pendekatan berikut ketika Anda membuat titik akhir target S3:

  • Gunakan pilihan berikut untuk objek target S3 (dengan format penyimpanan file .csv default) ketika Anda menjalankan perintah create-endpoint menggunakan AWS CLI.

    --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "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 selengkapnya, lihat Menggunakan enkripsi data, file parket, dan CDC pada target Amazon S3 Anda.

  • 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 S3 sebagai target AWS DMS.

Untuk mengenkripsi objek target Amazon S3 menggunakan kunci KMS, Anda memerlukan peran IAM yang memiliki izin untuk mengakses bucket Amazon S3. 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:

  • Kebijakan dengan izin untuk mengakses bucket Amazon S3.

  • IAM role dengan kebijakan ini.

  • Kunci enkripsi kunci KMS dengan kebijakan kunci yang mereferensikan peran ini.

Prosedur berikut menjelaskan cara pembuatannya.

Membuat kebijakan IAM dengan izin mengakses bucket Amazon S3
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Kebijakan. Halaman Kebijakan terbuka.

  3. Pilih Buat kebijakan. Halaman Buat kebijakan terbuka.

  4. Pilih Layanan dan pilih S3. Daftar izin tindakan ditampilkan.

  5. Pilih Perluas semua untuk memperluas daftar dan minimal pilih izin berikut:

    • ListBucket

    • PutObject

    • DeleteObject

    Pilih izin lain yang Anda butuhkan, lalu pilih Kolaps semua untuk menutup daftar.

  6. Pilih Sumber Daya Untuk menentukan sumber daya yang ingin Anda akses. Minimal, pilih Semua sumber daya Untuk menyediakan akses sumber daya Amazon S3 secara umum.

  7. Tambahkan kondisi atau izin lain apa pun yang Anda butuhkan, lalu pilih Tinjau kebijakan. Periksa hasil Anda di halaman Tinjau kebijakan.

  8. Jika pengaturannya sudah sesuai kebutuhan Anda, masukkan nama untuk kebijakan (misalnya DMS-S3-endpoint-access), dan berikan deskripsi apa pun, lalu pilih Buat kebijakan. Halaman Kebijakan terbuka dengan pesan yang menunjukkan bahwa kebijakan Anda telah dibuat.

  9. Cari dan pilih nama kebijakan di daftar Kebijakan. Halaman Ringkasan muncul dengan menampilkan JSON untuk kebijakan yang serupa dengan berikut ini.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": "*" } ] }

Anda sekarang telah membuat kebijakan baru untuk mengakses sumber daya Amazon S3 untuk enkripsi dengan nama tertentu, misalnya DMS-S3-endpoint-access.

Membuat IAM role menggunakan kebijakan ini
  1. Di panel navigasi konsol IAM, pilih Peran. Halaman detail Peran terbuka.

  2. Pilih Buat peran. Halaman Buat peran terbuka.

  3. Dengan AWS layanan yang dipilih sebagai entitas tepercaya, pilih DMS sebagai layanan untuk menggunakan peran IAM.

  4. Pilih Berikutnya: Izin. Tampilan Lampirkan kebijakan izin muncul di halaman Buat peran.

  5. Temukan dan pilih kebijakan IAM untuk IAM role yang Anda buat di prosedur sebelumnya (DMS-S3-endpoint-access).

  6. Pilih Berikutnya: Penandaan. Tampilan Tambahkan penandaan muncul di halaman Buat peran. Di sini, Anda dapat menambahkan tanda apa pun yang Anda inginkan.

  7. Pilih Berikutnya: Tinjauan. Tampilan Ulasan muncul di halaman Buat peran. Di sini Anda dapat memverifikasi hasilnya.

  8. Jika pengaturan sudah sesuai dengan kebutuhan Anda, masukkan nama untuk peran (wajib, misalnya, DMS-S3-endpoint-access-role), dan deskripsi tambahan apa pun, lalu pilih Buat peran. Halaman detail Peran terbuka dengan pesan yang menunjukkan bahwa peran Anda telah dibuat.

Anda sekarang telah membuat peran baru untuk mengakses sumber daya Amazon S3 untuk enkripsi dengan nama tertentu, misalnya, DMS-S3-endpoint-access-role.

Untuk membuat kunci enkripsi kunci KMS 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.

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

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

  3. Di panel navigasi, pilih Kunci yang dikelola pelanggan.

  4. Pilih Buat kunci. Halaman Konfigurasi kunci terbuka.

  5. Untuk Tipe Kunci, pilih Simetris.

    catatan

    Saat Anda membuat kunci ini, Anda hanya dapat membuat kunci simetris, karena semua AWS layanan, seperti Amazon S3, hanya berfungsi dengan kunci enkripsi simetris.

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

  7. Untuk Buat alias dan deskripsi, masukkan alias untuk kunci (misalnya, DMS-S3-endpoint-encryption-key) dan keterangan tambahan apa pun.

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

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

  10. Untuk Penghapusan kunci, pilih apakah administrator kunci dapat menghapus kunci, lalu pilih Selanjutnya. Halaman Tentukan izin penggunaan kunci terbuka dengan menampilkan daftar pengguna dan peran tambahan yang dapat Anda pilih.

  11. Untuk Akun ini, pilih pengguna yang tersedia Anda inginkan untuk melakukan operasi kriptografi pada target Amazon S3. Pilih juga peran yang sebelumnya Anda buat di Peran untuk mengaktifkan akses untuk mengenkripsi objek target Amazon S3, misalnya DMS-S3-endpoint-access-role).

  12. Jika Anda ingin menambahkan akun lain yang tidak terdaftar untuk memiliki akses yang sama, untuk AWS Akun lain, pilih Tambahkan 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 dan User1) yang sudah Anda pilih pada langkah sebelumnya. Anda juga dapat melihat tindakan kunci berbeda yang diizinkan untuk principal yang berbeda (pengguna dan peran), seperti yang ditunjukkan pada 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-S3-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-S3-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 } } } ]
  13. Pilih Selesai. Halaman kunci Enkripsi terbuka dengan pesan yang menunjukkan bahwa kunci KMS Anda telah dibuat.

Anda sekarang telah membuat bukti kunci KMS baru dengan nama alias tertentu (misalnya DMS-S3-endpoint-encryption-key). Kunci ini memungkinkan AWS DMS untuk mengenkripsi objek target Amazon S3.

Menggunakan partisi folder berdasarkan tanggal

AWS DMS mendukung partisi folder S3 berdasarkan tanggal komit transaksi saat Anda menggunakan Amazon S3 sebagai titik akhir target Anda. Dengan menggunakan partisi folder berdasarkan tanggal, Anda dapat menulis data dari tabel sumber tunggal ke struktur folder dengan hirarki waktu dalam bucket S3. Dengan partisi folder saat membuat titik akhir target S3, Anda dapat melakukan hal berikut:

  • Mengelola objek S3 Anda dengan lebih baik

  • Membatasi ukuran setiap folder S3

  • Mengoptimalkan kueri danau data atau operasi lain setelahnya

Anda dapat mengaktifkan partisi folder berdasarkan tanggal ketika Anda membuat titik akhir S3. Anda dapat mengaktifkannya ketika memigrasikan data yang ada dan mereplikasi perubahan yang sedang berlangsung (beban penuh + CDC), atau hanya mereplikasi perubahan data (CDC saja). Gunakan pengaturan titik akhir target berikut:

  • DatePartitionEnabled – Menentukan partisi berdasarkan tanggal. Mengatur pilihan Boolean ini ke true untuk partisi folder bucket S3 berdasarkan tanggal melakukan transaksi.

    Anda tidak dapat menggunakan pengaturan ini dengan PreserveTransactions atauCdcPath.

    Nilai default adalah false.

  • DatePartitionSequence – Mengidentifikasi urutan format tanggal yang digunakan selama partisi folder. Tetapkan pilihan ENUM ini ke YYYYMMDD, YYYYMMDDHH, YYYYMM, MMYYYYDD, atau DDMMYYYY. Nilai default adalah YYYYMMDD. Gunakan pengaturan ini saat DatePartitionEnabled diatur ke true.

  • DatePartitionDelimiter – Menentukan pembatas pemisahan tanggal untuk digunakan selama partisi folder. Tetapkan pilihan ENUM ini ke SLASH, DASH, UNDERSCORE, atau NONE. Nilai default adalah SLASH. Gunakan pengaturan ini saat DatePartitionEnabled diatur ke true.

Contoh berikut menunjukkan cara mengaktifkan partisi folder berdasarkan tanggal, dengan nilai default untuk urutan partisi data dan pembatas. Ini menggunakan --s3-settings '{json-settings}' opsi AWS CLI. create-endpointperintah.

--s3-settings '{"DatePartitionEnabled": true,"DatePartitionSequence": "YYYYMMDD","DatePartitionDelimiter": "SLASH"}'

Beban paralel sumber yang dipartisi saat menggunakan Amazon S3 sebagai target AWS DMS

Anda dapat mengonfigurasi beban penuh paralel sumber data yang dipartisi ke target Amazon S3. Pendekatan ini meningkatkan waktu muat untuk memigrasikan data yang dipartisi dari mesin basis data sumber yang didukung ke target S3. Untuk meningkatkan waktu muat data sumber yang dipartisi, Anda membuat subfolder target S3 yang dipetakan ke partisi setiap tabel dalam database sumber. Subfolder terikat partisi ini memungkinkan untuk AWS DMS menjalankan proses paralel untuk mengisi setiap subfolder pada target.

Untuk mengonfigurasi beban penuh paralel dari target S3, S3 mendukung tiga tipe parallel-load aturan untuk table-settings aturan pemetaan tabel:

  • partitions-auto

  • partitions-list

  • ranges

Untuk informasi selengkapnya tentang jenis aturan beban paralel ini, lihat. Tabel dan koleksi pengaturan aturan dan operasi

Untuk tipe partitions-auto dan partitions-list aturan, AWS DMS gunakan setiap nama partisi dari titik akhir sumber untuk mengidentifikasi struktur subfolder target, sebagai berikut.

bucket_name/bucket_folder/database_schema_name/table_name/partition_name/LOADseq_num.csv

Di sini, jalur subfolder tempat data dimigrasikan dan disimpan pada target S3 menyertakan partition_name subfolder tambahan yang sesuai dengan partisi sumber dengan nama yang sama. partition_nameSubfolder ini kemudian menyimpan satu atau lebih LOADseq_num.csv file yang berisi data yang dimigrasikan dari partisi sumber yang ditentukan. Di sini, seq_num adalah postfix nomor urut pada nama file.csv, seperti 00000001 di file.csv dengan nama,. LOAD00000001.csv

Namun, beberapa mesin database, seperti MongoDB dan DocumentDB, tidak memiliki konsep partisi. Untuk mesin database ini, AWS DMS tambahkan indeks segmen sumber berjalan sebagai awalan ke nama file.csv target, sebagai berikut.

.../database_schema_name/table_name/SEGMENT1_LOAD00000001.csv .../database_schema_name/table_name/SEGMENT1_LOAD00000002.csv ... .../database_schema_name/table_name/SEGMENT2_LOAD00000009.csv .../database_schema_name/table_name/SEGMENT3_LOAD0000000A.csv

Di sini, file SEGMENT1_LOAD00000001.csv dan SEGMENT1_LOAD00000002.csv diberi nama dengan awalan indeks segmen sumber berjalan yang sama,SEGMENT1. Mereka dinamai demikian karena data sumber yang dimigrasi untuk dua file.csv ini dikaitkan dengan indeks segmen sumber berjalan yang sama. Di sisi lain, data migrasi yang disimpan di setiap target SEGMENT2_LOAD00000009.csv dan SEGMENT3_LOAD0000000A.csv file dikaitkan dengan indeks segmen sumber berjalan yang berbeda. Setiap file memiliki nama file yang diawali dengan nama indeks segmen yang sedang berjalan, SEGMENT2 danSEGMENT3.

Untuk jenis ranges beban paralel, Anda menentukan nama kolom dan nilai kolom menggunakan columns dan boundaries pengaturan aturan. table-settings Dengan aturan ini, Anda dapat menentukan partisi yang sesuai dengan nama segmen, sebagai berikut.

"parallel-load": { "type": "ranges", "columns": [ "region", "sale" ], "boundaries": [ [ "NORTH", "1000" ], [ "WEST", "3000" ] ], "segment-names": [ "custom_segment1", "custom_segment2", "custom_segment3" ] }

Di sini, segment-names pengaturan mendefinisikan nama untuk tiga partisi untuk memigrasikan data secara paralel pada target S3. Data yang dimigrasi dimuat secara paralel dan disimpan dalam file.csv di bawah subfolder partisi secara berurutan, sebagai berikut.

.../database_schema_name/table_name/custom_segment1/LOAD[00000001...].csv .../database_schema_name/table_name/custom_segment2/LOAD[00000001...].csv .../database_schema_name/table_name/custom_segment3/LOAD[00000001...].csv

Di sini, AWS DMS menyimpan serangkaian file.csv di masing-masing dari tiga subfolder partisi. Rangkaian file.csv di setiap subfolder partisi diberi nama secara bertahap mulai dari LOAD00000001.csv hingga semua data dimigrasikan.

Dalam beberapa kasus, Anda mungkin tidak secara eksplisit memberi nama subfolder partisi untuk jenis ranges beban paralel menggunakan pengaturan. segment-names Dalam hal ini, AWS DMS terapkan default untuk membuat setiap seri file.csv di bawah subfoldernyatable_name. Di sini, AWS DMS awalan nama file dari setiap seri file.csv dengan nama indeks segmen sumber berjalan, sebagai berikut.

.../database_schema_name/table_name/SEGMENT1_LOAD[00000001...].csv .../database_schema_name/table_name/SEGMENT2_LOAD[00000001...].csv .../database_schema_name/table_name/SEGMENT3_LOAD[00000001...].csv ... .../database_schema_name/table_name/SEGMENTZ_LOAD[00000001...].csv

Pengaturan titik akhir saat menggunakan Amazon S3 sebagai target AWS DMS

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data target Amazon S3 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 --s3-settings '{"EndpointSetting": "value", ...}' JSON.

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

Opsi Deskripsi
CsvNullValue

Parameter opsional yang menentukan bagaimana AWS DMS memperlakukan nilai-nilai null. Saat menangani nilai null, Anda dapat menggunakan parameter ini untuk meneruskan string yang ditetapkan pengguna sebagai null saat menulis ke target. Misalnya, ketika kolom target dapat dibatalkan, Anda dapat menggunakan opsi ini untuk membedakan antara nilai string kosong dan nilai null. Jadi, jika Anda menetapkan nilai parameter ini ke string kosong (”” atau “), AWS DMS memperlakukan string kosong sebagai nilai null, bukan. NULL

Nilai default: NULL

Nilai valid: string apapun yang benar

Contoh: --s3-settings '{"CsvNullValue": " "}'

AddColumnName

Parameter opsional yang ketika diatur ke true atau y, dapat Anda gunakan untuk menambahkan informasi nama kolom ke file keluaran .csv.

Anda tidak dapat menggunakan parameter ini dengan PreserveTransactions atauCdcPath.

Nilai default: false

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"AddColumnName": true}'

AddTrailingPaddingCharacter

Gunakan pengaturan titik akhir target S3 AddTrailingPaddingCharacter untuk menambahkan padding pada data string. Nilai default-nya adalah false.

Tipe: Boolean

Contoh: --s3-settings '{"AddTrailingPaddingCharacter": true}'

BucketFolder

Parameter opsional untuk menentukan nama folder dalam bucket S3. Jika tersedia, objek target dibuat sebagai file .csv atau .parquet di jalur BucketFolder/schema_name/table_name/. Jika parameter ini tidak ditentukan, maka jalur yang digunakan adalah schema_name/table_name/.

Contoh: --s3-settings '{"BucketFolder": "testFolder"}'

BucketName

Nama bucket S3 di mana objek target S3 dibuat sebagai file .csv atau .parquet.

Contoh: --s3-settings '{"BucketName": "buckettest"}'

CannedAclForObjects

Nilai yang memungkinkan AWS DMS untuk menentukan daftar kontrol akses (kalengan) yang telah ditentukan sebelumnya untuk objek yang dibuat di bucket S3 sebagai file.csv atau .parquet. Untuk informasi lebih lanjut tentang ACL terekam Amazon S3, lihat ACL Terekam di Panduan Developer Amazon S3.

Nilai default: NONE

Nilai valid untuk atribut ini adalah: NONE; PRIVATE; PUBLIC_READ_WRITE; AUTHENTICATED_READ; AWS_EXEC_READ; BUCKET_OWNER_READ; BUCKET_OWNER_FULL_CONTROL.

Contoh: --s3-settings '{"CannedAclForObjects": "PUBLIC_READ"}'

CdcInsertsOnly

Parameter opsional selama beban pengambilan data perubahan (CDC) beban hanya bisa menulis operasi INSERT ke file output comma-separated value (.csv) atau penyimpanan berbentuk kolom (.parquet). Secara default (Pengaturan false), field pertama dalam catatan .csv atau .parquet berisi huruf I (INSERT), U (UPDATE), atau D (DELETE). Huruf ini menunjukkan apakah baris dimasukkan, diperbarui, atau dihapus pada basis data sumber untuk beban CDC ke target. Jika cdcInsertsOnly diatur ke true atau y, hanya INSERT dari basis data sumber yang bermigrasi ke file .csv atau .parquet.

Untuk format .csv saja, cara pencatatan INSERT ini bergantung pada nilai IncludeOpForFullLoad. Jika IncludeOpForFullLoad diatur ke true, field pertama dari setiap catatan CDC diatur ke I untuk menunjukkan operasi INSERT pada sumber. Jika IncludeOpForFullLoad diatur ke false, setiap catatan CDC ditulis tanpa field pertama untuk menunjukkan operasi INSERT pada sumber. Untuk informasi lebih lanjut tentang cara parameter ini bekerja sama, lihat Menunjukkan operasi sumber DB dalam data S3 bermigrasi.

Nilai default: false

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"CdcInsertsOnly": true}'

CdcInsertsAndUpdates

Mengaktifkan beban perubahan pengambilan data (CDC) untuk menulis operasi INSERT dan UPDATE untuk file keluaran .csv atau .parquet (penyimpanan berbentuk kolom). Pengaturan default adalah false, tetapi ketika cdcInsertsAndUpdates diatur ke true atau y, INSERT dan UPDATE dari basis data sumber dimigrasi ke file .csv atau .parquet.

Khusus format file .csv, cara pencatatan INSERT dan UPDATE ini tergantung pada nilai parameter includeOpForFullLoad. Jika includeOpForFullLoad diatur ke true, field pertama dari setiap catatan CDC diatur baik ke I maupun U untuk menunjukkan operasi INSERT dan UPDATE pada sumber. Tetapi jika includeOpForFullLoad diatur ke false, catatan CDC ditulis tanpa indikasi operasi INSERT atau UPDATE pada sumber.

Untuk informasi lebih lanjut tentang cara parameter ini bekerja sama, lihat Menunjukkan operasi sumber DB dalam data S3 bermigrasi.

catatan

CdcInsertsOnly dan cdcInsertsAndUpdates keduanya tidak dapat diatur ke true untuk titik akhir yang sama. Tetapkan salah satu antara cdcInsertsOnly atau cdcInsertsAndUpdates ke true untuk titik akhir yang sama, tapi tidak bisa keduanya.

Nilai default: false

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"CdcInsertsAndUpdates": true}'

CdcPath

Menentukan jalur folder file CDC. Untuk sumber S3, pengaturan ini diperlukan jika sebuah tugas menangkap perubahan data; jika tidak, itu opsional. Jika CdcPath diatur, DMS membaca file CDC dari jalur ini dan mereplikasi perubahan data ke titik akhir target. Untuk target S3, jika Anda menetapkan PreserveTransactions ke true, DMS memverifikasi bahwa Anda telah menetapkan parameter ini ke jalur folder pada target S3 Anda tempat DMS dapat menyimpan urutan transaksi untuk beban CDC. DMS membuat jalur folder CDC ini di direktori kerja target S3 Anda atau lokasi target S3 ditentukan oleh BucketFolder dan BucketName.

Anda tidak dapat menggunakan parameter ini dengan DatePartitionEnabled atauAddColumnName.

Jenis: String

Misalnya, jika Anda menentukan CdcPath sebagai MyChangedData, dan Anda menetapkan BucketName sebagai MyTargetBucket tapi tidak menentukan BucketFolder, DMS akan menciptakan jalur folder CDC berikut: MyTargetBucket/MyChangedData.

Jika Anda menentukan CdcPath yang sama, dan Anda menetapkan BucketName sebagai MyTargetBucket dan BucketFolder sebagai MyTargetData, DMS membuat jalur folder CDC berikut: MyTargetBucket/MyTargetData/MyChangedData.

catatan

Pengaturan ini didukung dalam AWS DMS versi 3.4.2 dan yang lebih tinggi.

Saat menangkap perubahan data dalam urutan transaksi, DMS selalu menyimpan perubahan baris dalam file.csv terlepas dari nilai pengaturan DataFormat S3 pada target. DMS tidak menyimpan perubahan data dalam urutan transaksi menggunakan file .parquet.

CdcMaxBatchInterval

Kondisi panjang interval maksimum, didefinisikan dalam detik, untuk keluaran file ke Amazon S3.

Nilai default: 60 detik

Kapan CdcMaxBatchInterval ditentukan dan CdcMinFileSize ditentukan, penulisan file dipicu oleh kondisi parameter mana pun yang terpenuhi terlebih dahulu.

CdcMinFileSize

Kondisi ukuran file minimum seperti yang didefinisikan dalam kilobyte untuk menampilkan file ke Amazon S3.

Nilai default: 32000 KB

Kapan CdcMinFileSize ditentukan dan CdcMaxBatchInterval ditentukan, penulisan file dipicu oleh kondisi parameter mana pun yang terpenuhi terlebih dahulu.

PreserveTransactions

Jika diatur ke true, DMS menyimpan urutan transaksi untuk perubahan pengambilan data (CDC) pada target Amazon S3 yang ditentukan oleh CdcPath.

Anda tidak dapat menggunakan parameter ini dengan DatePartitionEnabled atauAddColumnName.

Jenis: Boolean

Saat menangkap perubahan data dalam urutan transaksi, DMS selalu menyimpan perubahan baris dalam file.csv terlepas dari nilai pengaturan DataFormat S3 pada target. DMS tidak menyimpan perubahan data dalam urutan transaksi menggunakan file .parquet.

catatan

Pengaturan ini didukung dalam AWS DMS versi 3.4.2 dan yang lebih tinggi.

IncludeOpForFullLoad

Parameter opsional selama beban penuh untuk menulis operasi INSERT hanya pada file keluaran comma-seperated value (.csv).

Untuk beban penuh, catatan hanya bisa dimasukkan. Secara default (pengaturan false), tidak ada informasi yang dicatat ke dalam file keluaran ini bagi beban penuh untuk menunjukkan bahwa baris dimasukkan pada basis data sumber. Jika IncludeOpForFullLoad diatur ke true atau y, INSERT dicatat sebagai penjelasan I di field pertama dari file .csv.

catatan

Parameter ini bekerja sama dengan CdcInsertsOnly atau CdcInsertsAndUpdates untuk keluaran ke file .csv saja. Untuk informasi lebih lanjut tentang cara parameter ini bekerja sama, lihat Menunjukkan operasi sumber DB dalam data S3 bermigrasi.

Nilai default: false

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"IncludeOpForFullLoad": true}'

CompressionType

Parameter opsional ketika diatur ke GZIP menggunakan GZIP untuk mengompresi file target .csv atau .parquet. Ketika parameter ini diatur ke default, file tidak terkompresi.

Nilai default: NONE

Nilai yang valid: GZIP atau NONE

Contoh: --s3-settings '{"CompressionType": "GZIP"}'

CsvDelimiter

Pembatas yang digunakan untuk memisahkan kolom dalam file sumber .csv. Default adalah koma (,).

Contoh: --s3-settings '{"CsvDelimiter": ","}'

CsvRowDelimiter

Pembatas yang digunakan untuk memisahkan baris dalam file sumber .csv. Default adalah baris baru (\ n).

Contoh: --s3-settings '{"CsvRowDelimiter": "\n"}'

MaxFileSize

Nilai yang menentukan ukuran maksimum (dalam KB) dari file.csv apa pun yang akan dibuat saat bermigrasi ke target S3 selama pemuatan penuh.

Nilai default: 1.048.576 KB (1 GB)

Nilai valid: 1-1.048.576

Contoh: --s3-settings '{"MaxFileSize": 512}'

Rfc4180

Parameter opsional yang digunakan untuk mengatur perilaku agar sesuai dengan RFC untuk data yang dimigrasi ke Amazon S3 menggunakan format file .csv saja. Ketika nilai ini disetel ke true atau y menggunakan Amazon S3 sebagai target, jika data memiliki tanda kutip, koma, atau karakter baris baru di dalamnya, AWS DMS lampirkan seluruh kolom dengan pasangan tambahan tanda kutip ganda (“). Setiap tanda kutip dalam data diulang dua kali. Format ini sesuai dengan RFC 4180.

Nilai default: true

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"Rfc4180": false}'

EncryptionMode

Mode enkripsi sisi server yang Anda inginkan untuk mengenkripsi file .csv atau .parquet objek disalin ke S3. 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.

catatan

Anda juga dapat menggunakan perintah CLI modify-endpoint untuk mengubah nilai atribut 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.

Nilai default: SSE_S3

Nilai yang valid: SSE_S3 atau SSE_KMS

Contoh: --s3-settings '{"EncryptionMode": SSE_S3}'

ServerSideEncryptionKmsKeyId

Jika Anda menyetel EncryptionMode keSSE_KMS, setel parameter ini ke Amazon Resource Name (ARN) untuk kunci KMS. Anda dapat menemukan ARN ini dengan memilih alias kunci dalam daftar kunci yang dibuat untuk AWS KMS akun Anda. Saat membuat kunci, Anda harus mengaitkan kebijakan dan peran tertentu yang terkait dengan kunci KMS ini. Untuk informasi selengkapnya, lihat Membuat AWS KMS kunci untuk mengenkripsi objek target Amazon S3.

Contoh: --s3-settings '{"ServerSideEncryptionKmsKeyId":"arn:aws:kms:us-east-1:111122223333:key/11a1a1a1-aaaa-9999-abab-2bbbbbb222a2"}'

DataFormat

Format output untuk file yang AWS DMS digunakan untuk membuat objek S3. Untuk target Amazon S3, AWS DMS mendukung file.csv atau .parquet. File .parquet memiliki format penyimpanan kolom biner dengan pilihan kompresi yang efisien dan performa kueri yang lebih cepat. Untuk informasi lebih lanjut tentang file .parquet https://parquet.apache.org/.

Nilai default: csv

Nilai yang valid: csv atau parquet

Contoh: --s3-settings '{"DataFormat": "parquet"}'

EncodingType

Jenis pengodean Parquet. Pilihan tipe pengodean mencakup hal berikut:

  • rle-dictionary – pengodean kamus ini menggunakan kombinasi pengodean bit-packing dan run-length untuk lebih efisien dalam menyimpan nilai yang berulang.

  • plain – Tidak ada pengodean.

  • plain-dictionary – Pengodean kamus ini membangun sebuah kamus nilai yang ditemui dalam kolom tertentu. Kamus disimpan dalam halaman kamus untuk setiap potongan kolom.

Nilai default: rle-dictionary

Nilai valid: rle-dictionary, plain, atau plain-dictionary

Contoh: --s3-settings '{"EncodingType": "plain-dictionary"}'

DictPageSizeLimit

Ukuran maksimum yang diizinkan, dalam byte, untuk halaman kamus dalam file .parquet. Jika halaman kamus melebihi nilai ini, maka halaman menggunakan pengodean biasa.

Nilai default: 1.024.000 (1 MB)

Nilai valid: Setiap nilai integer yang valid

Contoh: --s3-settings '{"DictPageSizeLimit": 2,048,000}'

RowGroupLength

Jumlah baris dalam satu grup baris dari file .parquet.

Nilai default: 10.024 (10 KB)

Nilai yang valid: Setiap bilangan bulat yang valid

Contoh: --s3-settings '{"RowGroupLength": 20,048}'

DataPageSize

Ukuran maksimum yang diizinkan, dalam byte, untuk halaman data dalam file .parquet.

Nilai default: 1.024.000 (1 MB)

Nilai yang valid: Setiap bilangan bulat yang valid

Contoh: --s3-settings '{"DataPageSize": 2,048,000}'

ParquetVersion

Versi format file .parquet.

Nilai default: PARQUET_1_0

Nilai yang valid: PARQUET_1_0 atau PARQUET_2_0

Contoh: --s3-settings '{"ParquetVersion": "PARQUET_2_0"}'

EnableStatistics

Atur ke true atau y untuk mengaktifkan statistik tentang halaman file .parquet dan grup barisan.

Nilai default: true

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"EnableStatistics": false}'

TimestampColumnName

Parameter opsional untuk menyertakan kolom stempel waktu dalam data titik akhir target S3.

AWS DMS menyertakan STRING kolom tambahan dalam file objek.csv atau .parquet dari data yang dimigrasi saat Anda menyetel TimestampColumnName ke nilai yang tidak kosong.

Untuk beban penuh, setiap baris dari kolom stempel waktu ini berisi stempel waktu untuk ketika data ditransfer dari sumber ke target oleh DMS.

Untuk beban CDC, setiap baris kolom stempel waktu berisi stempel waktu untuk menjalankan baris tersebut dalam basis data sumber.

Format string untuk nilai kolom stempel waktu ini adalah yyyy-MM-dd HH:mm:ss.SSSSSS. Secara default, presisi nilai ini dalam mikrodetik. Untuk beban CDC, pembulatan presisi tergantung pada stempel waktu melakukan didukung oleh DMS untuk basis data sumber.

Ketika AddColumnName parameter disetel ketrue, DMS juga menyertakan nama untuk kolom stempel waktu yang Anda tetapkan sebagai nilai tidak kosong. TimestampColumnName

Contoh: --s3-settings '{"TimestampColumnName": "TIMESTAMP"}'

UseTaskStartTimeForFullLoadTimestamp

Ketika diatur ke true, parameter ini menggunakan waktu mulai tugas sebagai nilai kolom stempel data alih-alih data waktu ditulis ke target. Untuk beban penuh, ketika UseTaskStartTimeForFullLoadTimestamp diatur ke true, setiap baris dari kolom stempel waktu berisi waktu mulai tugas. Untuk beban CDC, setiap baris kolom stempel waktu berisi waktu melakukan transaksi.

Saat UseTaskStartTimeForFullLoadTimestamp diatur ke false, stempel waktu beban penuh di kolom stempel waktu bertambah dengan data waktu tiba di target.

Nilai default: false

Nilai valid: true, false

Contoh: --s3-settings '{"UseTaskStartTimeForFullLoadTimestamp": true}'

UseTaskStartTimeForFullLoadTimestamp: true membantu membuat target S3 TimestampColumnName untuk beban penuh dapat diurutkan dengan TimestampColumnName untuk beban CDC.

ParquetTimestampInMillisecond

Parameter opsional yang menentukan ketepatan dari nilai kolom TIMESTAMP mana pun yang ditulis ke file objek S3 dalam format .parquet.

Ketika atribut ini disetel ke true ory, AWS DMS tulis semua TIMESTAMP kolom dalam file berformat.parquet dengan presisi milidetik. Jika tidak, DMS menuliskan mereka dengan presisi mikro detik.

Saat ini, Amazon Athena dan hanya AWS Glue dapat menangani presisi milidetik untuk TIMESTAMP nilai. Atur atribut ini ke true untuk file objek titik akhir S3 berformat .parquet hanya jika Anda berencana untuk membuat kueri atau memproses data dengan Athena atau AWS Glue.

catatan
  • AWS DMS menulis nilai TIMESTAMP kolom apa pun yang ditulis ke file S3 dalam format.csv dengan presisi mikrodetik.

  • Pengaturan atribut ini tidak berpengaruh pada format string dari nilai kolom stempel waktu yang dimasukkan dengan menetapkan atribut TimestampColumnName.

Nilai default: false

Nilai valid: true, false, y, n

Contoh: --s3-settings '{"ParquetTimestampInMillisecond": true}'

GlueCatalogGeneration

Untuk menghasilkan AWS Glue Data Catalog, atur pengaturan titik akhir ini ketrue.

Nilai default: false

Nilai yang valid:true,false,

Contoh: --s3-settings '{"GlueCatalogGeneration": true}'

Catatan: Jangan gunakan GlueCatalogGeneration dengan PreserveTransactions danCdcPath.

Menggunakan AWS Glue Data Catalog dengan target Amazon S3 untuk AWS DMS

AWS Glue adalah layanan yang menyediakan cara sederhana untuk mengkategorikan data, dan terdiri dari repositori metadata yang dikenal sebagai. AWS Glue Data Catalog Anda dapat berintegrasi AWS Glue Data Catalog dengan titik akhir target Amazon S3 dan kueri data Amazon S3 melalui layanan lain AWS seperti Amazon Athena. Amazon Redshift berfungsi dengan AWS Glue tetapi AWS DMS tidak mendukungnya sebagai opsi yang dibuat sebelumnya.

Untuk menghasilkan katalog data, atur pengaturan GlueCatalogGeneration endpoint ketrue, seperti yang ditunjukkan pada AWS CLI contoh berikut.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target--s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "DataFormat": "parquet", "GlueCatalogGeneration": true}'

Untuk tugas replikasi beban penuh yang menyertakan data csv tipe, setel IncludeOpForFullLoad ketrue.

Jangan gunakan GlueCatalogGeneration dengan PreserveTransactions danCdcPath. AWS Glue Crawler tidak dapat merekonsiliasi skema berbeda dari file yang disimpan di bawah yang ditentukan. CdcPath

Agar Amazon Athena dapat mengindeks data Amazon S3 Anda, dan agar Anda dapat melakukan kueri data menggunakan kueri SQL standar melalui Amazon Athena, peran IAM yang dilampirkan ke titik akhir harus memiliki kebijakan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::bucket123", "arn:aws:s3:::bucket123/*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:GetDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:*:111122223333:catalog", "arn:aws:glue:*:111122223333:database/*", "arn:aws:glue:*:111122223333:table/*" ] }, { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:CreateWorkGroup" ], "Resource": "arn:aws:athena:*:111122223333:workgroup/glue_catalog_generation_for_task_*" } ] }
Referensi
  • Untuk informasi selengkapnya AWS Glue, lihat Konsep di Panduan AWS Glue Pengembang.

  • Untuk informasi selengkapnya, AWS Glue Data Catalog lihat Komponen dalam Panduan AWS Glue Pengembang.

Menggunakan enkripsi data, file parket, dan CDC pada target Amazon S3 Anda

Anda dapat menggunakan pengaturan target titik akhir S3 pengaturan untuk mengonfigurasi hal berikut:

  • Kunci KMS khusus untuk mengenkripsi objek target S3 Anda.

  • Parquet file sebagai format penyimpanan untuk objek target S3.

  • Penangkapan perubahan data (CDC) termasuk transaksi order pada target S3.

  • Integrasikan AWS Glue Data Catalog dengan titik akhir target Amazon S3 Anda dan kueri data Amazon S3 melalui layanan lain seperti Amazon Athena.

AWS KMS pengaturan kunci untuk enkripsi data

Contoh berikut menunjukkan konfigurasi kunci KMS kustom untuk mengenkripsi objek target S3 Anda. Untuk memulai, Anda dapat menjalankan perintah create-endpoint CLI berikut.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480"}'

Di sini, objek JSON ditentukan oleh pilihan --s3-settings yang mendefinisikan dua parameter. Satu berupa parameter EncryptionMode dengan nilai SSE_KMS. Yang lainnya berupa parameter ServerSideEncryptionKmsKeyId dengan nilai arn:aws:kms:us-east-1:111122223333:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480. Nilai ini adalah Amazon Resource Name (ARN) untuk kunci KMS kustom Anda. Untuk target S3, Anda juga menentukan pengaturan tambahan. Ini mengidentifikasi peran akses server, menyediakan pembatas untuk format penyimpanan objek CSV default, dan memberikan lokasi dan nama bucket untuk menyimpan objek target S3.

Secara default, enkripsi data S3 terjadi menggunakan enkripsi pada sisi server S3. Untuk target S3 di contoh sebelumnya, ini juga setara dengan menentukan pengaturan titik akhir seperti dalam contoh berikut.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_S3"}'

Untuk informasi lebih lanjut tentang bekerja dengan enkripsi sisi server S3, lihat Melindungi Data Menggunakan Enkripsi Sisi Server.

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 dalam menggunakan file .parquet untuk menyimpan objek target S3

Format default untuk membuat objek target S3 adalah file .csv. Contoh berikut menunjukkan beberapa pengaturan titik akhir untuk menentukan file .parquet sebagai format untuk membuat objek target S3. Anda dapat menentukan format file .parquet dengan semua default, seperti dalam contoh berikut.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "DataFormat": "parquet"}'

Di sini, parameter DataFormat diatur ke parquet untuk mengaktifkan format dengan semua default S3. Default ini juga termasuk pengodean kamus ("EncodingType: "rle-dictionary") yang menggunakan kombinasi pengodean bit-packing dan run-length untuk lebih efisien menyimpan nilai-nilai berulang.

Anda dapat menambahkan pengaturan tambahan untuk pilihan selain default seperti dalam contoh berikut.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "CompressionType": "GZIP", "DataFormat": "parquet", "EncodingType: "plain-dictionary", "DictPageSizeLimit": 3,072,000, "EnableStatistics": false }'

Di sini, selain parameter untuk beberapa pilihan bucket S3 standar dan parameter DataFormat, parameter file .parquet tambahan berikut ditetapkan:

  • EncodingType – Atur ke pengodean kamus (plain-dictionary) yang menyimpan nilai-nilai yang ditemui di setiap kolom dalam potongan perkolom dari halaman kamus.

  • DictPageSizeLimit – Atur ke ukuran halaman kamus maksimum 3 MB.

  • EnableStatistics – Nonaktifkan default yang memungkinkan pengumpulan statistik tentang halaman file Parquet dan grup baris.

Perubahan pengambilan data (CDC) termasuk transaksi order pada target S3

Secara default saat AWS DMS menjalankan tugas CDC, ia menyimpan semua perubahan baris yang dicatat dalam database sumber Anda (atau database) dalam satu atau beberapa file untuk setiap tabel. Setiap set file yang berisi perubahan untuk tabel yang sama berada dalam satu direktori target yang terkait dengan tabel itu. AWS DMS membuat direktori target sebanyak tabel database yang dimigrasikan ke titik akhir target Amazon S3. File disimpan pada target S3 di direktori ini tanpa memperhatikan pesanan transaksi. Untuk informasi lebih lanjut tentang ketentuan penamaan file, konten data, dan format, lihat Menggunakan Amazon S3 sebagai target AWS Database Migration Service.

Untuk menangkap perubahan basis data sumber dengan cara yang juga menangkap urutan transaksi, Anda dapat menentukan pengaturan titik akhir S3 yang mengarahkan AWS DMS untuk menyimpan perubahan baris untuk semua tabel database dalam satu atau beberapa file.csv yang dibuat tergantung pada ukuran transaksi. File transaksi .csv ini berisi semua perubahan baris terdaftar secara berurutan dalam urutan transaksi untuk semua tabel yang terlibat dalam setiap transaksi. File-file transaksi ini diletakkan bersama dalam satu Direktori transaksi yang Anda juga tentukan pada target S3. Dalam setiap file transaksi, operasi transaksi dan identitas database dan tabel sumber untuk setiap perubahan baris disimpan sebagai bagian dari data baris sebagai berikut.

operation,table_name,database_schema_name,field_value,...

Di sini, operation adalah operasi transaksi pada baris yang diubah, table_name adalah nama tabel basis data di mana baris diubah, database_schema_name adalah nama skema basis data tempat tabel berada, dan field_value adalah yang pertama dari satu atau lebih nilai field yang menentukan data untuk baris.

Contoh berikut dari file transaksi menunjukkan baris yang diubah untuk satu atau beberapa transaksi yang melibatkan dua tabel.

I,Names_03cdcad11a,rdsTempsdb,13,Daniel U,Names_03cdcad11a,rdsTempsdb,23,Kathy D,Names_03cdcad11a,rdsTempsdb,13,Cathy I,Names_6d152ce62d,rdsTempsdb,15,Jane I,Names_6d152ce62d,rdsTempsdb,24,Chris I,Names_03cdcad11a,rdsTempsdb,16,Mike

Di sini, operasi transaksi pada setiap baris ditunjukkan oleh I (insert), U(update), atau D (delete) di kolom pertama. Nama tabel adalah nilai kolom kedua (misalnya, Names_03cdcad11a). Nama skema basis data adalah nilai kolom ketiga (misalnya, rdsTempsdb). Dan kolom yang tersisa diisi dengan data baris Anda sendiri (misalnya, 13,Daniel).

Selain itu, AWS DMS beri nama file transaksi yang dibuatnya pada target Amazon S3 menggunakan stempel waktu sesuai dengan konvensi penamaan berikut.

CDC_TXN-timestamp.csv

Di sini, timestamp adalah waktu ketika file transaksi dibuat, seperti dalam contoh berikut.

CDC_TXN-20201117153046033.csv

Stempel waktu dalam nama file ini memastikan bahwa file transaksi dibuat dan tercantum dalam urutan transaksi ketika Anda mencantumkannya di direktori transaksi mereka.

catatan

Saat menangkap perubahan data dalam urutan transaksi, AWS DMS selalu simpan perubahan baris dalam file.csv terlepas dari nilai pengaturan DataFormat S3 pada target. AWS DMS tidak menyimpan perubahan data dalam urutan transaksi menggunakan file.parquet.

Untuk mengontrol frekuensi penulisan ke target Amazon S3 selama tugas replikasi data, Anda dapat mengonfigurasi dan pengaturan. CdcMaxBatchInterval CdcMinFileSize Hal ini dapat menghasilkan performa yang lebih baik ketika menganalisis data tanpa operasi overhead tambahan. Untuk informasi lebih lanjut, lihat Pengaturan titik akhir saat menggunakan Amazon S3 sebagai target AWS DMS

Untuk memberitahu AWS DMS untuk menyimpan semua perubahan baris dalam urutan transaksi
  1. Setel pengaturan PreserveTransactions S3 pada target ke true.

  2. Setel pengaturan CdcPath S3 pada target ke jalur folder relatif tempat Anda AWS DMS ingin menyimpan file transaksi.csv.

    AWS DMS membuat jalur ini baik di bawah bucket target S3 default dan direktori kerja atau di bawah folder bucket dan bucket yang Anda tentukan menggunakan pengaturan BucketName dan BucketFolder S3 pada target.

Menunjukkan operasi sumber DB dalam data S3 bermigrasi

Saat AWS DMS memigrasikan catatan ke target S3, itu dapat membuat bidang tambahan di setiap rekaman yang dimigrasi. Field tambahan ini menunjukkan operasi diterapkan ke catatan pada basis data sumber. Cara AWS DMS membuat dan menetapkan bidang pertama ini tergantung pada jenis tugas migrasi dan pengaturanincludeOpForFullLoad,cdcInsertsOnly, dancdcInsertsAndUpdates.

Untuk beban penuh saat includeOpForFullLoad adatrue, AWS DMS selalu buat bidang pertama tambahan di setiap catatan.csv. Field ini berisi huruf I (INSERT) untuk menunjukkan bahwa baris dimasukkan pada basis data sumber. Untuk beban CDC ketika cdcInsertsOnly false (default), AWS DMS juga selalu membuat bidang pertama tambahan di setiap catatan.csv atau .parquet. Field ini berisi huruf I (INSERT), U (UPDATE), atau D (DELETE) untuk menunjukkan apakah baris dimasukkan, diperbarui, atau dihapus pada sumber basis data.

Dalam tabel berikut, Anda dapat melihat bagaimana pengaturan cdcInsertsOnly atribut includeOpForFullLoad dan bekerja sama untuk memengaruhi pengaturan catatan yang dimigrasi.

Dengan pengaturan parameter ini DMS menetapkan catatan target sebagai berikut untuk keluaran.csv dan .parquet
includeOpForFullLoad cdcInsertsOnly Untuk beban penuh Untuk beban CDC
true true Menambahkan nilai field pertama yang ditetapkan ke I Menambahkan nilai field pertama yang ditetapkan ke I
false false Tidak ada field tambahan Menambahkan nilai field pertama yang ditetapkan ke I, U, atau D
false true Tidak ada field tambahan Tidak ada field tambahan
true false Menambahkan nilai field pertama yang ditetapkan ke I Menambahkan nilai field pertama yang ditetapkan ke I, U, atau D

Saat includeOpForFullLoad dan cdcInsertsOnly ditetapkan ke nilai yang sama, catatan target diatur menurut atribut yang mengontrol pengaturan catatan untuk jenis migrasi saat ini. Atribut tersebut adalah includeOpForFullLoad untuk beban penuh dan cdcInsertsOnly untuk beban CDC.

Kapan includeOpForFullLoad dan cdcInsertsOnly diatur ke nilai yang berbeda, AWS DMS membuat pengaturan catatan target konsisten untuk CDC dan beban penuh. Hal ini dilakukan dengan membuat pengaturan catatan untuk beban CDC sesuai dengan pengaturan catatan untuk semua beban penuh sebelumnya yang ditentukan oleh includeOpForFullLoad.

Dengan kata lain, anggaplah beban penuh diatur untuk menambahkan field pertama untuk menunjukkan catatan yang dimasukkan. Dalam kasus ini, beban CDC berikut diatur untuk menambahkan field pertama yang menunjukkan catatan yang dimasukkan, diperbarui, atau dihapus sesuai sumbernya. Sebaliknya, anggaplah beban penuh diatur untuk tidak menambahkan field pertama untuk menunjukkan catatan yang dimasukkan. Dalam kasus ini, beban CDC juga diatur untuk tidak menambahkan field pertama untuk setiap catatan, terlepas dari operasi catatan yang sesuai sumbernya.

Demikian juga dengan bagaimana DMS membuat dan menetapkan field pertama tambahan bergantung pada pengaturan includeOpForFullLoad dan cdcInsertsAndUpdates. Dalam tabel berikut, Anda dapat melihat bagaimana pengaturan atribut includeOpForFullLoad dan cdcInsertsAndUpdates bekerja sama untuk memengaruhi pengaturan catatan yang dimigrasikan dalam format ini.

Dengan pengaturan parameter ini DMS menetapkan catatan target sebagai berikut untuk keluaran .csv
includeOpForFullLoad cdcInsertsAndUpdate Untuk beban penuh Untuk beban CDC
true true Menambahkan nilai field pertama yang ditetapkan ke I Menambahkan nilai field pertama yang ditetapkan ke I atau U
false false Tidak ada field tambahan Menambahkan nilai field pertama yang ditetapkan ke I, U, atau D
false true Tidak ada field tambahan Menambahkan nilai field pertama yang ditetapkan ke I atau U
true false Menambahkan nilai field pertama yang ditetapkan ke I Menambahkan nilai field pertama yang ditetapkan ke I, U, atau D

Tipe data target untuk S3 Parquet

Tabel berikut menunjukkan tipe data target Parket yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe AWS DMS data.

Untuk informasi tambahan tentang tipe AWS DMS data, lihatTipe data untuk AWS Database Migration Service.

AWS DMS tipe data

Tipe data parquet S3

BYTES BINARY
DATE DATE32
TIME TIME32
DATETIME TIMESTAMP
INT1 INT8
INT2 INT16
INT4 INT32
INT8 INT64
NUMERIC DECIMAL
REAL4 FLOAT
REAL8 DOUBLE
STRING STRING
UINT1 UINT8
UINT2 UINT16
UINT4 UINT32
UINT8 UINT64
WSTRING STRING
BLOB BINARY
NCLOB STRING
CLOB STRING
BOOLEAN BOOL