All Products
Search
Document Center

DataWorks:PolarDB-X 2.0

Last Updated:Mar 01, 2026

Sumber data PolarDB-X 2.0 menyediakan saluran dua arah untuk membaca dan menulis data ke PolarDB-X 2.0. Topik ini menjelaskan kemampuan sinkronisasi data yang didukung DataWorks untuk PolarDB-X 2.0.

Batasan

Sumber data PolarDB-X 2.0 mendukung kelompok resource serverless (disarankan) dan kelompok resource eksklusif untuk Data Integration.

Versi yang didukung

Baca dan tulis offline: PolarDB-X 2.0 didukung. Anda dapat menggunakan sinkronisasi offline untuk membaca data dari view.

Tipe field yang didukung

Untuk daftar lengkap tipe field PolarDB-X 2.0, lihat Tipe data. Tabel berikut mencantumkan tipe field utama yang didukung.

Field type

Offline read (PolarDB-X 2.0 Reader)

Offline write (PolarDB-X 2.0 Writer)

TINYINT

Support

Support

SMALLINT

Supported

Support

INTEGER

Support

Support

BIGINT

Support

Supported

FLOAT

Supported

Support

DOUBLE

Support

Support

DECIMAL/NUMBERIC

Support

Support

REAL

Not supported

Not supported

VARCHAR

Support

Supported

JSON

Support

Support

TEXT

Support

Support

MEDIUMTEXT

Support

Support

LONGTEXT

Supported

Supported

VARBINARY

Support

Support

BINARY

Support

Support

TINYBLOB

Support

Support

MEDIUMBLOB

Support

Support

LONGBLOB

Support

Support

ENUM

Support

Support

SET

Supported

Support

BOOLEAN

Support

Support

BIT

Support

Support

DATE

Support

Support

DATETIME

Supported

Support

TIMESTAMP

Support

Support

TIME

Support

Support

YEAR

Support

Support

LINESTRING

Not supported

Not supported

POLYGON

Not supported

Not supported

MULTIPOINT

Not supported

Not supported

MULTILINESTRING

Not supported

Not supported

MULTIPOLYGON

Not supported

Not supported

GEOMETRYCOLLECTION

Not supported

Not supported

Prasyarat untuk sinkronisasi data

Sebelum melakukan sinkronisasi data di DataWorks, Anda harus menyiapkan lingkungan PolarDB-X 2.0 seperti yang dijelaskan dalam bagian ini agar tugas sinkronisasi berjalan sesuai harapan. Bagian-bagian berikut menjelaskan persiapan yang diperlukan.

Konfirmasi versi PolarDB-X

Untuk PolarDB-X 1.0, gunakan sumber data DRDS. Untuk PolarDB-X 2.0, gunakan sumber data ini.

Konfigurasi izin akun

Buat akun PolarDB-X 2.0 khusus agar DataWorks dapat mengakses sumber data tersebut. Ikuti langkah-langkah berikut:

  1. (Opsional) Buka Konsol PolarDB-X 2.0 untuk membuat akun. Jika Anda sudah memiliki akun, lewati langkah ini.

  2. Konfigurasi izin.

    • Untuk skenario sinkronisasi offline:

      • Untuk membaca data dari PolarDB-X 2.0 dalam tugas offline, akun harus memiliki izin baca (SELECT) pada tabel sumber.

      • Untuk menulis data ke PolarDB-X 2.0 dalam tugas offline, akun harus memiliki izin tulis (INSERT, DELETE, UPDATE) pada tabel tujuan.

    • Untuk skenario sinkronisasi real-time (seluruh database):

      • Akun istimewa: Secara default, akun istimewa dapat membaca data binary logging (binlog) untuk sinkronisasi real-time.

      • Akun standar: Gunakan akun istimewa untuk memberikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database tertentu kepada akun standar.

-- Buat akun sinkronisasi dan atur password. Ini memungkinkan akun login ke database dari host mana pun. Tanda persen (%) merepresentasikan host apa pun.
-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password';
-- Berikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database kepada akun sinkronisasi.
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%'; 

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Kembangkan tugas sinkronisasi data: Panduan proses sinkronisasi PolarDB-X 2.0

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Panduan konfigurasi tugas sinkronisasi offline untuk satu tabel

Lampiran: Demo skrip dan deskripsi parameter

Konfigurasi tugas sinkronisasi batch menggunakan editor kode

Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Demo skrip Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"polardbx20",// Nama plugin.
            "parameter":{
               "connection": [
                  {
                      "datasource":"",
                      "table": [
                          "t1"
                      ]
                  }
              ],
              "column": [
                  "c1",
                  "c2",
                  "'const'"
              ],
              "where": "",
              "splitPk": "",
              "checkSlave": "true",
              "slaveDelayLimit": "300"
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah catatan error.
        },
        "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 tugas konkuren.
            "mbps":"12"// Batasan laju.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Reader

Script Parameter Name

Description

Required

Default value

datasource

Nama sumber data. Nama harus sama dengan nama sumber data PolarDB-X 2.0 yang Anda buat di halaman Manajemen Sumber Data.

Yes

None

table

Nama tabel yang akan disinkronkan. Hanya satu tabel yang didukung.

Yes

None

column

Kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan kolom. Secara default, semua kolom digunakan. Contoh: [*].

  • Pemangkasan kolom didukung. Anda dapat memilih kolom tertentu untuk disinkronkan.

  • Pengubahan urutan kolom didukung. Kolom tidak perlu dalam urutan yang sama seperti pada skema tabel.

  • Konstanta didukung. Anda harus mengikuti sintaksis SQL PolarDB-X 2.0. Contoh: ["id","table","1","'mingya.wmy'","'null'","to_char(a+1)","2.3","true"].

    • id adalah nama kolom standar.

    • table adalah nama kolom yang juga merupakan kata tercadang.

    • 1 adalah konstanta integer.

    • 'mingya.wmy' adalah konstanta string. Perhatikan bahwa harus diapit tanda kutip tunggal.

    • Tentang null:

      • " " menunjukkan string kosong.

      • null menunjukkan nilai null.

      • 'null' menunjukkan string "null".

    • to_char(a+1) adalah fungsi yang menghitung panjang string.

    • 2.3 adalah bilangan titik mengambang.

    • true adalah Nilai Boolean.

  • Anda harus secara eksplisit menentukan kolom yang akan disinkronkan untuk parameter column. Parameter ini tidak boleh kosong.

Yes

None

splitPk

Saat menggunakan PolarDB-X 2.0 Reader untuk mengekstraksi data, Anda dapat menggunakan parameter splitPk untuk partisi data. Ini memungkinkan sinkronisasi data konkuren dan meningkatkan efisiensi.

  • (Disarankan) Atur splitPk ke primary key tabel. Ini membantu membuat shard data yang seimbang dan mencegah hot spot data.

  • splitPk hanya mendukung partisi data untuk kolom bertipe integer. Jika Anda menentukan kolom dengan tipe lain, seperti string, titik mengambang, atau tanggal, fitur splitPk diabaikan, dan data disinkronkan melalui satu saluran.

  • Jika Anda tidak mengonfigurasi parameter splitPk, atau mengatur nilainya menjadi kosong, data disinkronkan melalui satu saluran.

No

None

where

Kondisi filter. Dalam banyak skenario bisnis, Anda mungkin hanya ingin menyinkronkan data hari ini. Untuk melakukannya, atur kondisi where menjadi gmt_create>$bizdate.

  • Kondisi where memungkinkan sinkronisasi inkremental yang efisien. Jika Anda tidak menentukan kondisi where, termasuk menghilangkan kunci atau nilainya, semua data akan disinkronkan.

  • Anda tidak dapat mengatur kondisi where menjadi LIMIT 10. Ini tidak sesuai dengan batasan klausa WHERE SQL PolarDB-X 2.0.

No

None

checkSlave

Memeriksa latensi replikasi antara instans primary dan instans hanya baca. Saat sumber data adalah instans hanya baca PolarDB-X 2.0, pemeriksaan ini dilakukan sebelum tugas dimulai untuk mencegah kehilangan data akibat latensi replikasi.

No

true

slaveDelayLimit

Latensi replikasi maksimum yang diizinkan antara instans primary dan instans hanya baca, dalam satuan detik. Jika latensi aktual melebihi nilai ini, tugas akan gagal. Ini mencegah kehilangan data akibat latensi replikasi.

No

30

Demo skrip Writer

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[ 
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"PolarDB-X 2.0",// Nama plugin.
            "parameter":{
                "postSql":[],// Pernyataan SQL yang dieksekusi setelah data diimpor.
                "datasource":"",// Sumber data.
                "column":[// Nama kolom.
                    "id",
                    "value"
                ],
                "writeMode":"insert",// Mode penulisan. Anda dapat mengatur ini ke insert atau replace.
                "batchSize":1024,// Jumlah catatan yang dikirimkan dalam satu batch.
                "table":"",// Nama tabel.
                "preSql":[ 
                     "delete from XXX;" // Pernyataan SQL yang dieksekusi sebelum data diimpor.
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{// Jumlah catatan error.
            "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 tugas konkuren.
            "mbps":"12"// Batasan laju. Ini mengontrol laju sinkronisasi maksimum untuk mencegah tekanan baca/tulis berlebihan pada database hulu atau hilir.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Writer

Script Parameter Name

Description

Required

Default value

datasource

Nama sumber data. Nama harus sama dengan nama sumber data PolarDB-X 2.0 yang Anda buat di halaman Manajemen Sumber Data.

Yes

None

table

Nama tabel yang akan disinkronkan.

Yes

None

writeMode

Mode impor. Mode berikut didukung: insert into dan replace into.

  • insert into: Jika terjadi konflik primary key atau unique index, baris yang bertentangan tidak ditulis dan dicatat sebagai data kotor. Jika Anda mengonfigurasi tugas di editor kode, atur writeMode ke insert.

  • replace into: Jika tidak terjadi konflik primary key atau unique index, perilakunya sama seperti insert into. Jika terjadi konflik, baris yang ada dihapus sebelum baris baru dimasukkan. Baris baru menggantikan semua field pada baris yang ada. Jika Anda mengonfigurasi tugas di editor kode, atur writeMode ke replace.

No

insert

column

Kolom di tabel tujuan tempat Anda ingin menulis data. Pisahkan nama kolom dengan koma (,). Contoh: "column": ["id", "name", "age"]. Untuk menulis data ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: "column": ["*"].

Yes

None

preSql

Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi data dijalankan. Di Antarmuka tanpa kode, hanya satu pernyataan SQL yang diizinkan. Di editor kode, beberapa pernyataan SQL didukung. Misalnya, untuk menghapus data lama dari tabel sebelum tugas dijalankan:

-- tablename adalah nama tabel
truncate table tablename;
Catatan

Transaksi tidak didukung untuk beberapa pernyataan SQL.

No

None

postSql

Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi data dijalankan. Di Antarmuka tanpa kode, hanya satu pernyataan SQL yang diizinkan. Di editor kode, beberapa pernyataan SQL didukung. Misalnya, untuk menambahkan timestamp:

-- tablename adalah nama tabel, dan colname adalah nama kolom
alter table tablename 
add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Catatan

Transaksi tidak didukung untuk beberapa pernyataan SQL.

No

None

batchSize

Jumlah catatan yang dikirimkan dalam satu batch. Nilai yang lebih besar dapat secara signifikan mengurangi interaksi jaringan antara sistem sinkronisasi data dan PolarDB-X 2.0, yang meningkatkan throughput keseluruhan. Namun, jika nilai ini terlalu besar, dapat menyebabkan overflow memori.

No

256