All Products
Search
Document Center

Data Transmission Service:Migrasi data dari instans ApsaraDB for MongoDB ke instans Lindorm

Last Updated:Mar 29, 2026

Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans replica set atau kluster sharded ApsaraDB for MongoDB ke instans tabel lebar Lindorm. DTS mendukung migrasi data penuh dan migrasi data inkremental, sehingga Anda dapat melakukan migrasi tanpa menghentikan aplikasi.

Pilih jenis migrasi

Pilih jenis migrasi berdasarkan apakah aplikasi Anda dapat mentoleransi downtime.

Jenis migrasiKapan digunakanDiperlukan downtime
Hanya migrasi data penuhAplikasi Anda dapat mentoleransi jendela pemeliharaan. Hentikan operasi write ke sumber sebelum migrasi.Ya — hentikan operasi write selama migrasi
Migrasi data penuh + inkrementalAplikasi Anda harus tetap online selama migrasi. DTS menyinkronkan perubahan yang sedang berlangsung hingga Anda melakukan cut over.Tidak — cut over kapan saja
Penting

Jika Anda memilih hanya migrasi data penuh, hentikan operasi write ke database sumber sebelum tugas dimulai. Melakukan write ke sumber selama migrasi hanya-penuh menyebabkan inkonsistensi data.

Prasyarat

Sebelum memulai, pastikan:

Untuk sumber kluster sharded:

  • Titik akhir node shard telah dikonfigurasi dan semua node shard menggunakan akun dan password yang sama. Lihat Ajukan titik akhir untuk shard.

  • Bidang _id di semua koleksi yang akan dimigrasikan bersifat unik di seluruh shard.

  • Jumlah node Mongos tidak melebihi 10.

For incremental data migration:

  • Untuk memigrasikan operasi UPDATE dan DELETE, tambahkan kolom non-kunci primer bernama _mongo_id_ ke tabel lebar Lindorm sebelum memulai tugas:

    • SQL-created table: Tipe data kolom harus sesuai dengan tipe kolom _id di instans MongoDB sumber. Buat indeks sekunder pada kolom ini.

    • Apache HBase API-created table: Kolom tersebut harus termasuk dalam keluarga kolom f. Tipe data harus sesuai dengan tipe kolom _id. Buat indeks sekunder pada kolom ini. Jika Anda ingin menambahkan kolom tambahan dan menggunakan fitur ETL, pastikan instans Lindorm tidak berisi data duplikat.

  • Fitur oplog diaktifkan pada database sumber, dan log operasi disimpan minimal selama 7 hari. Atau, change streams diaktifkan dan DTS dapat berlangganan perubahan dari 7 hari terakhir.

Jika tabel lebar dibuat menggunakan API Apache HBase, buat pemetaan kolom sebelum mengonfigurasi tugas migrasi. Lihat Tambahkan pemetaan kolom untuk tabel API Apache HBase.

Penagihan

Jenis migrasiBiaya konfigurasi tugasBiaya transfer data
Migrasi data penuhGratisGratis, kecuali jika Connection Type diatur ke Public IP Address (lalu lintas internet dikenai biaya). Lihat Item yang dikenai biaya.
Migrasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan.

Jenis migrasi

Jenis migrasiDeskripsi
Migrasi data penuhDTS memigrasikan data yang ada dari objek yang akan dimigrasikan dari instans sumber ApsaraDB for MongoDB ke instans tujuan Lindorm.
Catatan

DTS mendukung migrasi data penuh untuk database dan koleksi.

Migrasi data inkrementalSetelah migrasi data penuh selesai, DTS memigrasikan data inkremental dari instans sumber ApsaraDB for MongoDB ke instans tujuan Lindorm. Hanya operasi INSERT, UPDATE, dan DELETE pada dokumen yang dimigrasikan. Untuk operasi UPDATE, hanya update dari $set yang dimigrasikan.

Izin yang diperlukan

DatabaseMigrasi data penuhMigrasi data inkremental
Sumber ApsaraDB for MongoDBBaca pada database sumberBaca pada database sumber, database admin, dan database local
Instans Lindorm tujuanBaca dan tulisBaca dan tulis

Lihat Kelola izin pengguna database MongoDB dan Kelola pengguna.

Migrasi data dari MongoDB ke Lindorm

Prosedur berikut menggunakan tabel lebar yang dibuat dengan pernyataan SQL Lindorm sebagai contoh.

Langkah 1: Buka halaman Migrasi Data

Gunakan salah satu metode berikut:

Konsol DTS

  1. Login ke Konsol DTS.Konsol DTS

  2. Di panel navigasi kiri, klik Data Migration.

  3. Di pojok kiri atas, pilih wilayah tempat instans migrasi data berada.

Konsol DMS

Langkah aktual dapat berbeda tergantung mode dan tata letak konsol DMS. Lihat Mode sederhana dan Sesuaikan tata letak dan gaya konsol DMS.
  1. Login ke Konsol DMS.Konsol DMS

  2. Di bilah navigasi atas, buka Data + AI > DTS (DTS) > Data Migration.

  3. Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi data berada.

Langkah 2: Konfigurasi database sumber dan tujuan

Klik Create Task, lalu konfigurasikan parameter yang dijelaskan dalam tabel berikut.

Parameter database sumber

ParameterDeskripsi
Task NameNama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar mudah mengidentifikasi tugas. Nama tidak perlu unik.
Select Existing ConnectionJika instans MongoDB sudah terdaftar di DTS, pilih dari daftar. DTS mengisi parameter koneksi secara otomatis. Jika belum, konfigurasikan parameter di bawah.
Database TypePilih MongoDB.
Connection TypePilih Cloud Instance.
Instance RegionWilayah tempat instans sumber ApsaraDB for MongoDB berada.
Replicate Data Across Alibaba Cloud AccountsPilih No.
ArchitectureArsitektur instans sumber. Pilih Replica Set untuk contoh ini. Jika sumber menggunakan arsitektur Sharded Cluster, konfigurasikan juga Shard account dan Shard password.
Migration MethodCara DTS memperoleh perubahan inkremental dari sumber. Oplog (direkomendasikan) — tersedia jika fitur oplog diaktifkan. Secara default, fitur oplog diaktifkan untuk instans ApsaraDB for MongoDB. Gunakan metode ini untuk migrasi inkremental dengan latensi rendah. ChangeStreamChange Streams — tersedia jika change streams diaktifkan. Diperlukan untuk kluster Amazon DocumentDB inelastic. Memerlukan MongoDB V4.0 atau lebih baru. Jika Sharded Cluster dipilih untuk Architecture, Anda tidak perlu mengonfigurasi Shard account dan Shard password saat menggunakan metode ini.
Instance IDID instans sumber ApsaraDB for MongoDB.
Authentication DatabaseDatabase yang menyimpan akun dan password. Nilai default: admin.
Database AccountAkun database untuk instans sumber.
Database PasswordPassword untuk akun database.
EncryptionPilih Non-encrypted, SSL-encrypted, atau Mongo Atlas SSL sesuai kebutuhan Anda. Opsi yang tersedia bergantung pada pilihan Connection Type dan Architecture. Opsi yang ditampilkan di konsol DTS berlaku. Batasan: Jika Architecture adalah Sharded Cluster dan Migration Method adalah Oplog, opsi SSL-encrypted tidak tersedia.

Parameter database tujuan

ParameterDeskripsi
Select Existing ConnectionJika instans Lindorm sudah terdaftar di DTS, pilih dari daftar. Jika belum, konfigurasikan parameter di bawah.
Database TypePilih Lindorm.
Connection TypePilih Alibaba Cloud Instance.
Instance RegionWilayah tempat instans tujuan Lindorm berada.
Instance IDID instans tujuan Lindorm.
Database AccountAkun database untuk instans tujuan Lindorm.
Database PasswordPassword untuk akun database.

Langkah 3: Uji konektivitas dan lanjutkan

Klik Test Connectivity and Proceed di bagian bawah halaman.

DTS harus dapat mengakses database sumber dan tujuan. Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan kedua database. Lihat Tambahkan blok CIDR server DTS. Jika sumber atau tujuan adalah database yang dikelola sendiri dan tidak diakses melalui Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

Langkah 4: Konfigurasi objek yang akan dimigrasikan

Di halaman Configure Objects, atur parameter berikut.

Jenis migrasi dan objek

ParameterDeskripsi
Migration TypesPilih Full Data Migration untuk migrasi satu kali. Pilih kedua opsi Full Data Migration dan Incremental Data Migration untuk menjaga sinkronisasi antara sumber dan tujuan selama migrasi serta meminimalkan downtime.
Processing Mode of Conflicting TablesTidak perlu dikonfigurasi.
Capitalization of Object Names in Destination InstanceKebijakan kapitalisasi untuk nama database dan koleksi di instans tujuan. Nilai default: DTS default policy. Lihat Specify the capitalization of object names in the destination instance.
Source ObjectsPilih koleksi yang akan dimigrasikan, lalu klik 向右小箭头 untuk memindahkannya ke Selected Objects.

Konfigurasi objek yang dipilih

Untuk setiap koleksi di Selected Objects, konfigurasikan nama skema, nama tabel, dan pemetaan kolom.

Contoh berikut menunjukkan bagaimana dokumen MongoDB sumber dipetakan ke baris tabel lebar Lindorm:

Dokumen sumber (ApsaraDB for MongoDB)

{
  "_id": "62cd344c85c1ea6a2a9f****",
  "person": {
    "name": "neo",
    "age": "26",
    "sex": "male"
  }
}

Baris tabel tujuan (Lindorm)

Nama kolomTipeEkspresi nilai
idSTRINGbson_value("_id")
person_nameSTRINGbson_value("person","name")
person_ageBIGINTbson_value("person","age")

Untuk mengonfigurasi nama skema, nama tabel, dan pemetaan kolom:

  1. Edit nama skema:

    1. Di Selected Objects, klik kanan database yang berisi koleksi.

    2. Di kotak dialog Edit Schema, masukkan nama database yang akan digunakan di instans Lindorm di bidang Schema Name. image.png

    3. (Opsional) Di Select DDL and DML Operations to Be Synchronized, pilih operasi yang akan dimigrasikan selama migrasi data inkremental.

    4. Klik OK.

  2. Edit nama tabel:

    1. Di Selected Objects, klik kanan koleksi.

    2. Di kotak dialog Edit Table Name, masukkan nama tabel yang akan digunakan di instans Lindorm di bidang Table Name. image.png

    3. (Opsional) Tentukan kondisi filter. Lihat Tentukan kondisi filter.

    4. (Opsional) Di Select DDL and DML Operations to Be Synchronized, pilih operasi yang akan dimigrasikan selama migrasi data inkremental.

  3. Petakan bidang sumber ke kolom tujuan: DTS secara otomatis memetakan setiap bidang di koleksi sumber menggunakan ekspresi bson_value() dan menetapkannya ke kolom. Di ekspresi bson_value(), nama bidang di dalam "" adalah nama bidang di instans MongoDB sumber. Misalnya, bson_value("age") memetakan bidang age. (Opsional) Klik ikon image di samping kolom untuk menghapus bidang yang tidak perlu dimigrasikan. Periksa bahwa ekspresi bson_value() sesuai dengan kolom tujuan yang diperlukan:

    1. Di ekspresi bson_value() di kolom Assign Value, periksa nama bidang dari MongoDB.

      Bidang di dalam "" adalah nama bidang di MongoDB. Misalnya, jika ekspresinya adalah bson_value("age"), ekspresi ini memetakan bidang age di MongoDB.

    2. (Opsional) Klik ikon image di samping kolom untuk menghapus bidang yang tidak perlu dimigrasikan.

      Catatan

      Untuk menghapus bidang yang tidak perlu dimigrasikan, klik image di baris bidang tersebut.

    3. Konfigurasikan bidang yang akan dimigrasikan.

      Lakukan langkah berikut berdasarkan apakah ekspresi bson_value() memenuhi kebutuhan Anda.

      Bidang yang ekspresinya memenuhi kebutuhan

      1. Masukkan Column Name untuk tabel tujuan.

        Catatan
        • Untuk tabel yang dibuat dengan SQL: gunakan nama kolom yang didefinisikan di tabel.

        • Untuk tabel yang dibuat dengan API Apache HBase: gunakan ROW untuk kolom kunci primer, dan format Keluarga kolom:Nama kolom (misalnya, person:name) untuk kolom lainnya. Buat pemetaan kolom terlebih dahulu. Lihat Tambahkan pemetaan kolom untuk tabel API Apache HBase.

      2. Pilih Type untuk tipe data kolom.

        Penting

        Tipe data kolom tujuan harus kompatibel dengan tipe bidang sumber.

      3. (Opsional) Atur Length dan Precision.

      4. Ulangi langkah ini untuk memetakan semua bidang yang diperlukan.

      Bidang yang ekspresinya tidak memenuhi kebutuhan

      Catatan

      Misalnya, bidang yang memiliki struktur hierarkis (struktur induk-anak).

      1. Klik ikon image di samping kolom.

      2. Klik + Add Column. image

      3. Atur Column Name, Type, Length, dan Precision.

      4. Di kotak teks di bawah Assign Value, masukkan ekspresi bson_value(). Untuk informasi lebih lanjut, lihat Contoh penugasan nilai.

        Penting
        • Selalu tetapkan kolom kunci primer sebagai bson_value("_id").

        • Untuk bidang bersarang, tentukan bidang dan sub-bidang dalam ekspresi — misalnya, bson_value("person","name"). Menggunakan hanya bson_value("person") menyebabkan kehilangan data untuk sub-bidang.

      5. Ulangi untuk setiap bidang.

  4. Klik OK.

Langkah 5: Konfigurasi pengaturan lanjutan

Klik Next: Advanced Settings dan konfigurasikan parameter berikut.

ParameterDeskripsi
Dedicated Cluster for Task SchedulingSecara default, DTS menjadwalkan tugas ke kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat Apa itu kluster khusus DTS.
Retry Time for Failed ConnectionsJendela percobaan ulang ketika database sumber atau tujuan tidak dapat dijangkau. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika DTS terhubung kembali dalam jendela ini, migrasi dilanjutkan secara otomatis. Jika tidak, tugas gagal.
Retry Time for Other IssuesJendela percobaan ulang untuk kegagalan operasi DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10 menit. Kami merekomendasikan mengatur parameter ini lebih dari 10. Nilai ini harus lebih kecil dari Retry Time for Failed Connections.
Enable Throttling for Full Data MigrationBatasi laju baca/tulis selama migrasi penuh untuk mengurangi beban pada sumber dan tujuan. Konfigurasikan QPS (permintaan per detik ke sumber), RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini hanya tersedia saat Full Data Migration dipilih.
Only one data type for primary key _id in a table of the data to be synchronizedMenentukan apakah bidang _id memiliki tipe data yang konsisten di semua dokumen dalam koleksi. Yespengaturan pemberitahuan peringatan — DTS melewati pemindaian tipe data selama migrasi penuh. No — DTS memindai tipe data _id selama migrasi penuh. Tersedia hanya jika Full data migration only: dipilih. Aktifkan sesuai data Anda. Pengaturan yang salah dapat menyebabkan kehilangan data.
Enable Throttling for Incremental Data MigrationBatasi laju migrasi inkremental dengan mengonfigurasi RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Opsi ini hanya tersedia saat Incremental Data Migration dipilih.
Environment TagTag opsional untuk mengidentifikasi instans DTS.
Configure ETLAktifkan fitur ekstrak, transformasi, dan muat (ETL) untuk mentransformasi data selama migrasi. Yes — masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. No — nonaktifkan ETL. Untuk tabel yang dibuat dengan API Apache HBase, gunakan skrip ETL untuk menentukan kolom mana yang akan dimigrasikan. Secara default, semua bidang tingkat atas masuk ke keluarga kolom f. Contoh: script:e_expand_bson_value("*", "_id,name") menulis semua bidang kecuali _id dan name sebagai kolom dinamis. DTS tidak memigrasikan kolom tambahan atau kolom yang tidak termasuk dalam tugas ETL. Jika Anda menambahkan kolom tambahan dan menggunakan ETL, pastikan instans Lindorm tidak berisi data duplikat.
Monitoring and AlertingKonfigurasikan peringatan untuk kegagalan tugas atau latensi migrasi tinggi. Yes — atur ambang batas peringatan dan kontak notifikasi. Lihat Konfigurasi pemantauan dan peringatan saat membuat tugas DTS. No — tanpa peringatan.

Langkah 6: Jalankan pemeriksaan awal dan simpan pengaturan

Klik Next: Save Task Settings and Precheck.

Untuk melihat parameter API untuk konfigurasi tugas ini sebelum menyimpan, arahkan pointer ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.

DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Atasi kegagalan pemeriksaan awal:

  • Untuk item yang gagal: klik View Details, perbaiki masalah, lalu klik Precheck Again.

  • Untuk item peringatan:

    • Jika peringatan tidak dapat diabaikan, perbaiki masalah dan jalankan pemeriksaan awal lagi.

    • Jika peringatan dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.

Langkah 7: Beli dan mulai instans

  1. Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.

  2. Di halaman Purchase Instance, konfigurasikan parameter berikut:

    ParameterDeskripsi
    Resource GroupKelompok sumber daya untuk instans migrasi data. Default: default resource group. Lihat Apa itu Resource Management?
    Instance ClassTier throughput migrasi. Kelas yang lebih tinggi memberikan migrasi lebih cepat. Lihat Kelas instans migrasi data.
  3. Baca Data Transmission Service (Pay-as-you-go) Service Terms dan centang kotaknya.

  4. Klik Buy and Start, lalu klik OK di dialog konfirmasi.

Verifikasi status migrasi

Di halaman Data Migration, periksa status tugas:

  • Full data migration only: Tugas berhenti otomatis saat selesai. Status berubah menjadi Completed.

  • Full + incremental data migration: Migrasi inkremental berjalan terus-menerus tanpa berhenti. Status menunjukkan Running. Hentikan atau lepas tugas secara manual saat Anda siap melakukan cut over ke database tujuan.

Penting

Sebelum mengalihkan beban kerja ke database tujuan, hentikan atau lepas tugas yang gagal. Atau, jalankan REVOKE untuk mencabut izin write dari akun DTS di database tujuan. Jika Anda melewatkan langkah ini dan DTS melanjutkan otomatis tugas yang gagal dalam 7 hari, data dari sumber dapat menimpa data di tujuan.

Batasan

Batasan database sumber

  • Server sumber harus memiliki bandwidth keluar yang cukup. Bandwidth yang tidak mencukupi mengurangi kecepatan migrasi.

  • Koleksi harus memiliki kendala PRIMARY KEY atau UNIQUE, dan semua bidang harus unik. Jika tidak, catatan duplikat mungkin muncul di tujuan.

  • DTS tidak dapat memigrasikan data dari database admin, config, atau local.

  • DTS tidak dapat terhubung ke MongoDB melalui titik akhir SRV.

  • Jika Anda memilih koleksi sebagai objek migrasi dan mengganti namanya, satu tugas dapat memigrasikan hingga 1.000 koleksi. Melebihi batas ini menyebabkan error permintaan. Bagi migrasi menjadi beberapa tugas.

Batasan migrasi data penuh

  • Jangan lakukan perubahan skema pada database atau koleksi selama migrasi data penuh, termasuk pembaruan pada tipe array. Perubahan skema menyebabkan kegagalan tugas atau inkonsistensi data.

  • Jangan menulis data ke database sumber jika Anda hanya menjalankan migrasi data penuh. Menulis ke sumber menyebabkan inkonsistensi data.

  • Operasi INSERT konkuren selama migrasi penuh menyebabkan fragmentasi di koleksi tujuan. Ruang penyimpanan yang digunakan oleh koleksi tujuan akan lebih besar daripada di sumber.

Batasan migrasi data inkremental

  • Hanya operasi INSERT, UPDATE, dan DELETE pada dokumen yang dimigrasikan. Untuk operasi UPDATE, hanya update dari $set yang dimigrasikan.

  • Fitur oplog harus diaktifkan dan log operasi disimpan minimal selama 7 hari, ATAU change streams harus diaktifkan dan DTS harus dapat berlangganan perubahan dari 7 hari terakhir. Jika persyaratan ini tidak terpenuhi, DTS mungkin gagal memperoleh log operasi dan tugas mungkin gagal. Dalam kasus luar biasa, inkonsistensi atau kehilangan data dapat terjadi.

  • Gunakan fitur oplog untuk memperoleh perubahan data jika memungkinkan. Gunakan change streams hanya jika sumber menjalankan MongoDB V4.0 atau lebih baru.

  • Informasi transaksi tidak dipertahankan. Transaksi dikonversi menjadi satu catatan.

  • DTS menghitung latensi migrasi berdasarkan timestamp catatan terbaru yang dimigrasikan di tujuan dan timestamp saat ini di sumber. Jika tidak ada pembaruan di sumber dalam periode panjang, nilai latensi mungkin tidak akurat. Untuk memperbarui latensi, tulis pembaruan ke sumber.

Batasan kluster sharded

  • Bidang _id harus unik di semua shard. Nilai _id duplikat menyebabkan inkonsistensi data.

  • Jumlah node Mongos tidak boleh melebihi 10.

  • Jangan jalankan perintah berikut pada objek yang sedang dimigrasikan saat tugas berjalan: shardCollection, reshardCollection, unshardCollection, moveCollection, movePrimary. Perintah ini mengubah distribusi data dan menyebabkan inkonsistensi data.

  • Jika Balancer aktif di kluster sharded sumber, hal ini dapat menyebabkan latensi migrasi.

Batasan tujuan Lindorm

  • Instans Lindorm tujuan tidak boleh berisi koleksi dengan kolom bernama _id atau _value. Jika kolom tersebut ada, tugas gagal.

  • Data yang dimigrasikan harus mematuhi Batasan permintaan data.

  • Presisi FLOAT default 38 digit; presisi DOUBLE default 308 digit. DTS menggunakan ROUND(COLUMN,PRECISION) untuk mengambil nilai-nilai ini. Verifikasi bahwa pengaturan presisi memenuhi kebutuhan bisnis Anda sebelum memulai migrasi.

  • Jika sumber berisi indeks TTL, inkonsistensi data dapat terjadi setelah migrasi.

Batasan Azure Cosmos DB dan Amazon DocumentDB

  • Untuk kluster Azure Cosmos DB for MongoDB dan kluster elastic Amazon DocumentDB: hanya migrasi data penuh yang didukung.

  • Untuk kluster Amazon DocumentDB inelastic: aktifkan change streams dan atur Migration Method ke ChangeStream dan Architecture ke Sharded Cluster.

Catatan operasional lainnya

  • Evaluasi dampak migrasi terhadap kinerja database sumber dan tujuan sebelum memulai. Jalankan migrasi selama jam sepi jika memungkinkan. Migrasi data penuh menggunakan sumber daya baca dan tulis di kedua database dan dapat meningkatkan beban server.

  • Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter mungkin dimodifikasi. Hanya parameter tugas DTS yang dimodifikasi — parameter database tidak diubah. Parameter yang mungkin dimodifikasi termasuk yang dijelaskan di Modifikasi parameter instans DTS.

Contoh penambahan pemetaan kolom untuk tabel yang dibuat dengan memanggil API Apache HBase

Versi mesin instans Lindorm harus 2.4.0 atau lebih baru.

Dalam contoh ini, digunakan SQL Shell.

  1. Buat pemetaan kolom untuk tabel:

    ALTER TABLE test MAP DYNAMIC COLUMN f:_mongo_id_ HSTRING/HINT/..., person:name HSTRING, person:age HINT;
  2. Buat indeks sekunder pada kolom _mongo_id_:

    CREATE INDEX idx ON test(f:_mongo_id_);

Contoh konfigurasi tugas ETL untuk tabel yang dibuat dengan memanggil API Apache HBase

Dokumen sumber di ApsaraDB for MongoDB

{
  "_id": 0,
  "person": {
    "name": "cindy0",
    "age": 0,
    "student": true
  }
}

Skrip ETL

script:e_expand_bson_value("*", "_id")

Hasil migrasi

Migration result

Contoh penugasan nilai

Struktur dokumen sumber

{
  "_id": "62cd344c85c1ea6a2a9f****",
  "person": {
    "name": "neo",
    "age": "26",
    "sex": "male"
  }
}

Skema tabel tujuan

Nama kolomTipe
idSTRING
person_nameSTRING
person_ageINT

Konfigurasi penugasan kolom

Penting

Tentukan bidang dan sub-bidang dalam ekspresi bson_value() untuk bidang bersarang. Misalnya, menggunakan bson_value("person") saja tidak memigrasikan sub-bidang seperti name, age, dan sex — hanya merujuk ke bidang induk. Hal ini menyebabkan kehilangan data atau kegagalan tugas.

Nama kolomTipeEkspresi nilai
idSTRINGbson_value("_id")
person_nameSTRINGbson_value("person","name")
person_ageBIGINTbson_value("person","age")