Sumber data DM (Dameng) berfungsi sebagai pusat data dan menyediakan saluran dua arah untuk membaca serta menulis data ke database DM, sehingga memungkinkan pemrosesan volume data besar secara cepat. Topik ini menjelaskan kemampuan sinkronisasi data dari sumber data DM di DataWorks.
Batasan
Sinkronisasi offline mendukung pembacaan data dari view.
DM Reader dan DM Writer mendukung kelompok sumber daya Serverless (disarankan) dan kelompok sumber daya eksklusif untuk Data Integration.
Tipe bidang yang didukung
DM Reader dan DM Writer mendukung sebagian besar tipe data database relasional umum, seperti angka dan karakter. Namun, beberapa tipe tidak didukung. Periksa tipe data Anda dan sesuaikan berdasarkan database spesifik yang digunakan.
Tabel berikut mencantumkan tipe data DM yang dapat dikonversi oleh DM Reader.
Kategori | Tipe data DM |
Integer | INT, TINYINT, SMALLINT, dan BIGINT |
Bilangan titik mengambang | REAL, FLOAT, DOUBLE, NUMBER, dan DECIMAL |
String | CHAR, VARCHAR, LONGVARCHAR, dan TEXT |
Tanggal dan waktu | DATE, DATETIME, TIMESTAMP, dan TIME |
Boolean | BIT |
Biner | BINARY, VARBINARY, dan BLOB |
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan tugas sinkronisasi data
Untuk informasi mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasikan tugas sinkronisasi offline untuk satu tabel
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di Antarmuka tanpa kode dan Konfigurasikan tugas di editor kode.
Untuk semua parameter dan contoh skrip editor kode, lihat Lampiran: Contoh skrip dan deskripsi parameter.
Konfigurasikan tugas sinkronisasi baca offline untuk seluruh database
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi real-time untuk seluruh database.
Lampiran: Contoh skrip dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
{
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan tidak ada batasan laju. Jika throttle diatur ke true, batasan laju diterapkan.
"concurrent":1, // Jumlah pekerjaan concurrent.
"mbps":"12"// Batasan laju. 1 mbps setara dengan 1 MB/s.
}
},
"steps": [
{
"category": "reader",
"name": "Reader",
"parameter": {
"datasource": "dm_datasource",
"table": "table",
"column": [
"*"
],
"preSql": [
"delete from XXX;"
],
"fetchSize": 2048
},
"stepType": "dm"
},
{
"category": "writer",
"name": "Writer",
"parameter": {},
"stepType": "stream"
}
],
"type": "job",
"version": "2.0"
}Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data DM. Untuk informasi lebih lanjut tentang cara mengonfigurasi sumber data DM, lihat Konfigurasikan sumber data DM. | Ya | Tidak ada |
table | Tabel tempat Anda ingin menyinkronkan data. | Ya | Tidak ada |
column | Kolom yang ingin Anda sinkronkan. Gunakan array JSON untuk menentukan kolom. Secara default, semua kolom disinkronkan. Contoh: `["*"]`.
| Ya | Tidak ada |
splitPk | Saat DM Reader mengekstrak data, jika Anda menentukan parameter splitPk, artinya Anda ingin menggunakan bidang yang diwakili oleh splitPk untuk partisi data. Sistem sinkronisasi data kemudian memulai tugas concurrent untuk menyinkronkan data guna meningkatkan efisiensi:
| Tidak | Kosong |
where | Kondisi filter. DM Reader membuat pernyataan SQL berdasarkan parameter column, table, dan where yang ditentukan, lalu menggunakan pernyataan tersebut untuk mengekstrak data. Misalnya, untuk tujuan pengujian, Anda dapat mengatur kondisi where menjadi `limit 10`. Dalam skenario bisnis, Anda mungkin ingin menyinkronkan data yang dihasilkan pada hari ini. Dalam kasus ini, Anda dapat mengatur kondisi where menjadi
| Tidak | Tidak ada |
querySql | Dalam beberapa skenario bisnis, parameter where mungkin tidak cukup untuk mendefinisikan kondisi filter. Anda dapat menggunakan parameter ini untuk menentukan pernyataan SQL kustom untuk filtering. Jika Anda menentukan parameter ini, sistem sinkronisasi data akan mengabaikan parameter column dan table, serta menggunakan pernyataan SQL kustom untuk memfilter data. Misalnya, untuk menyinkronkan data setelah penggabungan tabel ganda, gunakan pernyataan seperti | Tidak | Tidak ada |
fetchSize | Parameter ini menentukan jumlah catatan yang diambil dalam setiap batch dari server database. Nilai yang lebih tinggi mengurangi jumlah interaksi jaringan antara sistem sinkronisasi data dan server, yang dapat meningkatkan kinerja pengambilan data. Catatan Nilai fetchSize lebih dari 2048 dapat menyebabkan error kehabisan memori (OOM) dalam proses sinkronisasi data. | Tidak | 1.024 |
Contoh skrip Writer
{
"type": "job",
"steps": [
{
"stepType": "oracle",
"parameter": {
"datasource": "aaa",
"column": [
"PROD_ID",
"name"
],
"where": "",
"splitPk": "",
"encoding": "UTF-8",
"table": "PENGXI.SALES"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "dm",
"parameter": {
"datasource": "dm_datasource",
"table": "table",
"column": [
"id",
"name"
],
"preSql": [
"delete from XXX;"
]
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan tidak ada batasan laju. Jika throttle diatur ke true, batasan laju diterapkan.
"concurrent":2, // Jumlah pekerjaan concurrent.
"mbps":"12"// Batasan laju. 1 mbps setara dengan 1 MB/s.
}
}
}
Parameter skrip Writer
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data DM. Untuk informasi lebih lanjut tentang cara mengonfigurasi sumber data DM, lihat Konfigurasikan sumber data DM. | Ya | Tidak ada |
table | Nama tabel tujuan. Jika skema tabel berbeda dari username yang ditentukan dalam konfigurasi sumber data, tentukan nama tabel dalam format | Ya | Tidak ada |
column | Kolom di tabel tujuan tempat Anda ingin menulis data. Pisahkan beberapa nama kolom dengan koma (,). Catatan Jangan gunakan pengaturan kolom default. | Ya | Tidak ada |
preSql | Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi data dimulai. Hanya satu pernyataan SQL yang didukung. Misalnya, Anda dapat menggunakan parameter ini untuk purge data lama. Catatan Transaksi tidak didukung jika Anda menentukan beberapa pernyataan SQL. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi data selesai. Hanya satu pernyataan SQL yang didukung. Misalnya, Anda dapat menggunakan parameter ini untuk menambahkan timestamp. Catatan Transaksi tidak didukung jika Anda menentukan beberapa pernyataan SQL. | Tidak | Tidak ada |
batchSize | Jumlah catatan yang ditulis dalam setiap batch. Nilai yang lebih tinggi dapat secara signifikan mengurangi jumlah interaksi jaringan antara Data Integration dan database DM (Dameng) serta meningkatkan throughput keseluruhan. Namun, jika nilai ini terlalu besar, error OOM dapat terjadi dalam proses Data Integration. | Tidak | 1024 |