全部产品
Search
文档中心

DataWorks:HybridDB for MySQL data source

更新时间:Jul 02, 2025

DataWorks menyediakan HybridDB for MySQL Reader dan HybridDB for MySQL Writer untuk membaca data dari dan menulis data ke sumber data HybridDB for MySQL. Topik ini menjelaskan kemampuan sinkronisasi data dari atau ke sumber data HybridDB for MySQL.

Batasan

  • Data dari Tampilan dapat dibaca selama sinkronisasi batch.

  • HybridDB for MySQL Reader dapat membaca tabel dan tampilan. Saat membaca data dari tabel, Anda dapat menentukan semua atau beberapa kolom secara berurutan, mengubah urutan kolom, menentukan bidang konstan, serta mengonfigurasi fungsi HybridDB for MySQL seperti now().

Pemetaan Tipe Data

Tabel berikut mencantumkan pemetaan tipe data yang digunakan oleh HybridDB for MySQL Reader atau HybridDB for MySQL Writer untuk mengonversi tipe data.

Kategori

Tipe Data HybridDB for MySQL

Integer

INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT, dan YEAR

Floating point

FLOAT, DOUBLE, dan DECIMAL

String

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

Tanggal dan waktu

DATE, DATETIME, TIMESTAMP, dan TIME

Boolean

BOOL

Biner

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, dan VARBINARY

Catatan
  • Tipe data yang tidak tercantum dalam tabel di atas tidak didukung.

  • HybridDB for MySQL Reader memproses TINYINT(1) sebagai tipe data integer.

Tambahkan Sumber Data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Tambahkan dan kelola sumber data. Anda dapat melihat tip informasi parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Mengembangkan Tugas Sinkronisasi Data

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

Konfigurasikan Tugas Sinkronisasi Batch untuk Menyinkronkan Data Tabel Tunggal

Konfigurasikan Pengaturan Sinkronisasi untuk Mengimplementasikan Sinkronisasi Batch Semua Data dalam Database

Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan tugas sinkronisasi di Data Integration.

Lampiran: Kode dan 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 sinkronisasi batch menggunakan editor kode. Informasi berikut menjelaskan parameter yang perlu dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Kode untuk HybridDB for MySQL Reader

Contoh kode untuk HybridDB for MySQL Reader membaca data dari tabel yang tidak di-sharding:

{
    "type": "job",
    "steps": [
        {
            "parameter": {
                "datasource": "px_aliyun_hymysql",// Nama sumber data. 
                "column": [// Nama kolom tempat Anda ingin menulis data. 
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age",
                    "pt"
                ],
                "where": "id=10001",// Klausul WHERE. 
                "splitPk": "id",// Kunci shard. 
                "table": "person"// Nama tabel sumber. 
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {}
    ],
    "version": "2.0",// Nomor versi. 
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan. 
            "record": ""
        },
        "speed": {
            "concurrent": 7,// Jumlah maksimum thread paralel. 
            "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. 
            "mbps": 1 // Laju transmisi maksimum. Unit: MB/s. 
        }
    }
}

Parameter dalam Kode untuk HybridDB for MySQL 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 tempat Anda ingin membaca data. Setiap tugas sinkronisasi hanya dapat digunakan untuk menyinkronkan data ke satu tabel.

Ya

Tidak ada nilai default

column

Nama kolom tempat 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 HybridDB for MySQL Reader, 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': 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 tempat Anda ingin membaca data. Parameter ini tidak boleh dibiarkan kosong.

Ya

Tidak ada nilai default

splitPk

Bidang yang digunakan untuk sharding data saat HybridDB for MySQL Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-sharding berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Ini meningkatkan efisiensi sinkronisasi data.

  • 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 didistribusikan secara intensif hanya ke shard tertentu.

  • Parameter splitPk mendukung sharding untuk data hanya dari tipe data integer. Jika Anda menyetel parameter ini ke bidang tipe data yang tidak didukung, seperti string, floating point, atau tipe data tanggal, HybridDB for MySQL Reader mengabaikan pengaturan parameter splitPk dan menggunakan satu thread untuk membaca data.

  • Jika parameter splitPk tidak disediakan atau dibiarkan kosong, HybridDB for MySQL Reader menggunakan satu thread untuk membaca data.

Tidak

Tidak ada nilai default

where

Klausul WHERE. Misalnya, Anda dapat menyetel parameter ini ke gmt_create > $bizdate untuk membaca data yang dihasilkan pada hari itu.

  • Anda dapat menggunakan klausul WHERE untuk membaca data inkremental. Jika parameter where tidak disediakan atau dibiarkan kosong, HybridDB for MySQL Reader membaca semua data.

  • Jangan atur parameter where ke limit 10, yang tidak sesuai dengan batasan HybridDB for MySQL pada klausa SQL WHERE.

Tidak

Tidak ada nilai default

querySql (parameter lanjutan, yang hanya tersedia di editor kode)

Pernyataan SQL yang digunakan untuk penyaringan data yang diperhalus. Jika Anda menentukan parameter ini, HybridDB for MySQL Reader hanya menyaring data berdasarkan nilai parameter ini. Misalnya, jika Anda ingin menggabungkan beberapa tabel untuk sinkronisasi data, atur parameter ini ke ["id","table","1","'mingya.wmy'","'null'","to_char(a+1)","2.3","true"]. Prioritas parameter querySql lebih tinggi daripada parameter table, column, where, dan splitPk. Jika Anda menentukan parameter querySql, HybridDB for MySQL Reader mengabaikan pengaturan parameter column, table, where, dan splitPk yang Anda tentukan. Sistem mengurai informasi, seperti nama pengguna dan kata sandi, yang diperlukan oleh sumber data yang ditentukan oleh parameter datasource dari parameter querySql.

Tidak

Tidak ada nilai default

singleOrMulti (hanya tersedia untuk tabel yang di-sharding)

Menentukan bahwa tabel sumber adalah tabel yang di-sharding. Setelah Anda beralih dari UI tanpa kode ke editor kode, konfigurasi "singleOrMulti":"multi" dibuat secara otomatis. Namun, jika Anda menggunakan editor kode sejak awal, konfigurasi tidak dibuat secara otomatis, dan Anda harus menambahkan konfigurasi secara manual di editor kode. Jika Anda tidak menambahkan konfigurasi, HybridDB for MySQL Reader hanya membaca data dari shard pertama. Parameter singleOrMulti hanya digunakan di frontend.

Ya

multi

Kode untuk HybridDB for MySQL Writer

{
    "type": "job",
    "steps": [
        {
            "parameter": {},
        {
            "parameter": {
                "postSql": [],// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. 
                "datasource": "px_aliyun_hy***",// Nama sumber data. 
                "column": [// Nama kolom. 
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age",
                    "pt"
                ],
                "writeMode": "insert",// Mode penulisan. 
                "batchSize": 256,// Jumlah catatan data yang ditulis sekaligus. 
                "encoding": "UTF-8",// Format encoding. 
                "table": "person_copy",// Nama tabel tujuan. 
                "preSql": []// Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. 
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",// Nomor versi. 
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan. 
            "record": ""
        },
        "speed": {
            "concurrent": 7,// Jumlah maksimum thread paralel. 
            "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. 
            "mbps": 1,// Laju transmisi maksimum. Unit: MB/s. 
        }
    }
}

Parameter dalam Kode untuk HybridDB for MySQL 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 tempat Anda ingin menulis data.

Ya

Tidak ada nilai default

writeMode

Mode penulisan. Nilai valid:

  • replace: Jika tidak ada konflik kunci utama atau konflik indeks unik, data diproses dengan cara yang sama seperti saat Anda menyetel parameter ini ke insert. Jika terjadi konflik, bidang yang ditentukan dalam baris di tabel tujuan diperbarui.

  • insert: Jika tidak ada konflik kunci utama atau konflik indeks unik, data langsung ditulis ke tabel tujuan. Jika terjadi konflik kunci utama atau konflik indeks unik, data tidak dapat ditulis ke baris yang bertentangan, dan data yang tidak ditulis ke baris tersebut dianggap sebagai data kotor.

Tidak

insert

column

Nama kolom tempat 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 nilainya ke asterisk (*), seperti "column":["*"].

Ya

Tidak ada nilai default

preSql

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

Tidak

Tidak ada nilai default

postSql

Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi batch dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menambahkan timestamp. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode.

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 HybridDB for MySQL dan 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