Plugin MongoDB Writer di DataWorks Data Integration menyinkronkan data dari sumber data lain ke MongoDB. Topik ini menjelaskan cara melakukan sinkronisasi batch dari MaxCompute ke MongoDB.
Prasyarat
Sebelum memulai, pastikan Anda telah memenuhi persyaratan berikut:
-
DataWorks telah diaktifkan dan Anda telah menambahkan sumber data MaxCompute.
-
Tutorial ini menggunakan grup sumber daya eksklusif untuk Data Integration guna menjalankan tugas batch. Anda harus membeli dan mengonfigurasi grup sumber daya tersebut sebelum melanjutkan. Untuk informasi selengkapnya, lihat Gunakan grup sumber daya eksklusif untuk Data Integration.
CatatanAnda juga dapat menggunakan grup sumber daya serverless. Untuk informasi selengkapnya, lihat Gunakan grup sumber daya serverless.
Siapkan data sampel
Siapkan koleksi MongoDB dan tabel MaxCompute untuk sinkronisasi batch.
-
Buat tabel MaxCompute dan tambahkan data ke dalamnya.
-
Buat tabel partisi bernama
test_write_mongo. Tetapkan bidang partisi kept.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 tujuan.
Tutorial ini menggunakan ApsaraDB for MongoDB sebagai contoh. Buat koleksi bernama
test_write_mongo.db.createCollection('test_write_mongo')
Konfigurasi tugas batch
Langkah 1: Tambahkan sumber data MongoDB
Tambahkan sumber data MongoDB dan buat koneksi jaringan antara sumber data tersebut dengan grup sumber daya eksklusif untuk Data Integration. Untuk informasi selengkapnya, lihat Konfigurasi sumber data MongoDB.
Langkah 2: Buat dan konfigurasi node sinkronisasi batch
Di DataStudio DataWorks, buat node sinkronisasi batch dan konfigurasikan sumber serta tujuannya. Bagian ini hanya menjelaskan parameter utama; biarkan parameter lain pada nilai default-nya. Untuk petunjuk lengkap, lihat Konfigurasi tugas di Antarmuka tanpa kode.
-
Konfigurasi koneksi jaringan untuk sinkronisasi.
Pilih sumber data MongoDB, sumber data MaxCompute, dan grup sumber daya eksklusif untuk Data Integration. Kemudian, uji konektivitasnya.
-
Konfigurasi sumber dan tujuan.
Pilih tabel partisi MaxCompute dan koleksi MongoDB. Tabel berikut menjelaskan parameter utama.
Parameter
Deskripsi
write mode
Menentukan apakah akan menimpa data yang sudah ada. Fungsionalitas ini melibatkan dua pengaturan terkait:
write modedanbusiness primary key:-
write mode:-
Jika Anda memilih No, plugin akan memasukkan setiap record sebagai dokumen baru. Ini adalah opsi default.
-
Jika Anda memilih Yes, Anda harus menentukan
business primary key. Plugin kemudian akan menimpa record yang memiliki business primary key yang sama.
-
-
business primary key: Menentukan business primary key untuk setiap record, yang digunakan dalam operasi penimpaan. Anda hanya dapat menentukan satu bidang. Di MongoDB, ini biasanya bersesuaian dengan bidang_id.
CatatanJika
write modediatur ke Yes dan Anda menentukan bidang selain _id sebagai business primary key, error seperti berikut mungkin terjadi:After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2". Error ini terjadi karena data masuk berisi record yang _id-nya tidak sesuai dengan _id dokumen yang sudah ada yang diidentifikasi oleh business primary key. Untuk informasi selengkapnya, lihat Error: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".Pre-Import Statement
Menentukan prasyarat (PreSQL) yang dijalankan sebelum tugas impor. Konfigurasi harus dalam format JSON dan mencakup properti
typedanjson.-
type: Wajib diisi. Nilai yang valid adalahremovedandrop(dalam huruf kecil). -
json:-
Jika
typediatur keremove, parameter ini wajib diisi. Nilainya harus berupa kueri MongoDB standar. Untuk informasi selengkapnya, lihat Query Documents. -
Jika
typediatur kedrop, parameter ini tidak diperlukan.
-
-
-
Konfigurasi pemetaan bidang.
Saat sumber data adalah MongoDB, Peer mapping digunakan secara default. Anda juga dapat mengklik ikon
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, antarmuka akan menampilkan pemetaan antara bidang sumber dan tujuan.
Bidang sumber
Bidang tujuan
id
{"name":"id","type":"string"}col_string
{"name":"col_string","type":"string"}col_int
{"name":"col_int","type":"long"}col_bigint
{"name":"col_bigint","type":"long"}col_decimal
{"name":"col_decimal","type":"double"}col_date
{"name":"col_date","type":"date"}col_boolean
{"name":"col_boolean","type":"bool"}col_array
{"name":"col_array","type":"array","splitter":","}
Langkah 3: Commit dan deploy node sinkronisasi batch
Untuk menjalankan tugas ini secara berkala di ruang kerja mode standar, Anda harus melakukan commit dan deploy node sinkronisasi batch ke lingkungan produksi. Untuk informasi selengkapnya, lihat penerapan node.
Langkah 4: Jalankan node sinkronisasi batch dan lihat hasilnya
Setelah Anda mengonfigurasi node, jalankan node tersebut. Saat tugas selesai, lihat data yang telah disinkronkan di koleksi MongoDB. Tugas ini membuat dokumen di database tujuan dengan bidang dan nilai berikut: _id adalah 63ecc513143e565c9b037623, col_array adalah [1, 2, 3], col_bigint adalah 111, col_boolean adalah true, col_date adalah 2023-02-15T07:01:01.000Z, col_decimal adalah 1.22, col_int adalah 1, col_string adalah name11, dan id adalah 11.
Lampiran: Konversi tipe data
Nilai yang didukung untuk parameter type
Nilai yang didukung untuk parameter type adalah: INT, LONG, DOUBLE, STRING, BOOL, DATE, dan ARRAY.
Tipe array
Untuk menulis data sebagai array MongoDB, atur parameter type ke ARRAY dan konfigurasi properti splitter. Contohnya:
-
Data sumber adalah string:
a,b,c. -
Dalam konfigurasi tugas, type diatur ke
ARRAYdan splitter diatur ke,. -
Setelah tugas dijalankan, data yang dihasilkan di MongoDB adalah:
["a","b","c"].