全部产品
Search
文档中心

DataWorks:Sumber Data PolarDB-X 2.0

更新时间:Jul 06, 2025

DataWorks menyediakan PolarDB-X 2.0 Reader dan PolarDB-X 2.0 Writer untuk membaca dan menulis data ke sumber data PolarDB-X 2.0. Topik ini menjelaskan cara menyinkronkan data dari atau ke sumber data PolarDB-X 2.0.

Batasan

Anda hanya dapat menggunakan kelompok sumber daya eksklusif untuk Data Integration untuk membaca atau menulis data ke sumber data PolarDB-X 2.0.

Versi yang Didukung

Pembacaan dan penulisan data batch didukung di PolarDB-X 2.0. Data dari tampilan dapat dibaca selama sinkronisasi batch.

Tipe Data yang Didukung

Untuk informasi tentang semua tipe data di PolarDB-X 2.0, lihat Tipe Data. Tabel berikut memberikan status dukungan untuk tipe data utama.

Tipe Data

PolarDB-X 2.0 Reader untuk pembacaan data batch

PolarDB-X 2.0 Writer untuk penulisan data batch

TINYINT

Didukung

Didukung

SMALLINT

Didukung

Didukung

INTEGER

Didukung

Didukung

BIGINT

Didukung

Didukung

FLOAT

Didukung

Didukung

DOUBLE

Didukung

Didukung

DECIMAL/NUMBERIC

Didukung

Didukung

REAL

Tidak didukung

Tidak didukung

VARCHAR

Didukung

Didukung

JSON

Didukung

Didukung

TEXT

Didukung

Didukung

MEDIUMTEXT

Didukung

Didukung

LONGTEXT

Didukung

Didukung

VARBINARY

Didukung

Didukung

BINARY

Didukung

Didukung

TINYBLOB

Didukung

Didukung

MEDIUMBLOB

Didukung

Didukung

LONGBLOB

Didukung

Didukung

ENUM

Didukung

Didukung

SET

Didukung

Didukung

BOOLEAN

Didukung

Didukung

BIT

Didukung

Didukung

DATE

Didukung

Didukung

DATETIME

Didukung

Didukung

TIMESTAMP

Didukung

Didukung

TIME

Didukung

Didukung

YEAR

Didukung

Didukung

LINESTRING

Tidak didukung

Tidak didukung

POLYGON

Tidak didukung

Tidak didukung

MULTIPOINT

Tidak didukung

Tidak didukung

MULTILINESTRING

Tidak didukung

Tidak didukung

MULTIPOLYGON

Tidak didukung

Tidak didukung

GEOMETRYCOLLECTION

Tidak didukung

Tidak didukung

Siapkan Lingkungan PolarDB-X 2.0 Sebelum Sinkronisasi Data

Sebelum menggunakan DataWorks untuk menyinkronkan data dari atau ke sumber data PolarDB-X 2.0, Anda harus menyiapkan lingkungan PolarDB-X 2.0. Ini memastikan bahwa tugas sinkronisasi data dapat dikonfigurasi dan berjalan sesuai harapan. Informasi berikut menjelaskan cara menyiapkan lingkungan tersebut.

Persiapan 1: Periksa versi database PolarDB-X Anda

Jika versi database PolarDB-X Anda adalah PolarDB-X 1.0, lihat Sumber Data DRDS (PolarDB-X 1.0) untuk menyiapkan lingkungan. Jika versi database Anda adalah PolarDB-X 2.0, ikuti panduan dalam topik ini.

Persiapan 2: Siapkan akun dengan izin yang diperlukan

Disarankan untuk merencanakan dan membuat akun khusus agar DataWorks dapat mengakses database PolarDB-X 2.0 Anda. Untuk menyiapkan akun tersebut, ikuti langkah-langkah berikut:

  1. Opsional. Masuk ke Konsol PolarDB-X 2.0 untuk membuat akun. Jika Anda sudah memiliki akun seperti itu, lewati langkah ini.

  2. Berikan izin yang diperlukan kepada akun tersebut.

    • Sinkronisasi batch:

      • Pembacaan data batch: Akun harus memiliki izin SELECT.

      • Penulisan data batch: Akun harus memiliki izin INSERT, DELETE, dan UPDATE.

    • Sinkronisasi waktu nyata data dalam database:

      • Akun istimewa: Secara default, data log biner dapat dibaca untuk sinkronisasi waktu nyata.

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

-- Buat akun yang dapat digunakan untuk sinkronisasi data dan tentukan kata sandi. Dengan cara ini, Anda dapat menggunakan akun dan kata sandi untuk mengakses database dari host mana pun. % menunjukkan host.
-- CREATE USER 'Akun untuk sinkronisasi data'@'%' IDENTIFIED BY 'Kata Sandi'.
-- Berikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT kepada akun tersebut.
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'Akun untuk sinkronisasi data'@'%';

Kembangkan Tugas Sinkronisasi Data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk pengaturan parameter, lihat infotip setiap parameter di tab konfigurasi tugas.

Tambahkan Sumber Data

Sebelum mengonfigurasi tugas sinkronisasi data untuk menyinkronkan data dari atau ke sumber data tertentu, tambahkan sumber data ke DataWorks. Untuk informasi lebih lanjut, lihat Tambah dan Kelola Sumber Data.

Konfigurasikan Tugas Sinkronisasi Batch untuk Menyinkronkan Data Tabel Tunggal

Lampiran: Kode dan Parameter

Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode

Jika Anda menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, konfigurasikan parameter untuk pembaca dan penulis sumber data terkait sesuai dengan persyaratan format di editor kode. Untuk informasi lebih lanjut tentang persyaratan format, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan detail konfigurasi parameter untuk pembaca dan penulis di editor kode.

Kode untuk PolarDB-X 2.0 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 maksimum catatan data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
            "concurrent":1,// Jumlah maksimum thread paralel.
            "mbps":"12"// Laju transmisi maksimum.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam Kode untuk PolarDB-X 2.0 Reader

Parameter

Deskripsi

Diperlukan

Nilai Default

datasource

Nama sumber data. Harus sama dengan nama sumber data yang Anda tambahkan di halaman manajemen sumber data.

Ya

Tidak ada nilai default

table

Nama tabel dari mana Anda ingin membaca data. Setiap tugas sinkronisasi hanya dapat digunakan untuk menyinkronkan data dari satu tabel.

Ya

Tidak ada nilai default

column

Nama kolom dari mana Anda ingin membaca data. Tentukan nama dalam array JSON. Nilai defaultnya 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 urutan yang ditentukan oleh skema tabel sumber.

  • Konstanta didukung. Nama kolom harus diatur sesuai dengan sintaks SQL yang didukung oleh PolarDB-X 2.0, seperti ["id","table","1","'mingya.wmy'","'null'","to_char(a+1)","2.3","true"].

    • id: nama kolom.

    • table: nama kolom yang berisi kata kunci cadangan.

    • 1: konstanta integer.

    • 'mingya.wmy': konstanta string, yang diapit oleh tanda kutip tunggal (').

    • null:

      • " " menunjukkan string kosong.

      • null menunjukkan nilai null.

      • 'null' menunjukkan string null.

    • to_char(a+1): ekspresi fungsi yang digunakan untuk menghitung panjang string.

    • 2.3: konstanta floating-point.

    • true: nilai Boolean.

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

Ya

Tidak ada nilai default

splitPk

field yang digunakan untuk sharding data saat PolarDB-X 2.0 Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-sharding berdasarkan nilai parameter ini. Kemudian, thread paralel dijalankan untuk membaca data. Dengan cara ini, data dapat disinkronkan lebih efisien.

  • Kami merekomendasikan agar Anda 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 harus disetel ke field dengan tipe data integer. Jika Anda menyetel parameter splitPk ke field dengan tipe data yang tidak didukung, seperti string, floating point, atau tanggal, pengaturan parameter ini diabaikan, dan thread tunggal digunakan untuk membaca data.

  • Jika parameter splitPk tidak terdapat dalam kode untuk PolarDB-X 2.0 Reader atau dibiarkan kosong, thread tunggal digunakan untuk membaca data.

Tidak

Tidak ada nilai default

where

Klausa WHERE. Misalnya, Anda dapat menyetel parameter ini ke gmt_create>$bizdate</ untuk membaca data yang dihasilkan pada hari saat ini.

  • Anda dapat menggunakan klausa WHERE untuk membaca data tambahan. Jika parameter where tidak disediakan atau dibiarkan kosong, PolarDB-X 2.0 Reader membaca semua data.

  • Jangan menyetel parameter where ke LIMIT 10. Nilai ini tidak sesuai dengan batasan PolarDB-X 2.0 pada klausa SQL WHERE.

Tidak

Tidak ada nilai default

checkSlave

Menentukan apakah akan memeriksa latensi sinkronisasi data antara instance utama dan instance sekunder baca-saja. Jika Anda menambahkan instance baca-saja PolarDB-X 2.0 sebagai sumber data, Anda harus memeriksa latensi sinkronisasi data antara instance baca-saja dan instance utama sebelum menjalankan tugas sinkronisasi data. Ini membantu mencegah kehilangan data yang disebabkan oleh latensi.

Tidak

true

slaveDelayLimit

Latensi maksimum sinkronisasi data antara instance utama dan instance baca-saja, dalam detik. Jika latensi melebihi nilai parameter ini, tugas sinkronisasi data gagal. Ini membantu mencegah kehilangan data yang disebabkan oleh latensi.

Tidak

30

Kode untuk PolarDB-X 2.0 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 ingin Anda jalankan setelah tugas sinkronisasi dijalankan.
                "datasource":"",// Nama sumber data.
                "column":[// Nama kolom.
                    "id",
                    "value"
                ],
                "writeMode":"insert",// Mode penulisan. Nilai valid: insert dan replace.
                "batchSize":1024,// Jumlah catatan data yang ditulis sekaligus.
                "table":"",// Nama tabel.
                "preSql":[ 
                     "delete from XXX;" // Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan.
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{// Jumlah maksimum catatan data kotor yang diizinkan.
            "record":"0"
        },
        "speed":{
            "throttle":true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
            "concurrent":1, // Jumlah maksimum thread paralel.
            "mbps":"12"// Laju transmisi maksimum. Anda dapat menentukan laju transmisi maksimum untuk mencegah beban baca yang berat pada sumber atau beban tulis yang berat pada tujuan.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam Kode untuk PolarDB-X 2.0 Writer

Parameter

Deskripsi

Diperlukan

Nilai Default

datasource

Nama sumber data. Harus sama dengan nama sumber data yang Anda tambahkan di halaman manajemen sumber data.

Ya

Tidak ada nilai default

table

Nama tabel ke mana Anda ingin menulis data.

Ya

Tidak ada nilai default

writeMode

Mode penulisan. Nilai valid:

  • insert into: Jika terjadi konflik kunci utama atau indeks unik, data tidak dapat ditulis ke baris yang bertentangan, dan data yang tidak ditulis ke baris tersebut dianggap sebagai data kotor. Jika Anda mengonfigurasi tugas sinkronisasi menggunakan editor kode, atur writeMode ke insert.

  • replace into: Jika tidak terjadi konflik kunci utama atau indeks unik, data diproses dengan cara yang sama seperti saat Anda menyetel parameter ini ke insert into. Jika terjadi konflik, baris asli dihapus, dan baris baru dimasukkan. Ini menunjukkan bahwa semua bidang baris asli diganti. Jika Anda membuat tugas sinkronisasi menggunakan editor kode, atur writeMode ke replace.

Tidak

insert

column

Nama kolom ke mana Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti "column": ["id", "name", "age"]. Jika Anda ingin menulis data ke semua kolom di tabel tujuan, atur parameter ini ke asterisk (*), seperti "column": ["*"].

Ya

Tidak ada nilai default

preSql

Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL berikut untuk menghapus data usang sebelum tugas sinkronisasi dijalankan:

-- tablename menunjukkan nama tabel.
truncate table tablename;
Catatan

Jika Anda mengonfigurasi 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. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. Misalnya, Anda dapat menyetel parameter ini ke pernyataan berikut untuk menambahkan timestamp setelah tugas sinkronisasi dijalankan:

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

Jika Anda mengonfigurasi beberapa pernyataan SQL, pernyataan tersebut tidak dijalankan dalam transaksi yang sama.

Tidak

Tidak ada nilai default

batchSize

Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan PolarDB-X 2.0 dan meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data.

Tidak

256