All Products
Search
Document Center

DataWorks:DM (Dameng)

Last Updated:Mar 01, 2026

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

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

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: `["*"]`.

  • Pemangkasan kolom didukung. Anda dapat mengekspor subset kolom.

  • Pengubahan urutan kolom didukung. Anda dapat mengekspor kolom dalam urutan yang berbeda dari skema tabel.

  • Konstanta didukung. Tentukan konstanta dalam format JSON, seperti ["id","1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3" , "true"].

    • id: nama kolom biasa.

    • 1: konstanta integer.

    • 'bazhen.csy': konstanta string.

    • null: penunjuk null.

    • to_char(a + 1): ekspresi fungsi.

    • 2.3: bilangan titik mengambang.

    • true: nilai Boolean.

  • Parameter column harus menentukan kolom yang akan disinkronkan dan tidak boleh kosong.

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:

  • Atur splitPk ke kunci primary tabel. Kunci primary biasanya terdistribusi merata, yang membantu mencegah hot spot data di shard.

  • Saat ini, splitPk hanya mendukung kolom integer untuk partisi. Tipe data bilangan titik mengambang, string, tanggal, dan lainnya tidak didukung. Jika Anda menentukan tipe data yang tidak didukung, DM Reader akan melaporkan error.

  • Jika Anda tidak menentukan splitPk, tabel tidak dipartisi. DM Reader menggunakan satu saluran untuk menyinkronkan seluruh data.

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 gmt_create>$bizdate.

  • Kondisi where memungkinkan sinkronisasi data inkremental yang efisien.

  • Jika Anda tidak menentukan parameter where atau membiarkannya kosong, seluruh data dalam tabel akan disinkronkan.

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 select a,b from table_a join table_b on table_a.id = table_b.id. Jika Anda menentukan querySql, DM Reader akan mengabaikan parameter column, table, dan where.

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 schema.table.

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