全部产品
Search
文档中心

DataWorks:Sumber data DM

更新时间:Jul 06, 2025

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

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

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.

  • Anda dapat memilih kolom tertentu untuk dibaca.

  • Urutan kolom dapat diubah. Ini menunjukkan bahwa Anda dapat menentukan kolom dalam urutan yang berbeda dari yang ditentukan oleh skema tabel sumber.

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

    • id: nama kolom.

    • 1: konstanta integer.

    • 'bazhen.csy': konstanta string.

    • null: pointer null.

    • to_char(a + 1): ekspresi fungsi.

    • 2.3: konstanta floating-point.

    • true: nilai Boolean.

  • Parameter column harus secara eksplisit menentukan semua kolom dari mana Anda ingin membaca data. Parameter tidak boleh dibiarkan kosong.

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.

  • Kami merekomendasikan untuk menyetel parameter splitPk ke nama kolom kunci utama tabel. Data dapat didistribusikan secara merata ke shard yang berbeda berdasarkan kolom kunci utama, bukan hanya terdistribusi intensif ke shard tertentu.

  • Parameter splitPk hanya mendukung sharding untuk data tipe data integer. Jika Anda menyetel parameter ini ke bidang tipe data yang tidak didukung, seperti string, floating point, atau tipe data tanggal, DM Reader mengembalikan kesalahan.

  • Jika Anda tidak menentukan parameter splitPk, DM Reader menggunakan satu thread untuk membaca semua data dalam tabel sumber.

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

  • Anda dapat menggunakan klausa WHERE untuk membaca data inkremental.

  • Jika parameter where tidak disediakan atau dibiarkan kosong, DM Reader membaca semua data.

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

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 Nama Skema.Nama Tabel.

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