全部产品
Search
文档中心

DataWorks:Sumber data DRDS (PolarDB-X 1.0)

更新时间:Jul 03, 2025

DataWorks menyediakan DRDS (PolarDB-X 1.0) Reader dan DRDS (PolarDB-X 1.0) Writer untuk membaca data dari dan menulis data ke sumber data DRDS (PolarDB-X 1.0). Topik ini menjelaskan kemampuan menyinkronkan data dari atau ke sumber data DRDS (PolarDB-X 1.0).

Versi DRDS yang Didukung

Pembacaan data real-time

DRDS (PolarDB-X 1.0) didukung. Untuk informasi lebih lanjut tentang cara membuat instance DRDS (PolarDB-X 1.0), lihat Buat Instance PolarDB-X 1.0.

Batasan

Pembacaan dan penulisan data batch

  • DRDS (PolarDB-X 1.0) Reader hanya mendukung mesin MySQL. DRDS (PolarDB-X 1.0) adalah layanan database MySQL terdistribusi, dengan sebagian besar protokol komunikasinya sama dengan protokol komunikasi MySQL.

  • Hanya kelompok sumber daya eksklusif untuk Data Integration yang dapat digunakan untuk membaca data dari instance DRDS (PolarDB-X 1.0) yang menjalankan MySQL 8.0.

  • DRDS (PolarDB-X 1.0) Writer menghubungkan proxy dari database DRDS (PolarDB-X 1.0) jarak jauh menggunakan Java Database Connectivity (JDBC) dan mengeksekusi pernyataan REPLACE INTO untuk menulis data ke database DRDS (PolarDB-X 1.0).

    Untuk mengeksekusi pernyataan REPLACE INTO, pastikan tabel Anda memiliki kunci utama atau indeks unik untuk mencegah duplikasi data.

  • DRDS (PolarDB-X 1.0) Writer mendapatkan data dari pembaca dan mengeksekusi pernyataan REPLACE INTO untuk menulis data ke database tujuan. Jika tidak ada konflik kunci utama atau indeks unik, data diproses seperti saat mengeksekusi pernyataan INSERT INTO. Jika terjadi konflik, data di baris yang bertentangan dalam tabel tujuan digantikan oleh data baru. DRDS (PolarDB-X 1.0) Writer mengirimkan data ke proxy DRDS (PolarDB-X 1.0) ketika jumlah data yang di-buffer mencapai ambang batas tertentu. Proxy menentukan apakah akan menulis data ke satu atau lebih tabel serta bagaimana merutekan data ketika ditulis ke beberapa tabel.

    Catatan

    Tugas sinkronisasi yang menggunakan DRDS (PolarDB-X 1.0) Writer harus memiliki setidaknya izin untuk mengeksekusi pernyataan REPLACE INTO. Kebutuhan izin tambahan bergantung pada pernyataan SQL yang Anda tentukan dalam parameter preSql dan postSql saat mengonfigurasi tugas.

  • Data dari Tampilan dapat dibaca.

Pembacaan data real-time

  • Hanya sumber data yang ditambahkan di DataWorks dalam mode instance Alibaba Cloud yang didukung. Jika Anda menambahkan sumber data dalam mode string koneksi dan menggunakannya dalam tugas sinkronisasi data, tugas tersebut gagal.

  • Jenis penyimpanan harus PolarDB untuk MySQL atau ApsaraDB RDS (tidak termasuk ApsaraDB RDS untuk MySQL). ApsaraDB RDS hanya dapat digunakan untuk instance DRDS (PolarDB-X 1.0) yang sudah ada dan tidak dapat digunakan untuk instance DRDS (PolarDB-X 1.0) yang baru dibeli.

  • Sinkronisasi real-time data tempat pernyataan XA ROLLBACK dieksekusi tidak didukung.

    Untuk data transaksi tempat pernyataan XA PREPARE dieksekusi, Anda dapat menggunakan fitur sinkronisasi real-time untuk menyinkronkan data ke tujuan. Jika pernyataan XA ROLLBACK dieksekusi nanti pada data tersebut, perubahan rollback ke data tidak dapat disinkronkan ke tujuan. Jika tabel yang ingin Anda sinkronkan mencakup tabel tempat pernyataan XA ROLLBACK dieksekusi, Anda harus menghapus tabel tersebut dari tugas sinkronisasi real-time dan menambahkannya kembali untuk menyinkronkan data.

Pemetaan tipe data

Sebagian besar tipe data DRDS (PolarDB-X 1.0) didukung. Pastikan tipe data database Anda didukung.

Tabel berikut mencantumkan pemetaan tipe data berdasarkan mana DRDS (PolarDB-X 1.0) Reader atau DRDS (PolarDB-X 1.0) Writer mengonversi tipe data.

Kategori

Tipe data DRDS (PolarDB-X 1.0)

Integer

INT, TINYINT, SMALLINT, MEDIUMINT, dan BIGINT

Floating point

FLOAT, DOUBLE, dan DECIMAL

String

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT

Tanggal dan waktu

DATE, DATETIME, TIMESTAMP, TIME, dan YEAR

Boolean

BIT dan BOOLEAN

Binary

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, dan VARBINARY

Persiapan sebelum sinkronisasi data

Anda perlu membuat akun yang digunakan untuk masuk ke database DRDS (PolarDB-X 1.0) untuk operasi selanjutnya dan memberikan izin yang diperlukan kepada akun tersebut. Untuk informasi lebih lanjut, lihat Buat Akun.

Mengembangkan tugas sinkronisasi data

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

Tambahkan sumber data

Konfigurasikan tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal

Konfigurasikan pengaturan sinkronisasi untuk mengimplementasikan sinkronisasi batch semua data dalam database atau sinkronisasi real-time data penuh dan inkremental dalam tabel tunggal atau database

Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi di Data Integration.

Informasi tambahan

  • Tampilan Konsisten

    DRDS (PolarDB-X 1.0) tidak dapat menyediakan tampilan konsisten untuk beberapa tabel di beberapa database karena merupakan layanan database terdistribusi. DRDS (PolarDB-X 1.0) Reader mendapatkan snapshot yang berbeda dari shard tabel yang berbeda, tetapi tidak dapat mendapatkan snapshot shard tabel pada irisan waktu yang sama. Akibatnya, DRDS (PolarDB-X 1.0) Reader tidak dapat memastikan konsistensi kuat untuk kueri data.

  • Pengkodean Karakter

    DRDS (PolarDB-X 1.0) mendukung konfigurasi pengkodean fleksibel. Anda dapat menentukan format pengkodean untuk seluruh instance dan bidang, tabel, serta database tertentu. Konfigurasi pada tingkat bidang, tabel, database, dan instance diprioritaskan dalam urutan menurun. Kami merekomendasikan Anda menggunakan UTF-8 untuk database.

    DRDS (PolarDB-X 1.0) Reader menggunakan JDBC untuk membaca data, memungkinkan otomatisasi konversi format pengkodean karakter. Oleh karena itu, Anda tidak perlu menentukan format pengkodean.

    Jika Anda menentukan format pengkodean untuk database DRDS (PolarDB-X 1.0) tetapi data ditulis ke database DRDS (PolarDB-X 1.0) dalam format pengkodean yang berbeda, DRDS (PolarDB-X 1.0) Reader tidak dapat mengenali ketidaksesuaian ini dan mungkin mengekspor karakter yang tidak dapat dibaca.

  • Sinkronisasi Data Inkremental

    DRDS (PolarDB-X 1.0) Reader menggunakan JDBC untuk terhubung ke database dan menggunakan pernyataan SELECT dengan klausa WHERE untuk membaca data inkremental.

    • Untuk data batch, operasi penambahan, pembaruan, dan penghapusan inkremental (termasuk operasi penghapusan logis) dibedakan berdasarkan timestamp. Tentukan klausa WHERE berdasarkan timestamp tertentu. Waktu yang ditunjukkan oleh timestamp harus lebih lambat dari waktu yang ditunjukkan oleh timestamp terbaru dalam sinkronisasi sebelumnya.

    • Untuk data streaming, tentukan klausa WHERE berdasarkan ID catatan tertentu. ID tersebut harus lebih besar dari ID maksimum yang terlibat dalam sinkronisasi sebelumnya.

    Jika data yang ditambahkan atau dimodifikasi tidak dapat dibedakan, DRDS (PolarDB-X 1.0) Reader hanya dapat membaca data penuh.

  • Anda tidak dapat mengonfigurasi kondisi filter untuk tabel fisik dalam klausa WHERE.

Lampiran: Kode dan parameter

Lampiran: Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Kode untuk DRDS (PolarDB-X 1.0) Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"drds",// Nama plugin.
            "parameter":{
                "datasource":"",// Nama sumber data.
                "column":[// Nama kolom.
                    "id",
                    "name"
                ],
                "where":"",// Klausa WHERE.
                "table":"",// Nama tabel.
                "splitPk": ""// Kunci shard.
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",// Nama plugin.
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah maksimum catatan data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku jika parameter throttle disetel ke true. 
            "concurrent":1,// Jumlah maksimum thread paralel.
            "mbps":"12"// Kecepatan transmisi maksimum. Unit: MB/s. 
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam kode untuk DRDS (PolarDB-X 1.0) Reader

Parameter

Deskripsi

Diperlukan

Nilai default

datasource

Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode.

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 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 MySQL, seperti ["id", "`table`", "1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3", "true"]. Deskripsi parameter dalam contoh di atas:

    • id: nama kolom.

    • table: nama kolom yang berisi kata kunci cadangan.

    • 1: konstanta integer.

    • bazhen.csy: konstanta string.

    • null: pointer 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

where

Klausa WHERE. DRDS (PolarDB-X 1.0) Reader menghasilkan pernyataan SQL berdasarkan pengaturan parameter column, table, dan where, dan menggunakan pernyataan yang dihasilkan untuk membaca data.

  • Anda dapat menggunakan klausa WHERE untuk membaca data inkremental.

  • Jika parameter where tidak dikonfigurasi atau dibiarkan kosong, DRDS (PolarDB-X 1.0) Reader membaca data penuh.

Sebagai contoh, Anda dapat menyetel parameter ini ke STRTODATE('${bdp.system.bizdate}','%Y%m%d') <= today AND today < DATEADD(STRTODATE('${bdp.system.bizdate}', '%Y%m%d'), interval 1 day) untuk membaca data yang dihasilkan pada hari saat ini.

Tidak

Tidak ada nilai default

Kode untuk DRDS (PolarDB-X 1.0) Writer

{
    "type":"job",
    "version":"2.0",// Nomor versi. 
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
                },
        {
            "stepType":"drds",// Nama plugin. 
            "parameter":{
                "postSql":[],// Pernyataan SQL yang ingin Anda eksekusi setelah tugas sinkronisasi dijalankan. 
                "datasource":"",// Nama sumber data. 
                "column":[// Nama kolom. 
                "id"
                ],
                "writeMode":"insert ignore",
                "batchSize":"1024",// Jumlah catatan data yang ditulis sekaligus. 
                "table":"test",// Nama tabel. 
                "preSql":[]// Pernyataan SQL yang ingin Anda eksekusi sebelum tugas sinkronisasi dijalankan. 
                },
            "name":"Writer",
            "category":"writer"
                }
                ],
    "setting":{
        "errorLimit":{
        "record":"0"// Jumlah maksimum catatan data kotor yang diizinkan. 
            },
        "speed":{
            "throttle":true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku jika parameter throttle disetel ke true. 
            "concurrent":1, // Jumlah maksimum thread paralel. 
            "mbps":"12"// Kecepatan transmisi maksimum. Unit: MB/s. 
                }
            },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
                }
            ]
        }
    }

Parameter dalam kode untuk DRDS (PolarDB-X 1.0) Writer

Parameter

Deskripsi

Diperlukan

Nilai default

datasource

Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode.

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 ignore: Jika terjadi konflik kunci utama atau indeks unik, data sumber tidak dapat ditulis.

  • replace into: Jika terjadi konflik kunci utama atau indeks unik, data asli dihapus, dan data baru dimasukkan.

Tidak

insert ignore

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 dalam tabel tujuan, atur parameter ini ke asterisk (*), seperti "column": ["*"].

Ya

Tidak ada nilai default

preSql

Pernyataan SQL yang ingin Anda eksekusi sebelum tugas sinkronisasi dijalankan. Anda hanya dapat mengeksekusi satu pernyataan SQL pada UI tanpa kode dan beberapa pernyataan SQL di editor kode.

Sebagai contoh, Andadapat menyetel parameter ini ke delete * from table xxx; untuk menghapus data dari tabel xxx sebelum sinkronisasi data. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda.

Tidak

Tidak ada nilai default

postSql

Pernyataan SQL yang ingin Anda eksekusi setelah tugas sinkronisasi dijalankan. Anda hanya dapat mengeksekusi satu pernyataan SQL pada UI tanpa kode dan beberapa pernyataan SQL di editor kode.

Sebagai contoh, Anda dapat menyetel parameter ini ke delete * from table xxx where xx=xx; untuk menghapus data tertentu dari tabel xxx setelah sinkronisasi data. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda.

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 DRDS (PolarDB-X 1.0) serta meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data.

Tidak

1.024