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.
CatatanAnda 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.
Siapkan tabel MaxCompute dan tambahkan data ke dalamnya.
Buat tabel partisi bernama
test_write_mongodengan bidang partisipt.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 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');Verifikasi bahwa tabel partisi telah dibuat dengan benar.
SELECT * FROM test_write_mongo WHERE pt='20230215';
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.
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.
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 modedanBusiness 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.
CatatanJika
Write modediatur 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
typedanjson.type: **Wajib**. Nilai yang valid:removedandrop. Perhatikan bahwa nilai harus dalam huruf kecil.json:Jika
typeadalahremove, properti ini **wajib**. Sintaks konfigurasi mengikuti standar MongoDB Query. Untuk informasi lebih lanjut, lihat Query Documents.Jika
typeadalahdrop, Anda tidak perlu mengonfigurasi properti ini.
Konfigurasikan task: Pemetaan bidang.
Untuk sumber data MongoDB, Same-row Mapping digunakan secara default. Anda juga dapat mengklik
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.
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
typekeARRAYdan `splitter` ke `,`.Setelah task sinkronisasi dieksekusi, data yang ditulis ke MongoDB adalah:
["a","b","c"].