All Products
Search
Document Center

DataWorks:Tulis data ke sumber data MongoDB melalui sinkronisasi batch

Last Updated:Feb 27, 2026

Data Integration di DataWorks menyediakan plugin MongoDB Writer yang memungkinkan Anda membaca data dari berbagai sumber data dan menuliskannya ke MongoDB. Topik ini menjelaskan cara menggunakan Data Integration untuk melakukan sinkronisasi offline data dari MaxCompute ke MongoDB.

Prasyarat

Sebelum memulai, pastikan prasyarat berikut terpenuhi.

  • DataWorks telah diaktifkan dan sumber data MaxCompute telah dibuat.

  • Diperlukan grup sumber daya eksklusif untuk Data Integration guna menjalankan task offline pada contoh ini. Untuk informasi lebih lanjut tentang cara membeli dan mengonfigurasi grup sumber daya eksklusif untuk Data Integration, lihat Gunakan grup sumber daya eksklusif untuk Data Integration.

    Catatan

    Anda juga dapat menggunakan grup sumber daya tujuan umum. Untuk informasi lebih lanjut, lihat Gunakan grup sumber daya Serverless.

Persiapkan tabel data sampel

Untuk contoh ini, siapkan koleksi MongoDB dan tabel MaxCompute untuk sinkronisasi data offline.

  1. Siapkan tabel MaxCompute dan tambahkan data ke dalamnya.

    1. Buat tabel partisi bernama test_write_mongo dengan bidang partisi pt.

      CREATE TABLE IF NOT EXISTS test_write_mongo(
          id STRING ,
          col_string STRING,
          col_int int,
          col_bigint bigint,
          col_decimal decimal,
          col_date DATETIME,
          col_boolean boolean,
          col_array string
      ) PARTITIONED BY (pt STRING) LIFECYCLE 10;
    2. Tambahkan partisi dengan nilai 20230215.

      insert into test_write_mongo partition (pt='20230215')
      values ('11','name11',1,111,1.22,cast('2023-02-15 15:01:01' as datetime),true,'1,2,3');
    3. Verifikasi bahwa tabel partisi telah dibuat dengan benar.

      SELECT * FROM test_write_mongo
      WHERE pt='20230215';
  2. Siapkan koleksi MongoDB tempat data MaxCompute akan disinkronkan.

    Contoh ini menggunakan Alibaba Cloud ApsaraDB for MongoDB. Buat koleksi bernama test_write_mongo.

    db.createCollection('test_write_mongo')

Konfigurasi task offline

Langkah 1: Tambahkan sumber data MongoDB

Tambahkan sumber data MongoDB dan pastikan koneksi jaringan telah terbentuk antara sumber data tersebut dan grup sumber daya eksklusif untuk Data Integration. Untuk informasi lebih lanjut, lihat Konfigurasi sumber data MongoDB.

Langkah 2: Buat node sinkronisasi offline dan konfigurasikan tugas

Di DataStudio DataWorks, buat node sinkronisasi offline, lalu konfigurasikan parameter untuk sumber dan tujuan. Anda dapat menggunakan nilai default untuk parameter yang tidak dijelaskan dalam langkah-langkah berikut. Untuk informasi lebih lanjut, lihat Konfigurasi task sinkronisasi di Antarmuka tanpa kode.

  1. Konfigurasikan koneksi jaringan untuk task sinkronisasi.

    Pilih sumber data MongoDB dan MaxCompute yang telah Anda buat, pilih grup sumber daya eksklusif untuk Data Integration yang telah dikonfigurasi, lalu uji koneksi jaringan.

  2. Konfigurasikan task: Pilih sumber data.

    Pilih tabel partisi MaxCompute dan koleksi MongoDB yang telah Anda siapkan.

    Parameter

    Deskripsi

    Write mode (overwrite)

    Menentukan apakah data akan ditimpa selama transfer. Parameter ini mencakup Write mode dan Business primary key:

    • Write mode:

      • Jika diatur ke No, operasi insert dilakukan untuk setiap record. Ini adalah opsi default.

      • Jika diatur ke Yes, Anda harus menentukan Business primary key. Operasi overwrite dilakukan untuk record yang memiliki business primary key yang sama.

    • Business primary key: Menentukan business primary key untuk setiap baris. Kunci ini digunakan dalam operasi overwrite. Anda tidak dapat menentukan multiple business primary key. Biasanya ini merujuk pada primary key di MongoDB.

    Catatan

    Jika Write mode diatur ke Yes dan bidang selain `_id` dikonfigurasi sebagai business primary key, kesalahan serupa berikut dapat terjadi saat waktu proses: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2". Hal ini terjadi karena data yang ditulis berisi record di mana `_id` tidak sesuai dengan `replaceKey`. Untuk informasi lebih lanjut, lihat Error: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".

    Pre-import statements

    Konfigurasi untuk pernyataan pra-eksekusi (PreSQL). Konfigurasi ini dalam format JSON dan mencakup properti type dan json.

    • type: **Wajib**. Nilai yang valid: remove dan drop. Perhatikan bahwa nilai harus dalam huruf kecil.

    • json:

      • Jika type adalah remove, properti ini **wajib**. Sintaks konfigurasi mengikuti standar MongoDB Query. Untuk informasi lebih lanjut, lihat Query Documents.

      • Jika type adalah drop, Anda tidak perlu mengonfigurasi properti ini.

  3. Konfigurasikan task: Pemetaan bidang.

    Untuk sumber data MongoDB, Same-row Mapping digunakan secara default. Anda juga dapat mengklik icon untuk mengedit bidang tabel sumber secara manual. Berikut adalah contoh pengeditan manual.

    {"name":"id","type":"string"}
    {"name":"col_string","type":"string"}
    {"name":"col_int","type":"long"}
    {"name":"col_bigint","type":"long"}
    {"name":"col_decimal","type":"double"}
    {"name":"col_date","type":"date"}
    {"name":"col_boolean","type":"bool"}
    {"name":"col_array","type":"array","splitter":","}

    Setelah Anda mengedit bidang secara manual, pemetaan antara bidang sumber dan tujuan akan ditampilkan di antarmuka.

Langkah 3: Kirim dan publikasikan node sinkronisasi offline

Jika Anda menggunakan ruang kerja mode standar di DataWorks dan ingin menjadwalkan task sinkronisasi offline ini secara berkala, Anda harus mengirim dan mempublikasikan node sinkronisasi offline ke lingkungan produksi. Untuk informasi lebih lanjut, lihat Publikasikan task.

Langkah 4: Jalankan node sinkronisasi offline dan lihat hasilnya

Setelah konfigurasi selesai, jalankan node sinkronisasi. Setelah node berhasil dijalankan, Anda dapat melihat data yang telah disinkronkan ke koleksi MongoDB.结果数据2

Lampiran: Konversi format data selama sinkronisasi

Tentang nilai tipe

Tipe yang didukung meliputi INT, LONG, DOUBLE, STRING, BOOL, DATE, dan ARRAY.

Tentang tipe array

Jika Anda mengatur tipe ke `ARRAY`, Anda harus mengonfigurasi properti `splitter`. Hal ini mengonversi data ke tipe array di MongoDB. Contohnya:

  • Data sumber berupa string: a,b,c.

  • Dalam konfigurasi task sinkronisasi, atur type ke ARRAY dan `splitter` ke `,`.

  • Setelah task sinkronisasi dieksekusi, data yang ditulis ke MongoDB adalah: ["a","b","c"].