Menggunakan Amazon DocumentDB (dengan kompatibilitas MongoDB) sebagai sumber untuk AWS DMS - 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 DocumentDB (dengan kompatibilitas MongoDB) sebagai sumber untuk AWS DMS

Untuk informasi tentang versi Amazon DocumentDB (dengan kompatibilitas MongoDB) AWS DMS yang mendukung sebagai sumber, lihat. Sumber untuk AWS DMS

Dengan menggunakan Amazon DocumentDB sebagai sumber, Anda dapat memigrasikan data dari satu klaster Amazon DocumentDB ke klaster Amazon DocumentDB lain. Anda juga dapat memigrasikan data dari klaster Amazon DocumentDB ke salah satu titik akhir target lain yang didukung oleh. AWS DMS

Jika Anda baru mengenal Amazon DocumentDB, perhatikan konsep penting berikut untuk database Amazon DocumentDB:

  • Catatan di Amazon DocumentDB adalah dokumen, struktur data yang terdiri dari pasangan bidang dan nilai. Nilai bidang dapat mencakup dokumen, rangkaian, dan rangkaian dokumen lain. Dokumen kurang lebih setara dengan baris dalam tabel basis data relasional.

  • Koleksi di Amazon DocumentDB adalah sekelompok dokumen, dan kira-kira setara dengan tabel database relasional.

  • Database di Amazon DocumentDB adalah sekumpulan koleksi, dan kira-kira setara dengan skema dalam database relasional.

AWS DMS mendukung dua mode migrasi saat menggunakan Amazon DocumentDB sebagai sumber, mode dokumen, dan mode tabel. Anda menentukan mode migrasi saat membuat titik akhir sumber Amazon DocumentDB di konsol, menggunakan AWS DMS opsi mode Metadata atau atribut koneksi tambahan. nestingLevel Berikut, Anda dapat menemukan penjelasan bagaimana pilihan mode migrasi memengaruhi format yang dihasilkan dari data target.

Mode dokumen

Pada mode dokumen, dokumen JSON dimigrasi apa adanya. Itu artinya data dokumen dikonsolidasikan menjadi salah satu dari dua item. Saat Anda menggunakan basis data relasional sebagai target, data merupakan satu kolom bernama _doc dalam tabel target. Ketika Anda menggunakan basis data nonrelasional sebagai target, data merupakan dokumen JSON tunggal. Mode dokumen adalah mode default, yang kami sarankan ketika bermigrasi ke target Amazon DocumentDB.

Misalnya, pertimbangkan dokumen-dokumen berikut dalam koleksi Amazon DocumentDB yang disebut. myCollection

> db.myCollection.find() { "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 } { "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }

Setelah memigrasikan data ke tabel basis data relasional menggunakan mode dokumen, data terstruktur sebagai berikut. Bidang data dalam dokumen dikonsolidasikan ke kolom _doc.

oid_id _doc
5a94815f40bd44d1b02bdfe0 { "a" : 1, "b" : 2, "c" : 3 }
5a94815f40bd44d1b02bdfe1 { "a" : 4, "b" : 5, "c" : 6 }

Anda dapat mengatur atribut sambungan tambahan extractDocID secara fakultatif ke true untuk membuat kolom kedua bernama "_id" yang bertindak sebagai kunci utama. Jika Anda akan menggunakan change data capture (CDC), atur parameter ini menjadi true kecuali saat menggunakan Amazon DocumentDB sebagai target.

catatan

Jika Anda menambahkan koleksi baru ke database sumber, AWS DMS buat tabel target baru untuk koleksi dan mereplikasi dokumen apa pun.

Mode tabel

Dalam mode tabel,AWS DMS mengubah setiap bidang tingkat atas dalam dokumen Amazon DocumentDB menjadi kolom di tabel target. Jika bidang bersarang, AWS DMS ratakan nilai bersarang menjadi satu kolom. AWS DMS kemudian menambahkan bidang kunci dan tipe data ke set kolom tabel target.

Untuk setiap dokumen Amazon DocumentDB AWS DMS , tambahkan setiap kunci dan ketik ke set kolom tabel target. Misalnya, menggunakan mode tabel, AWS DMS memigrasikan contoh sebelumnya ke dalam tabel berikut.

oid_id a b c
5a94815f40bd44d1b02bdfe0 1 2 3
5a94815f40bd44d1b02bdfe1 4 5 6

Nilai-nilai bersarang diratakan menjadi sebuah kolom yang berisi nama-nama kunci yang dipisahkan oleh titik. Kolom dinamakan menggunakan gabungan nama bidang yang diratakan yang dipisahkan oleh titik. Misalnya, AWS DMS memigrasikan dokumen JSON dengan bidang nilai bersarang seperti {"a" : {"b" : {"c": 1}}} ke dalam kolom bernama a.b.c.

Untuk membuat kolom target, AWS DMS memindai sejumlah dokumen Amazon DocumentDB tertentu dan membuat satu set semua bidang dan jenisnya. AWS DMS kemudian menggunakan set ini untuk membuat kolom dari tabel target. Jika Anda membuat atau memodifikasi titik akhir sumber Amazon DocumentDB menggunakan konsol, Anda dapat menentukan jumlah dokumen yang akan dipindai. Nilai default adalah 1.000 dokumen. Jika Anda menggunakan AWS CLI, Anda dapat menggunakan atribut koneksi tambahandocsToInvestigate.

Dalam mode tabel, AWS DMS mengelola dokumen dan koleksi seperti ini:

  • Ketika Anda menambahkan dokumen ke koleksi yang ada, dokumen itu direplikasi. Jika ada bidang yang tidak ada dalam target, bidang tersebut tidak direplikasi.

  • Ketika Anda memperbarui dokumen, dokumen yang diperbarui tersebut direplikasi. Jika ada bidang yang tidak ada dalam target, bidang tersebut tidak direplikasi.

  • Menghapus dokumen sepenuhnya didukung.

  • Menambahkan koleksi baru tidak menghasilkan tabel baru pada target ketika dilakukan selama tugas CDC.

  • Pada fase Change Data Capture (CDC), AWS DMS tidak mendukung penggantian nama koleksi.

Menetapkan izin untuk menggunakan Amazon DocumentDB sebagai sumber

Saat menggunakan sumber Amazon DocumentDB untuk AWS DMS migrasi, Anda dapat membuat akun pengguna dengan hak akses root. Atau Anda dapat membuat pengguna dengan izin hanya untuk basis data yang akan dimigrasi.

Kode berikut membuat pengguna sebagai akun root.

use admin db.createUser( { user: "root", pwd: "password", roles: [ { role: "root", db: "admin" } ] })

Untuk Amazon DocumentDB 3.6, kode berikut membuat pengguna dengan hak istimewa minimal pada database yang akan dimigrasi.

use database_to_migrate db.createUser( { user: "dms-user", pwd: "password", roles: [ { role: "read", db: "db_name" }, "read"] })

Untuk Amazon DocumentDB 4.0 dan yang lebih tinggi AWS DMS , menggunakan aliran perubahan di seluruh penerapan. Di sini, kode berikut membuat pengguna dengan hak istimewa minimal.

db.createUser( { user: "dms-user", pwd: "password", roles: [ { role: "readAnyDatabase", db: "admin" }] })

Mengonfigurasi CDC untuk klaster Amazon DocumentDB

Untuk menggunakan replikasi atau CDC yang sedang berlangsung dengan Amazon DocumentDB AWS DMS , memerlukan akses ke aliran perubahan klaster Amazon DocumentDB. Untuk deskripsi urutan yang diatur waktu dari peristiwa pembaruan di koleksi dan basis data klaster Anda, lihat Menggunakan aliran perubahan dalam Panduan Developer Amazon DocumentDB.

Lakukan autentikasi klaster Amazon DocumentDB Anda menggunakan shell MongoDB. Kemudian jalankan perintah berikut untuk mengaktifkan perubahan aliran.

db.adminCommand({modifyChangeStreams: 1, database: "DB_NAME", collection: "", enable: true});

Pendekatan ini memungkinkan aliran perubahan untuk semua koleksi dalam basis data Anda. Setelah aliran perubahan diaktifkan, Anda dapat membuat tugas migrasi yang memigrasi data yang ada dan sekaligus mereplikasi perubahan yang sedang berlangsung. AWS DMS terus menangkap dan menerapkan perubahan bahkan setelah data massal dimuat. Akhirnya, sumber dan target basis data menyinkronkan, meminimalkan downtime untuk migrasi.

catatan

AWS DMS menggunakan log operasi (oplog) untuk menangkap perubahan selama replikasi yang sedang berlangsung. Jika Amazon DocumentDB menghapus catatan dari oplog AWS DMS sebelum membacanya, tugas Anda akan gagal. Kami merekomendasikan ukuran oplog untuk mempertahankan perubahan setidaknya selama 24 jam.

Menghubungkan ke Amazon DocumentDB menggunakan TLS

Secara default, klaster Amazon DocumentDB baru dibuat menerima sambungan aman hanya menggunakan Keamanan Lapisan Pengangkutan (TLS). Ketika TLS diaktifkan, setiap sambungan ke Amazon DocumentDB memerlukan kunci publik.

Anda dapat mengambil kunci publik untuk Amazon DocumentDB dengan mengunduh file dari bucket Amazon rds-combined-ca-bundle.pem S3 yang AWS di-host. Untuk informasi lebih lanjut tentang mengunduh file ini, lihat Mengenkripsi sambungan menggunakan TLS dalam Panduan Developer Amazon DocumentDB.

Setelah mengunduh rds-combined-ca-bundle.pem file, Anda dapat mengimpor kunci publik yang dikandungnya AWS DMS. Langkah-langkah berikut menjelaskan cara melakukannya.

Untuk mengimpor kunci publik menggunakan AWS DMS konsol
  1. Masuk ke AWS Management Console dan pilih AWS DMS.

  2. Pilih Sertifikat di panel navigasi.

  3. Pilih Impor sertifikat. Laman Impor sertifikat CA baru akan muncul.

  4. Pada bagian Konfigurasi sertifikat, lakukan salah satu hal berikut:

    • Untuk Pengenal sertifikat, masukkan nama unik untuk sertifikat tersebut, seperti docdb-cert.

    • Pilih Pilih berkas, navigasikan ke lokasi tempat Anda menyimpan rds-combined-ca-bundle.pem, dan pilih itu.

  5. Pilih Tambahkan sertifikat CA baru.

Contoh AWS CLI berikut menggunakan AWS DMS import-certificate perintah untuk mengimpor rds-combined-ca-bundle.pem file kunci publik.

aws dms import-certificate \ --certificate-identifier docdb-cert \ --certificate-pem file://./rds-combined-ca-bundle.pem

Membuat titik akhir sumber Amazon DocumentDB

Anda dapat membuat titik akhir sumber Amazon DocumentDB menggunakan konsol atau AWS CLI. Gunakan prosedur berikut dengan konsol.

Untuk mengonfigurasi titik akhir sumber Amazon DocumentDB menggunakan konsol AWS DMS
  1. Masuk ke AWS Management Console dan pilih AWS DMS.

  2. Pilih Titik akhir dari panel navigasi, lalu pilih Buat titik akhir.

  3. Untuk Pengidentifikasi titik akhir, berikan nama yang membantu Anda mengidentifikasinya dengan mudah, seperti docdb-source.

  4. Untuk Mesin sumber, pilih Amazon DocumentDB (dengan kompatibilitas MongoDB).

  5. Untuk Nama server, masukkan nama server di lokasi titik akhir basis data Amazon DocumentDB Anda berada. Misalnya, Anda dapat memasukkan nama DNS publik dari instans Amazon EC2 Anda, seperti democluster.cluster-cjf6q8nxfefi.us-east-2.docdb.amazonaws.com.

  6. Untuk Port, masukkan 27017.

  7. Untuk Mode SSL, pilih verifikasi penuh. Jika Anda telah menonaktifkan SSL pada kluster Amazon DocumentDB Anda, Anda dapat melewati langkah ini.

  8. Untuk Sertifikat CA, pilih sertifikat Amazon DocumentDB,rds-combined-ca-bundle.pem. Untuk petunjuk tentang cara menambahkan sertifikat ini, lihat Menghubungkan ke Amazon DocumentDB menggunakan TLS.

  9. Untuk Nama basis data, masukkan nama dari basis data yang akan dimigrasi.

Gunakan prosedur berikut dengan CLI.

Untuk mengonfigurasi titik akhir sumber Amazon DocumentDB menggunakan AWS CLI
  • Jalankan AWS DMS create-endpoint perintah berikut untuk mengonfigurasi titik akhir sumber Amazon DocumentDB, mengganti placeholder dengan nilai Anda sendiri.

    aws dms create-endpoint \ --endpoint-identifier a_memorable_name \ --endpoint-type source \ --engine-name docdb \ --username value \ --password value \ --server-name servername_where_database_endpoint_resides \ --port 27017 \ --database-name name_of_endpoint_database

Melakukan segmentasi koleksi Amazon DocumentDB dan migrasi secara paralel

Untuk meningkatkan kinerja tugas migrasi, titik akhir sumber Amazon DocumentDB mendukung dua opsi fitur beban penuh paralel dalam pemetaan tabel. Dengan kata lain, Anda dapat memigrasikan koleksi secara paralel dengan menggunakan opsi autosegmentasi atau segmentasi rentang pemetaan tabel untuk beban penuh paralel dalam pengaturan JSON. Opsi segmentasi otomatis memungkinkan Anda menentukan kriteria untuk AWS DMS secara otomatis mengelompokkan sumber Anda untuk migrasi di setiap utas. Opsi segmentasi rentang memungkinkan Anda memberi tahu AWS DMS rentang spesifik setiap segmen agar DMS dapat bermigrasi di setiap utas. Untuk informasi selengkapnya tentang pengaturan, lihat Tabel dan koleksi pengaturan aturan dan operasi.

Migrasi database Amazon DocumentDB secara paralel menggunakan rentang autosegmentasi

Anda dapat memigrasikan dokumen secara paralel dengan menentukan kriteria untuk secara otomatis AWS DMS mempartisi (segmen) data Anda untuk setiap utas, terutama jumlah dokumen yang akan dimigrasi per utas. Dengan menggunakan pendekatan ini, AWS DMS upaya untuk mengoptimalkan batas segmen untuk kinerja maksimum per utas.

Anda dapat menentukan kriteria segmentasi menggunakan opsi pengaturan tabel berikut dalam pemetaan tabel:

Opsi tabel-pengaturan

Deskripsi

"type"

(Wajib) Setel ke "partitions-auto" Amazon DocumentDB sebagai sumber.

"number-of-partitions"

(Opsional) Jumlah total partisi (segmen) yang digunakan untuk migrasi. Defaultnya adalah 16.

"collection-count-from-metadata"

(Opsional) Jika diatur ketrue, AWS DMS menggunakan perkiraan jumlah koleksi untuk menentukan jumlah partisi. Jika disetel kefalse, AWS DMS gunakan jumlah koleksi yang sebenarnya. Nilai default-nya true.

"max-records-skip-per-page"

(Opsional) Jumlah catatan yang harus dilewati sekaligus saat menentukan batas untuk setiap partisi. AWS DMS menggunakan pendekatan skip paginated untuk menentukan batas minimum untuk partisi. Defaultnya adalah 10000. Menyetel nilai yang relatif besar dapat mengakibatkan batas waktu kurser dan kegagalan tugas. Menetapkan nilai yang relatif rendah menghasilkan lebih banyak operasi per halaman dan beban penuh yang lebih lambat.

"batch-size"

(Opsional) Membatasi jumlah dokumen yang dikembalikan dalam satu batch. Setiap batch membutuhkan perjalanan pulang pergi ke server. Jika ukuran batch nol (0), kursor menggunakan ukuran batch maksimum yang ditentukan server. Default-nya adalah 0.

Contoh berikut menunjukkan pemetaan tabel untuk autosegmentasi.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "admin", "table-name": "departments" }, "rule-action": "include", "filters": [] }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "admin", "table-name": "departments" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 5, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } } ] }

Segmentasi otomatis memiliki batasan berikut. Migrasi untuk setiap segmen mengambil jumlah koleksi dan minimum _id untuk koleksi secara terpisah. Kemudian menggunakan lompatan paginasi untuk menghitung batas minimum untuk segmen itu. Oleh karena itu, pastikan bahwa _id nilai minimum untuk setiap koleksi tetap konstan sampai semua batas segmen dalam koleksi dihitung. Jika Anda mengubah _id nilai minimum untuk koleksi selama perhitungan batas segmennya, ini dapat menyebabkan kehilangan data atau kesalahan baris duplikat.

Migrasi database Amazon DocumentDB secara paralel menggunakan rentang segmen tertentu

Contoh berikut menunjukkan koleksi Amazon DocumentDB yang memiliki tujuh item, _id dan sebagai kunci utama.

Koleksi Amazon DocumentDB dengan tujuh item.

Untuk membagi koleksi menjadi tiga segmen dan bermigrasi secara paralel, Anda dapat menambahkan aturan pemetaan tabel untuk tugas migrasi Anda seperti yang ditunjukkan dalam contoh JSON berikut.

{ // Task table mappings: "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "testdatabase", "table-name": "testtable" }, "rule-action": "include" }, // "selection" :"rule-type" { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "testdatabase", "table-name": "testtable" }, "parallel-load": { "type": "ranges", "columns": [ "_id", "num" ], "boundaries": [ // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79 // and num less-than-or-equal-to 2. [ "5f805c97873173399a278d79", "2" ], // Second segment selects documents with _id > 5f805c97873173399a278d79 and // _id less-than-or-equal-to 5f805cc5873173399a278d7c and // num > 2 and num less-than-or-equal-to 5. [ "5f805cc5873173399a278d7c", "5" ] // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c. ] // :"boundaries" } // :"parallel-load" } // "table-settings" :"rule-type" ] // :"rules" } // :Task table mappings

Bahwa definisi pemetaan tabel membagi koleksi sumber menjadi tiga segmen dan bermigrasi secara paralel. Berikut ini adalah batas-batas segmentasi.

Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records) Data with _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 and not in (_id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2) (3 records) Data not in (_id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5) (2 records)

Setelah tugas migrasi selesai, Anda dapat melakukan verifikasi dari log tugas yang dimuat tabel secara paralel, seperti yang ditunjukkan dalam contoh berikut. Anda juga dapat memverifikasi klausa Amazon find DocumentDB yang digunakan untuk membongkar setiap segmen dari tabel sumber.

[TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328) [SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent. [TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328) [SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent. [TARGET_LOAD ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480. [TASK_MANAGER ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.

Saat ini, AWS DMS mendukung tipe data Amazon DocumentDB berikut sebagai kolom kunci segmen:

  • Dua Kali

  • String

  • ObjectId

  • 32 bit integer

  • 64 bit integer

Migrasi beberapa database saat menggunakan Amazon DocumentDB sebagai sumber untuk AWS DMS

AWS DMS versi 3.4.5 dan yang lebih tinggi mendukung migrasi beberapa database dalam satu tugas hanya untuk Amazon DocumentDB versi 4.0 dan yang lebih tinggi. Jika Anda ingin memigrasi beberapa database, lakukan hal berikut:

  1. Saat Anda membuat titik akhir sumber Amazon DocumentDB:

    • Dalam AWS Management Console for AWS DMS, biarkan nama Database kosong di bawah konfigurasi Endpoint pada halaman Create endpoint.

    • Di AWS Command Line Interface (AWS CLI), tetapkan nilai string kosong ke DatabaseNameparameter di DocumentDbSettings yang Anda tentukan untuk tindakan tersebut. CreateEndpoint

  2. Untuk setiap database yang ingin Anda migrasi dari titik akhir sumber Amazon DocumentDB ini, tentukan nama setiap database sebagai nama skema dalam pemetaan tabel untuk tugas menggunakan input terpandu di konsol atau langsung di JSON. Untuk informasi lebih lanjut tentang input yang dipandu, lihat deskripsi Menentukan pemilihan tabel dan transformasi aturan dari konsol. Untuk informasi lebih lanjut tentang JSON, lihatAturan seleksi dan tindakan.

Misalnya, Anda dapat menentukan JSON berikut untuk memigrasikan tiga database Amazon DocumentDB.

contoh Memigrasi semua tabel dalam skema

JSON berikut memigrasikan semua tabel dariCustomers,Orders, dan Suppliers database di sumber Anda enpoint ke titik akhir target Anda.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Customers", "table-name": "%" }, "object-locator": { "schema-name": "Orders", "table-name": "%" }, "object-locator": { "schema-name": "Inventory", "table-name": "%" }, "rule-action": "include" } ] }

Keterbatasan saat menggunakan Amazon DocumentDB sebagai sumber untuk AWS DMS

Berikut ini adalah batasan saat menggunakan Amazon DocumentDB sebagai sumber untuk: AWS DMS

  • Saat opsi _id diatur sebagai kolom terpisah, string ID tidak dapat melebihi 200 karakter.

  • ID objek dan kunci jenis rangkaian dikonversi ke kolom yang diawali dengan oid dan array dalam mode tabel.

    Secara internal, kolom ini direferensikan dengan nama prefiks. Jika Anda menggunakan aturan transformasi dalam AWS DMS referensi kolom ini, pastikan untuk menentukan kolom awalan. Sebagai contoh, tentukan ${oid__id} dan bukan ${_id}, atau ${array__addresses} dan bukan ${_addresses}.

  • Nama koleksi dan nama kunci tidak dapat menyertakan simbol dolar ($).

  • Mode tabel dan mode dokumen memiliki keterbatasan seperti yang dibahas sebelumnya.

  • Migrasi secara paralel menggunakan autosegmentasi memiliki keterbatasan yang dijelaskan sebelumnya.

  • Sumber Amazon DocumentDB (kompatibel dengan MongoDB) tidak mendukung penggunaan stempel waktu tertentu sebagai posisi awal untuk pengambilan data perubahan (CDC). Tugas replikasi yang sedang berlangsung mulai menangkap perubahan terlepas dari timestamp.

  • Saat menggunakan DocumentDB (kompatibel dengan MongoDB) sebagai sumber, DMS dapat menangani maksimum 250 catatan per detik.

  • AWS DMS tidak mendukung dokumen di mana tingkat bersarang lebih besar dari 97.

  • Filter sumber tidak didukung untuk DocumentDB.

  • AWS DMS tidak mendukung replikasi CDC (ubah pengambilan data) untuk DocumentDB sebagai sumber dalam mode cluster elastis.

Menggunakan pengaturan titik akhir dengan Amazon DocumentDB sebagai sumber

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data sumber Amazon DocumentDB mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint perintah di AWS CLI, dengan sintaks --doc-db-settings '{"EndpointSetting": "value", ...}' JSON.

Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan Amazon DocumentDB sebagai sumber.

Nama atribut Nilai valid Nilai default dan deskripsi

NestingLevel

"none"

"one"

"none" — Tentukan "none" untuk menggunakan mode dokumen. Tentukan "one" untuk menggunakan mode tabel.

ExtractDocID

boolean

true

false

false — Gunakan atribut ini ketika NestingLevel diatur menjadi "none".

Jika database target Anda adalah Amazon DocumentDB, atur. '{"ExtractDocID": true}'

DocsToInvestigate

Sebuah integer positif lebih besar dari 0.

1000 — Gunakan atribut ini ketika NestingLevel diatur menjadi "one".

ReplicateShardCollections

boolean

true

false

Jika benar, AWS DMS mereplikasi data ke koleksi pecahan. AWS DMS hanya menggunakan pengaturan ini jika titik akhir target adalah cluster elastis DocumentDB.

Jika pengaturan ini benar, perhatikan hal berikut:

  • Anda harus mengatur TargetTablePrepMode kenothing.

  • AWS DMS secara otomatis disetel useUpdateLookup kefalse.

Tipe data sumber untuk Amazon DocumentDB

Dalam tabel berikut, Anda dapat menemukan tipe data sumber Amazon DocumentDB yang didukung saat menggunakan. AWS DMS Anda juga dapat menemukan pemetaan default dari tipe AWS DMS data dalam tabel ini. Untuk informasi lebih lanjut tentang jenis data, lihat Jenis BSON dalam dokumentasi MongoDB.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

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

Jenis data Amazon DocumentDB

AWS DMS tipe data

Boolean

Bool

Binary

BLOB

Date

Date

Timestamp

Date

Int

INT4

Long

INT8

Double

REAL8

String (UTF-8)

CLOB

Array

CLOB

OID

String