DataWorks Data Integration menyediakan MongoDB Writer yang memungkinkan Anda menulis data dari sumber data lain ke sumber data MongoDB. Topik ini memberikan contoh cara menggunakan tugas sinkronisasi batch di Data Integration untuk menyinkronkan data dari sumber data MaxCompute ke sumber data MongoDB.
Prasyarat
DataWorks telah diaktifkan dan sumber data MaxCompute telah ditambahkan ke ruang kerja DataWorks.
Grup sumber daya eksklusif untuk Data Integration telah dibeli dan dikonfigurasi. Grup ini digunakan untuk menjalankan tugas sinkronisasi batch dalam topik ini. Untuk informasi lebih lanjut, lihat Buat dan gunakan grup sumber daya eksklusif untuk Data Integration.
CatatanAnda juga dapat menggunakan grup sumber daya versi baru. Untuk informasi lebih lanjut, lihat Buat dan gunakan grup sumber daya serverless.
Buat persiapan
Dalam contoh ini, Anda perlu menyiapkan koleksi data MongoDB dan tabel MaxCompute untuk sinkronisasi data.
Siapkan tabel MaxCompute dan buat data untuk tabel tersebut.
Buat tabel partisi bernama
test_write_mongo. Bidang partisi adalahpt.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;Tambahkan nilai
20230215pada bidang partisi.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');Periksa apakah tabel partisi telah dibuat dengan benar.
SELECT*FROM test_write_mongo WHEREpt='20230215';
Siapkan koleksi data MongoDB sebagai tujuan penulisan data yang dibaca dari tabel MaxCompute yang dipartisi.
Dalam contoh ini, ApsaraDB for MongoDB digunakan untuk membuat koleksi data bernama
test_write_mongo.db.createCollection('test_write_mongo')
Konfigurasikan tugas sinkronisasi batch
Langkah 1: Tambahkan sumber data MongoDB
Tambahkan sumber data MongoDB dan pastikan koneksi jaringan telah dibuat antara sumber data dan grup sumber daya eksklusif untuk Data Integration. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data MongoDB.
Langkah 2: Buat dan konfigurasikan tugas sinkronisasi batch
Buat tugas sinkronisasi batch di halaman DataStudio pada konsol DataWorks dan konfigurasikan item-item seperti sumber dan tujuan untuk tugas sinkronisasi batch. Bagian ini menjelaskan beberapa item yang perlu Anda konfigurasikan. Untuk item lainnya, gunakan nilai default. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi batch menggunakan UI tanpa kode.
Buat koneksi jaringan antara sumber data dan grup sumber daya eksklusif untuk Data Integration.
Pilih sumber data MongoDB yang ditambahkan pada Langkah 1, sumber data MaxCompute yang telah ditambahkan, serta grup sumber daya eksklusif untuk Data Integration. Kemudian, uji konektivitas jaringan antara sumber data dan grup sumber daya tersebut.
Pilih sumber data.
Pilih tabel MaxCompute yang dipartisi dan koleksi data MongoDB yang disiapkan selama langkah persiapan data. Tabel berikut menjelaskan cara mengonfigurasi parameter utama untuk tugas sinkronisasi batch.
Parameter
Deskripsi
WriteMode(overwrite or not)
Menentukan apakah akan menimpa data yang ada di koleksi data MongoDB. Jika Anda mengatur parameter ini ke Ya, Anda harus mengonfigurasi parameter
ReplaceKey.WriteMode(menimpa atau tidak)Jika Anda mengatur nilainya ke No, data dimasukkan ke dalam koleksi data MongoDB sebagai entri data baru. Nilai Tidak adalah nilai default.
Jika Anda mengatur nilainya ke Yes, Anda harus mengonfigurasi parameter
ReplaceKey. Pengaturan ini memastikan bahwa entri data yang ada ditimpa oleh entri data baru yang memiliki nilai kunci utama yang sama.
ReplaceKey: kunci utama untuk setiap catatan data. Data ditimpa berdasarkan kunci utama. Anda hanya dapat menentukan satu kolom kunci utama. Dalam kebanyakan kasus, kunci utama dalam koleksi data MongoDB digunakan.
CatatanJika Anda mengatur parameter
WriteMode(menimpa atau tidak)ke Yes, dan Anda menentukan bidang selain bidang _id sebagai kunci utama, kesalahan yang mirip dengan kesalahan berikut mungkin terjadi saat tugas dijalankan:After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2". Alasannya adalah nilai bidang _id tidak sesuai dengan nilai parameter replaceKey untuk sebagian data yang ditulis ke koleksi data MongoDB tujuan. Untuk informasi lebih lanjut, lihat Kesalahan: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".Statement Run Before Writing
Pernyataan SQL yang ingin Anda jalankan sebelum sinkronisasi data. Anda dapat mengonfigurasi pernyataan SQL dalam format JSON, dan mengonfigurasi properti
typedanjson.type: wajib. Nilai valid:removedandrop. Nilai-nilai tersebut harus dalam huruf kecil.json:Jika
typediatur keremove, properti ini wajib. Anda harus mengonfigurasi properti berdasarkan sintaks operasi query standar MongoDB. Untuk informasi lebih lanjut, lihat Query Documents.Jika
typediatur kedrop, properti ini tidak diperlukan.
Konfigurasikan pemetaan bidang.
Jika sumber data MongoDB ditambahkan, metode mapping fields in a row of the source to the fields in the same row of the destination digunakan secara default. Anda juga dapat mengklik ikon
untuk mengedit bidang di tabel sumber secara manual. Contoh kode berikut menunjukkan cara mengedit bidang di tabel sumber:{"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, pemetaan baru antara bidang sumber dan bidang tujuan akan ditampilkan di tab konfigurasi tugas.
Langkah 3: Kirim dan terapkan tugas sinkronisasi batch
Jika Anda menggunakan ruang kerja dalam mode standar dan ingin menjadwalkan tugas sinkronisasi batch secara berkala di lingkungan produksi, Anda dapat mengirim dan menerapkan tugas ke lingkungan produksi. Untuk informasi lebih lanjut, lihat Terapkan Node.
Langkah 4: Jalankan tugas sinkronisasi batch dan lihat hasil sinkronisasi
Setelah menyelesaikan konfigurasi sebelumnya, Anda dapat menjalankan tugas sinkronisasi batch. Setelah proses selesai, Anda dapat melihat data yang telah disinkronkan ke koleksi data ApsaraDB for MongoDB.
Lampiran: Konversi tipe data selama sinkronisasi data
Nilai parameter type
Tipe data berikut didukung untuk parameter type: INT, LONG, DOUBLE, STRING, BOOL, DATE, dan ARRAY.
Data yang ditulis ke koleksi data MangoDB saat type diatur ke ARRAY
Jika Anda menetapkan parameter type sebagai ARRAY, Anda perlu mengonfigurasi properti splitter. Dengan demikian, data dapat ditulis ke koleksi data MongoDB dalam format array. Contoh:
Data sumber adalah string:
a,b,c.Anda menetapkan parameter type sebagai
ARRAYdan properti splitter sebagai,untuk tugas sinkronisasi batch.Data yang ditulis ke tujuan adalah
["a","b","c"]saat tugas dijalankan.