DataWorks Data Integration mendukung DM (Dameng) baik sebagai sumber maupun tujuan untuk sinkronisasi batch offline. Gunakan DM Reader untuk mengekstrak data dari database DM dan DM Writer untuk memuat data ke dalamnya.
Kemampuan
Capability | DM Reader | DM Writer |
Offline (batch) sync | Yes | Yes |
Read from views | Yes | — |
Column pruning | Yes | — |
Column reordering | Yes | — |
Parallel read ( | Yes (integer columns only) | — |
Incremental sync ( | Yes | — |
Pre SQL execution | Yes | Yes |
Post SQL execution | — | Yes |
Serverless resource groups | Yes | Yes |
Exclusive resource groups for Data Integration | Yes | Yes |
Tipe field yang didukung
DM Reader dan DM Writer mendukung sebagian besar tipe data database relasional umum. Tabel berikut mencantumkan tipe data DM yang dapat dikonversi oleh DM Reader. Tipe yang tidak didukung akan menyebabkan error pembacaan—verifikasi skema Anda sebelum mengonfigurasi tugas sinkronisasi.
Category | DM data types |
Integer | INT, TINYINT, SMALLINT, BIGINT |
Floating-point | REAL, FLOAT, DOUBLE, NUMBER, DECIMAL |
String | CHAR, VARCHAR, LONGVARCHAR, TEXT |
Date and time | DATE, DATETIME, TIMESTAMP, TIME |
Boolean | BIT |
Binary | BINARY, VARBINARY, BLOB |
Konfigurasi tugas sinkronisasi
Sinkronisasi offline tabel tunggal
Konfigurasikan tugas menggunakan Antarmuka tanpa kode (codeless UI) atau editor kode:
Codeless UI: Configure a task in the codeless UI
Code editor: Configure a task in the code editor
Untuk referensi skrip lengkap dan deskripsi parameter, lihat Script reference.
Sinkronisasi offline seluruh database
Referensi skrip
Saat mengonfigurasi tugas sinkronisasi batch di editor kode, gunakan format skrip terpadu. Bagian berikut mencakup parameter khusus DM untuk Reader dan Writer.
Reader
Contoh skrip
{
"type": "job",
"version": "2.0",
"order": {
"hops": [
{ "from": "Reader", "to": "Writer" }
]
},
"setting": {
"errorLimit": { "record": "0" },
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"steps": [
{
"category": "reader",
"name": "Reader",
"stepType": "dm",
"parameter": {
"datasource": "dm_datasource",
"table": "table",
"column": ["*"],
"preSql": ["delete from XXX;"],
"fetchSize": 2048
}
},
{
"category": "writer",
"name": "Writer",
"stepType": "stream",
"parameter": {}
}
]
}Parameter Reader
Parameter | Required | Default | Description |
| Yes | — | Nama sumber data DM. Lihat Configure a DM data source. |
| Yes | — | Tabel tempat membaca data. |
| Yes | — | Kolom yang akan disinkronkan, dalam bentuk array JSON. Gunakan |
| No | Empty | Kolom yang digunakan untuk membagi data guna pembacaan paralel. Tetapkan ini ke primary key untuk distribusi merata dan menghindari hot spot data. Hanya kolom integer yang didukung—tipe floating-point, string, date, dan lainnya akan menyebabkan error. Jika tidak ditetapkan, tabel dibaca dengan satu channel. |
| No | — | Kondisi filter SQL yang ditambahkan ke kueri—misalnya, |
| No | — | Kueri SQL kustom—misalnya, |
| No | 1.024 | Jumlah baris yang diambil per batch. Nilai yang lebih tinggi mengurangi round-trip jaringan dan meningkatkan throughput. Nilai di atas 2.048 dapat menyebabkan error out-of-memory (OOM). |
| No | — | Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi dimulai. Hanya satu pernyataan yang didukung. |
Writer
Contoh skrip
{
"type": "job",
"version": "2.0",
"order": {
"hops": [
{ "from": "Reader", "to": "Writer" }
]
},
"setting": {
"errorLimit": { "record": "" },
"speed": {
"throttle": true,
"concurrent": 2,
"mbps": "12"
}
},
"steps": [
{
"category": "reader",
"name": "Reader",
"stepType": "oracle",
"parameter": {
"datasource": "aaa",
"column": ["PROD_ID", "name"],
"where": "",
"splitPk": "",
"encoding": "UTF-8",
"table": "PENGXI.SALES"
}
},
{
"category": "writer",
"name": "Writer",
"stepType": "dm",
"parameter": {
"datasource": "dm_datasource",
"table": "table",
"column": ["id", "name"],
"preSql": ["delete from XXX;"]
}
}
]
}Parameter Writer
Parameter | Required | Default | Description |
| Yes | — | Nama sumber data DM. Lihat Configure a DM data source. |
| Yes | — | Tabel tujuan. Jika skema tabel berbeda dari username dalam konfigurasi sumber data, gunakan format |
| Yes | — | Kolom tujuan yang akan ditulis, dipisahkan koma. Jangan gunakan pengaturan kolom default. |
| No | — | Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi dimulai—misalnya, untuk purge data lama. Hanya satu pernyataan yang didukung; beberapa pernyataan akan menonaktifkan dukungan transaksi. |
| No | — | Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi selesai—misalnya, untuk menambahkan timestamp. Hanya satu pernyataan yang didukung; beberapa pernyataan akan menonaktifkan dukungan transaksi. |
| No | 1.024 | Jumlah baris yang ditulis per batch. Nilai yang lebih tinggi mengurangi interaksi jaringan dan meningkatkan throughput. Nilai yang terlalu besar dapat menyebabkan error OOM. |