All Products
Search
Document Center

DataWorks:MariaDB

Last Updated:Mar 01, 2026

Sumber data MariaDB menyediakan saluran dua arah untuk membaca dan menulis data ke MariaDB. Topik ini menjelaskan kemampuan sinkronisasi data yang disediakan oleh DataWorks untuk MariaDB.

Versi MariaDB yang didukung

Sumber data MariaDB mendukung versi-versi berikut:

MariaDB versi 5.5.x, 10.0.x, 10.1.x, 10.2.x, dan 10.3.x didukung. Anda juga dapat membaca data dari view menggunakan sinkronisasi offline.

Tipe field yang didukung

Untuk daftar lengkap tipe field setiap versi MariaDB, lihat dokumentasi resmi MariaDB. Tabel berikut mencantumkan tipe field utama yang didukung untuk MariaDB 10.3.x.

Field type

Offline read (MariaDB Reader)

Offline write (MariaDB Writer)

TINYINT

Support

Support

SMALLINT

Support

Support

INTEGER

Support

Support

BIGINT

Support

Supported

FLOAT

Supported

Support

DOUBLE

Supported

Support

DECIMAL/NUMERIC

Support

Supported

REAL

Not supported

Not supported

VARCHAR

Support

Support

JSON

Supported

Support

TEXT

Support

Support

MEDIUMTEXT

Supported

Supported

LONGTEXT

Support

Support

VARBINARY

Supported

Support

BINARY

Support

Supported

TINYBLOB

Support

Support

MEDIUMBLOB

Support

Support

LONGBLOB

Support

Support

ENUM

Support

Support

SET

Support

Supported

BOOLEAN

Supported

Support

BIT

Support

Supported

DATE

Support

Support

DATETIME

Support

Support

TIMESTAMP

Supported

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: Siapkan lingkungan MariaDB

Sebelum melakukan sinkronisasi data menggunakan DataWorks, Anda harus menyiapkan lingkungan MariaDB terlebih dahulu agar dapat mengonfigurasi dan menjalankan tugas sinkronisasi data MariaDB tanpa kendala.

Konfirmasi versi MariaDB

Integrasi data mendukung versi-versi tertentu MariaDB. Untuk informasi lebih lanjut, lihat bagian Versi MariaDB yang didukung. Anda dapat menjalankan pernyataan berikut di database MariaDB untuk memeriksa versinya.

Konfigurasikan izin akun

Buat akun MariaDB khusus bagi DataWorks untuk mengakses sumber data.

  1. (Opsional) Buat akun.

    Untuk informasi lebih lanjut, lihat Create a MariaDB user.

  2. Konfigurasikan izin.

    • Untuk pembacaan offline dari MariaDB, akun tersebut harus memiliki izin SELECT pada tabel yang akan disinkronkan.

    • Untuk penulisan offline ke MariaDB, akun tersebut harus memiliki izin INSERT, DELETE, dan UPDATE pada tabel yang akan disinkronkan.

  3. Anda dapat menjalankan perintah berikut untuk memberikan izin kepada akun atau langsung memberikan izin SUPER. Saat menjalankan pernyataan berikut, ganti 'sync_account' dengan akun yang telah Anda buat.

    -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; // Membuat akun sinkronisasi, menetapkan password, dan mengizinkan login dari host mana pun. Tanda at (%) menunjukkan host apa pun.
    GRANT SELECT, INSERT, DELETE, UPDATE ON *.* TO 'sync_account'@'%'; // Memberikan izin SELECT, INSERT, DELETE, dan UPDATE pada database kepada akun sinkronisasi.

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks sesuai petunjuk dalam Data source management. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Kembangkan tugas sinkronisasi data

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

Panduan konfigurasi tugas sinkronisasi offline untuk satu tabel

Lampiran: Contoh skrip MariaDB dan deskripsi parameter

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengatur parameter terkait dalam skrip sesuai format skrip terpadu. Untuk informasi lebih lanjut, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat menyiapkan tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"mariadb",// Nama plugin.
            "parameter":{
                "column":[// Nama kolom.
                    "id"
                ],
                "connection":[
                    {   "querySql":["select a,b from join1 c join join2 d on c.id = d.id;"], // Gunakan string untuk menulis querySql dalam connection.
                        "datasource":"",// Sumber data.
                        "table":[// Nama tabel. Meskipun hanya ada satu tabel, Anda harus menuliskannya dalam format array [].
                            "xxx"
                        ]
                    }
                ],
                "where":"",// Kondisi filter.
                "splitPk":"",// Kunci pemisahan.
                "encoding":"UTF-8"// Format encoding.
            },
            "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, artinya laju tidak dibatasi. Jika throttle diatur ke true, laju dibatasi.
            "concurrent":1,// Konkurensi pekerjaan.
            "mbps":"12"// Batas laju. Di sini, 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Reader

Script Parameter Name

Description

Required

Default value

datasource

Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah ditambahkan.

Yes

None

table

Nama tabel tempat data akan disinkronkan. Satu tugas integrasi data hanya dapat menyinkronkan data ke satu tabel tujuan.

Contoh berikut menunjukkan penggunaan lanjutan parameter table untuk mengonfigurasi rentang:

  • Anda dapat mengonfigurasi rentang untuk membaca data dari database dan tabel yang terpartisi. Misalnya, 'table_[0-99]' berarti data dibaca dari 'table_0', 'table_1', 'table_2', hingga 'table_99'.

  • Jika tabel Anda memiliki akhiran numerik dengan panjang yang sama, seperti 'table_000', 'table_001', 'table_002', hingga 'table_999', Anda dapat mengatur parameter menjadi '"table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]'.

Catatan

Tugas tersebut membaca data dari semua tabel yang cocok. Secara spesifik, ia membaca kolom yang ditentukan oleh parameter column. Jika suatu tabel atau kolom yang ditentukan tidak ada, tugas akan gagal.

Yes

None

column

Kumpulan kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan informasi field. Secara default, semua kolom digunakan. Misalnya, [ * ].

  • Pemangkasan kolom: Anda dapat memilih kolom tertentu untuk diekspor.

  • Pengubahan urutan kolom: Anda dapat mengekspor kolom dalam urutan yang berbeda dari skema tabel.

  • Konfigurasi konstanta: Anda harus mengikuti sintaks SQL MariaDB. Misalnya, ["id","table","1","'mingya.wmy'","'null'","to_char(a+1)","2.3","true"] .

    • id adalah nama kolom biasa.

    • 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.

  • Parameter column harus secara eksplisit menentukan kumpulan kolom untuk sinkronisasi dan tidak boleh kosong.

Yes

None

splitPk

Saat MariaDB Reader mengekstraksi data, jika Anda menentukan splitPk, field yang diwakili oleh splitPk digunakan untuk partisi data. Tugas sinkronisasi data kemudian memulai subtask konkuren untuk meningkatkan efisiensi.

  • Gunakan primary key tabel untuk splitPk. Primary key biasanya terdistribusi merata, yang membantu mencegah hot spot data di shard.

  • Saat ini, splitPk hanya mendukung tipe data integer untuk partisi. Jika Anda menentukan tipe data yang tidak didukung, fitur splitPk diabaikan, dan satu channel digunakan untuk sinkronisasi.

  • Jika Anda tidak menentukan splitPk, atau nilainya kosong, satu channel digunakan untuk menyinkronkan data di tabel.

No

None

where

Kondisi filter. Dalam banyak skenario bisnis, Anda mungkin menyinkronkan data dari hari ini dengan mengatur kondisi where menjadi gmt_create>$bizdate.

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

  • Anda tidak dapat mengatur kondisi where menjadi limit 10. Hal ini tidak sesuai dengan batasan klausa where SQL MariaDB.

No

None

querySql (Parameter ini tidak didukung di Antarmuka tanpa kode.)

Dalam beberapa skenario bisnis, parameter where tidak cukup untuk mendefinisikan kondisi filter. Anda dapat menggunakan parameter ini untuk mendefinisikan pernyataan SQL filter.

tablescolumnssplitPk

Misalnya, untuk menyinkronkan data setelah penggabungan multi-tabel, gunakan select a,b from table_a join table_b on table_a.id = table_b.id. Saat Anda mengonfigurasi querySql, MariaDB Reader mengabaikan parameter table, column, where, dan splitPk. Parameter querySql memiliki prioritas lebih tinggi daripada parameter table, column, where, dan splitPk. Parameter datasource digunakan untuk mengurai informasi seperti username dan password.

Catatan

Parameter querySql bersifat case-sensitive. Misalnya, jika Anda menuliskannya sebagai querysql, maka tidak berlaku.

No

None

Contoh skrip Writer

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[ 
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"mariadb",// Nama plugin.
            "parameter":{
                "postSql":[],// Pernyataan yang dijalankan setelah impor.
                "datasource":"",// Sumber data.
                "column":[// Nama kolom.
                    "id",
                    "value"
                ],
                "writeMode":"insert",// Mode penulisan. Anda dapat mengaturnya ke insert, replace, atau update.
                "batchSize":1024,// Jumlah catatan yang dikirimkan dalam satu batch.
                "table":"",// Nama tabel.
                "preSql":[ 
                     "delete from XXX;" // Pernyataan yang dijalankan sebelum impor.
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{// Jumlah catatan error.
            "record":"0"
        },
        "speed":{
            "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya laju tidak dibatasi. Jika throttle diatur ke true, laju dibatasi.
            "concurrent":1, // Konkurensi pekerjaan.
            "mbps":"12"// Batas laju. Ini mengontrol laju sinkronisasi maksimum untuk mencegah tekanan baca/tulis berlebihan pada database hulu atau hilir. Di sini, 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Writer

Script Parameter Name

Description

Required

Default value

datasource

Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah ditambahkan.

Yes

None

table

Nama tabel tempat data akan disinkronkan.

Yes

None

writeMode

Mode impor. Mode insert into, on duplicate key update, dan replace into didukung:

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

  • on duplicate key update: Jika tidak terjadi konflik primary key atau unique index, perilakunya sama seperti insert into. Jika terjadi konflik, baris baru menggantikan field yang ditentukan dari baris yang sudah ada. Jika Anda mengonfigurasi tugas di editor kode, atur writeMode ke update.

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

No

insert into

column

Field di tabel tujuan tempat data akan ditulis. Pisahkan field dengan koma (,). Misalnya, "column": ["id", "name", "age"]. Untuk menulis ke semua kolom secara berurutan, gunakan tanda bintang (*). Misalnya, "column": ["*"].

Yes

None

preSql

Pernyataan SQL yang dijalankan sebelum tugas sinkronisasi data dijalankan. Antarmuka tanpa kode hanya mendukung satu pernyataan SQL. Editor kode mendukung beberapa pernyataan SQL. Misalnya, Anda dapat menghapus data lama dari tabel sebelum tugas dijalankan (truncate table tablename).

Catatan

Transaksi tidak didukung untuk beberapa pernyataan SQL.

No

None

postSql

Pernyataan SQL yang dijalankan setelah tugas sinkronisasi data dijalankan. Antarmuka tanpa kode hanya mendukung satu pernyataan SQL. Editor kode mendukung beberapa pernyataan SQL. Misalnya, Anda dapat menambahkan timestamp 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 MariaDB, sehingga meningkatkan throughput keseluruhan. Jika nilai ini terlalu besar, error kehabisan memori (OOM) dapat terjadi dalam proses sinkronisasi data.

No

256

updateColumn

Field yang akan diperbarui ketika terjadi konflik primary key atau unique index. Parameter ini digunakan ketika writeMode diatur ke update. Pisahkan field dengan koma (,). Misalnya, "updateColumn":["name", "age"].

No

None