Sumber Data DM berfungsi sebagai pusat data. DataWorks menyediakan DM Reader dan DM Writer untuk membaca data dari dan menulis data ke Sumber Data DM, membantu menyelesaikan masalah komputasi sejumlah besar data dengan cepat. Topik ini menjelaskan kemampuan sinkronisasi data dari atau ke Sumber Data DM.
Batasan
Data dari Tampilan dapat dibaca selama sinkronisasi batch.
DM Reader dan DM Writer hanya mendukung kelompok sumber daya eksklusif untuk Data Integration.
Pemetaan tipe data
DM Reader dan DM Writer mendukung sebagian besar tipe data dari database relasional umum, seperti tipe data numerik dan string. Pastikan tipe data dari database Anda didukung.
Tabel berikut mencantumkan pemetaan tipe data berdasarkan mana DM Reader mengonversi tipe data.
Kategori | Tipe data DM |
Integer | INT, TINYINT, SMALLINT, dan BIGINT |
Floating point | 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 |
Mengembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk informasi tentang pengaturan parameter, lihat infotip setiap parameter di tab konfigurasi tugas.
Menambahkan sumber data
Mengonfigurasi tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan Antarmuka Tanpa Kode dan Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan Editor Kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan saat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan Parameter.
Mengonfigurasi pengaturan sinkronisasi untuk menerapkan sinkronisasi batch semua data dalam database
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Mengonfigurasi Tugas Sinkronisasi di Data Integration.
Lampiran: Kode dan parameter
Lampiran: Mengonfigurasi tugas sinkronisasi batch menggunakan editor kode
Kode untuk DM Reader
{
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle":true,// Menentukan apakah akan mengaktifkan pembatasan laju. Nilai false menunjukkan bahwa pembatasan laju dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan laju diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
"concurrent":1 // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: 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 dalam kode untuk DM Reader
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data dari mana Anda ingin membaca data. Untuk informasi lebih lanjut tentang cara menambahkan sumber data, lihat Tambahkan sumber data DM. | Ya | Tidak ada nilai default |
table | Nama tabel dari mana Anda ingin membaca data. | Ya | Tidak ada nilai default |
column | Nama kolom dari mana Anda ingin membaca data. Tentukan nama dalam array JSON. Nilai default adalah [ * ], yang menunjukkan semua kolom dalam tabel sumber.
| Ya | Tidak ada nilai default |
splitPk | Bidang yang digunakan untuk sharding data saat DM Reader membaca data. Jika Anda menentukan parameter ini, tabel di-shard berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Dengan cara ini, data dapat disinkronkan lebih efisien.
| Tidak | Tidak ada nilai default |
where | Klausa WHERE. DM Reader menghasilkan pernyataan SQL berdasarkan pengaturan parameter column, table, dan where dan menggunakan pernyataan yang dihasilkan untuk membaca data. Misalnya, saat melakukan tes, Anda dapat menyetel parameter where ke limit 10. Untuk membaca data yang dihasilkan pada hari saat ini, Anda dapat menyetel parameter where ke
| Tidak | Tidak ada nilai default |
querySql | Pernyataan SQL yang digunakan untuk penyaringan data yang lebih halus. Jika Anda menentukan parameter ini, data difilter hanya berdasarkan nilai parameter ini. Misalnya, jika Anda ingin menggabungkan beberapa tabel untuk sinkronisasi data, atur parameter ini ke | Tidak | Tidak ada nilai default |
fetchSize | Jumlah rekaman data yang dibaca sekaligus. Parameter ini menentukan jumlah interaksi antara Data Integration dan database sumber dan memengaruhi efisiensi pembacaan. Catatan Jika Anda menyetel parameter ini ke nilai lebih besar dari 2048, kesalahan kehabisan memori (OOM) mungkin terjadi selama sinkronisasi data. | Tidak | 1.024 |
Kode untuk DM 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,// Menentukan apakah akan mengaktifkan pembatasan laju. Nilai false menunjukkan bahwa pembatasan laju dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan laju diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
"concurrent":2, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
}
}
Parameter dalam kode untuk DM Writer
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data ke mana Anda ingin menulis data. Untuk informasi lebih lanjut tentang cara menambahkan sumber data, lihat Tambahkan sumber data DM. | Ya | Tidak ada nilai default |
table | Nama tabel ke mana Anda ingin menulis data. Jika tabel menggunakan skema default untuk database tujuan, nilai parameter ini hanya terdiri dari nama tabel. Jika tabel menggunakan skema kustom, nilai parameter ini terdiri dari dua bagian: nama skema kustom dan nama tabel. Tentukan kedua bagian dalam format | Ya | Tidak ada nilai default |
column | Nama kolom ke mana Anda ingin menulis data. Pisahkan nama dengan koma (,). Catatan Kami merekomendasikan agar Anda tidak meninggalkan parameter ini kosong. | Ya | Tidak ada nilai default |
preSql | Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menghapus data lama. Anda hanya dapat menjalankan satu pernyataan SQL dalam satu transaksi. Catatan Jika Anda menentukan beberapa pernyataan SQL, pernyataan tersebut tidak dijalankan dalam transaksi yang sama. | Tidak | Tidak ada nilai default |
postSql | Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menambahkan timestamp. Anda hanya dapat menjalankan satu pernyataan SQL dalam satu transaksi. Catatan Jika Anda menentukan beberapa pernyataan SQL, pernyataan tersebut tidak dijalankan dalam transaksi yang sama. | Tidak | Tidak ada nilai default |
batchSize | Jumlah rekaman data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan database tujuan serta meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan kehabisan memori (OOM) mungkin terjadi selama sinkronisasi data. | Tidak | 1024 |