All Products
Search
Document Center

DataWorks:ApsaraDB for OceanBase

Last Updated:Apr 23, 2026

Sumber data ApsaraDB for OceanBase memungkinkan Anda membaca dan menulis data ke ApsaraDB for OceanBase. Gunakan sumber data ini untuk mengonfigurasi tugas sinkronisasi data di DataWorks. Topik ini menjelaskan fitur-fitur yang tersedia untuk menyinkronkan data dengan ApsaraDB for OceanBase.

Versi yang didukung

ApsaraDB for OceanBase Reader dan ApsaraDB for OceanBase Writer mendukung versi OceanBase berikut untuk operasi pembacaan dan penulisan batch:

  • OceanBase 2.x

  • OceanBase 3.x

  • OceanBase 4.x

Batasan

Pembacaan batch

  • ApsaraDB for OceanBase mendukung mode tenant Oracle dan MySQL. Saat mengonfigurasi klausa where untuk penyaringan data atau kolom fungsi dalam parameter column, pastikan sintaksnya sesuai dengan batasan SQL dari mode tenant yang bersangkutan. Jika tidak, pernyataan SQL mungkin gagal.

  • Anda dapat membaca data dari sebuah view.

  • Selama pembacaan batch, jangan ubah data yang sedang disinkronkan untuk mencegah masalah kualitas data, seperti duplikasi atau kehilangan data.

  • Jika Anda mengonfigurasi sumber data untuk Read by Partition, akun yang digunakan untuk mengakses sumber data memerlukan izin system.

Penulisan batch

Catatan

Tugas sinkronisasi memerlukan setidaknya izin insert into.... Izin tambahan mungkin diperlukan tergantung pada pernyataan yang Anda tentukan dalam parameter preSql dan postSql.

  • Kami merekomendasikan menggunakan metode batch untuk menulis data. Metode ini hanya mengirim permintaan penulisan ketika jumlah baris yang terakumulasi mencapai ambang batas yang telah ditentukan.

  • ApsaraDB for OceanBase mendukung mode tenant Oracle dan MySQL. Saat mengonfigurasi parameter preSql dan postSql, pastikan sintaksnya sesuai dengan batasan SQL dari mode tenant yang bersangkutan. Jika tidak, pernyataan SQL mungkin gagal.

Pembacaan real-time

  • Fitur ini hanya mendukung mode tenant MySQL OceanBase.

  • Untuk menyinkronkan data real-time, Anda harus mengaktifkan fitur binlog. Untuk informasi lebih lanjut, lihat Operasi terkait Binlog (Instans Alibaba Cloud), , atau Operasi terkait Binlog (Instans OB Cloud).

  • Tugas sinkronisasi database penuh real-time tidak mendukung sumber data dalam mode connection string.

  • Untuk tugas sinkronisasi database penuh real-time, versi database harus V3.0 atau lebih baru.

  • ApsaraDB for OceanBase adalah database relasional terdistribusi yang dapat mengintegrasikan data dari beberapa database yang tersebar secara fisik menjadi satu database logis. Namun, saat menyinkronkan data secara real-time dari ApsaraDB for OceanBase ke AnalyticDB for MySQL, Anda hanya dapat menyinkronkan data dari satu database fisik. Sinkronisasi data dari database logis tidak didukung.

Prasyarat

Sebelum menyinkronkan data menggunakan DataWorks, siapkan lingkungan ApsaraDB for OceanBase Anda agar dapat mengonfigurasi dan menjalankan tugas sinkronisasi data dengan benar.

Konfigurasi daftar putih

Tambahkan Blok CIDR dari VPC tempat serverless resource group atau grup sumber daya eksklusif untuk Integrasi Data berada ke daftar putih instans OceanBase Anda. Untuk informasi lebih lanjut, lihat Konfigurasi Daftar Putih Alamat IP.

Buat akun dan berikan izin

Buat akun database dengan izin operasi yang diperlukan pada database OceanBase. Untuk informasi lebih lanjut, lihat Buat akun.

Tambahkan sumber data

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

Pengembangan tugas sinkronisasi data

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

Sinkronisasi batch tabel tunggal

Sinkronisasi real-time tabel tunggal

Sinkronisasi real-time database penuh

Lampiran: Skrip dan 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 Gunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type": "job",
    "steps": [
        {
            "stepType": "apsaradb_for_OceanBase", // Nama plug-in.
            "parameter": {
                "datasource": "", // Nama sumber data.
                "where": "",
                "column": [ // Kolom.
                    "id",
                    "name"
                ],
                "splitPk": ""
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {
                "print": false,
                "fieldDelimiter": ","
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {
            "record": "0" // Jumlah catatan data kotor yang diizinkan.
        },
        "speed": {
            "throttle": true, // Jika diatur ke false, parameter mbps tidak berlaku dan tidak ada pembatasan kecepatan. Jika diatur ke true, pembatasan kecepatan diaktifkan.
            "concurrent": 1, // Konkurensi.
            "mbps":"12"// Laju pembatasan kecepatan. 1 mbps = 1 MB/s.
        }
    }
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

Bawaan

datasource

Nama sumber data ApsaraDB for OceanBase di DataWorks.

Anda dapat mengonfigurasi koneksi menggunakan parameter jdbcUrl atau username.

Ya

Tidak ada

jdbcUrl

String koneksi JDBC untuk database tujuan. Anda dapat menentukan beberapa alamat koneksi untuk sebuah database dalam bentuk array JSON.

Jika beberapa alamat dikonfigurasi, ApsaraDB for OceanBase Reader akan memeriksa alamat IP tersebut secara berurutan hingga menemukan alamat yang valid.

Jika semua koneksi gagal, ApsaraDB for OceanBase Reader akan melaporkan error.

Catatan

Parameter jdbcUrl harus disertakan dalam blok konfigurasi connection.

Format jdbcUrl harus sesuai dengan spesifikasi resmi ApsaraDB for OceanBase dan dapat mencakup informasi kontrol koneksi. Contoh: jdbc:oceanbase://127.0.0.1:3306/database. Anda harus menentukan salah satu parameter ini atau parameter username.

Tidak

Tidak ada

username

Username untuk sumber data.

Tidak

Tidak ada

password

Password untuk username yang ditentukan.

Tidak

Tidak ada

table

Tabel-tabel dari mana Anda ingin menyinkronkan data. Anda dapat menentukan beberapa tabel dalam bentuk array JSON.

Jika Anda mengonfigurasi beberapa tabel, pastikan skema mereka identik. ApsaraDB for OceanBase Reader tidak memverifikasi konsistensi skema antar tabel.

Catatan

Parameter table harus disertakan dalam blok konfigurasi connection.

Ya

Tidak ada

column

Kumpulan kolom yang akan disinkronkan. Tentukan kolom-kolom tersebut dalam bentuk array JSON. Secara default, semua kolom digunakan. Contoh: ["*"].

  • Proyeksi kolom: Anda dapat mengekspor subset kolom.

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

  • Konfigurasi konstanta: Anda dapat menggunakan konstanta. Contoh: '123'.

  • Kolom fungsi: Anda dapat menggunakan kolom fungsi. Contoh: date('now').

  • Parameter column harus secara eksplisit menentukan kumpulan kolom yang akan disinkronkan dan tidak boleh kosong.

Ya

Tidak ada

splitPk

Saat ApsaraDB for OceanBase Reader mengekstraksi data, jika Anda menentukan parameter splitPk, sistem akan menggunakan kolom yang direpresentasikan oleh splitPk untuk melakukan sharding data. Proses ini memulai tugas konkuren untuk sinkronisasi data dan meningkatkan efisiensinya.

  • Kami merekomendasikan agar Anda menggunakan kunci primer tabel untuk splitPk karena kunci primer biasanya terdistribusi merata, yang membantu mencegah hotspot data di shard.

  • Saat ini, splitPk hanya mendukung sharding untuk tipe data integer. Tipe lain seperti string, float, dan tanggal tidak didukung. Jika Anda menentukan tipe yang tidak didukung, ApsaraDB for OceanBase Reader akan melaporkan error.

  • Jika Anda mengosongkan splitPk, sistem mengasumsikan bahwa sharding tidak diizinkan untuk tabel tersebut dan menggunakan satu saluran untuk ekstraksi data.

Tidak

Kosong

where

ApsaraDB for OceanBase Reader membuat kueri SQL berdasarkan column, table, dan kondisi where yang ditentukan untuk mengekstraksi data.

Sebagai contoh, selama pengujian, Anda dapat mengatur kondisi where menjadi limit 10. Dalam skenario bisnis umum, Anda mungkin menyinkronkan data hari ini dengan mengatur kondisi where menjadi gmt_create>$bizdate.

  • Anda dapat menggunakan kondisi where untuk sinkronisasi inkremental yang efektif.

  • Jika kondisi where tidak dikonfigurasi atau dikosongkan, sistem akan melakukan sinkronisasi tabel penuh.

Tidak

Tidak ada

querySql

Dalam beberapa skenario bisnis, parameter where mungkin tidak cukup untuk menggambarkan kondisi penyaringan. Anda dapat menggunakan parameter ini untuk menentukan pernyataan SQL penyaringan kustom. Jika parameter ini dikonfigurasi, sistem sinkronisasi data akan mengabaikan parameter table, column, dan splitPk serta menggunakan isi parameter ini untuk menyaring data.

Saat Anda mengonfigurasi querySql, ApsaraDB for OceanBase Reader mengabaikan parameter table, column, where, dan splitPk.

Tidak

Tidak ada

fetchSize

Jumlah catatan data yang diambil dalam setiap batch dari server database. Nilai ini menentukan jumlah interaksi jaringan antara Data Integration dan server serta dapat secara signifikan meningkatkan kinerja ekstraksi data.

Catatan

Nilai fetchSize yang besar (>2048) dapat menyebabkan error Out of Memory (OOM) dalam proses sinkronisasi data.

Tidak

1.024

Contoh skrip Writer

{
    "type":"job",
    "version":"2.0",// Nomor versi.
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"apsaradb_for_OceanBase",// Nama plug-in.
            "parameter":{
                "datasource": "Nama sumber data",
                "column": [// Kolom.
                    "id",
                    "name"
                ],
                "table": "apsaradb_for_OceanBase_table",// Nama tabel.
                "preSql": [ // Pernyataan SQL yang akan dieksekusi sebelum tugas sinkronisasi data dijalankan.
                    "delete from @table where db_id = -1"
                ],
                "postSql": [// Pernyataan SQL yang akan dieksekusi setelah tugas sinkronisasi data selesai.
                    "update @table set db_modify_time = now() where db_id = 1"
                ],
                "obWriteMode": "insert",
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah catatan data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Jika diatur ke false, parameter mbps tidak berlaku dan tidak ada pembatasan kecepatan. Jika diatur ke true, pembatasan kecepatan diaktifkan.
            "concurrent":1, // Konkurensi.
            "mbps":"12"// Laju pembatasan kecepatan. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Writer

Parameter

Deskripsi

Wajib

Bawaan

datasource

Nama sumber data ApsaraDB for OceanBase di DataWorks.

Anda dapat mengonfigurasi koneksi menggunakan parameter jdbcUrl atau username.

Tidak

Tidak ada

jdbcUrl

String koneksi JDBC untuk database tujuan. Parameter jdbcUrl harus disertakan dalam blok konfigurasi connection.

  • Anda hanya dapat mengonfigurasi satu nilai untuk sebuah database. Menulis data ke database dengan beberapa node primer (skenario impor dual-primer) tidak didukung.

  • Format jdbcUrl harus sesuai dengan spesifikasi resmi ApsaraDB for OceanBase dan dapat mencakup parameter koneksi tambahan. Contoh: jdbc:oceanbase://127.0.0.1:3306/database.

Ya

Tidak ada

username

Username untuk sumber data.

Ya

Tidak ada

password

Password untuk username yang ditentukan.

Ya

Tidak ada

table

Nama tabel tujuan. Tentukan nama dalam bentuk array JSON.

Catatan

Parameter table harus disertakan dalam blok konfigurasi connection.

Ya

Tidak ada

column

Kolom-kolom di tabel tujuan tempat Anda ingin menulis data. Pisahkan nama kolom dengan koma. Contoh: "column": ["id", "name", "age"].

Catatan

Parameter column wajib diisi dan tidak boleh kosong.

Ya

Tidak ada

obWriteMode

Mode penulisan untuk tabel tujuan. Parameter ini opsional.

  • insert: Menggunakan pernyataan INSERT INTO .... Jika terjadi konflik kunci primer atau indeks unik, baris yang bertabrakan tidak dapat ditulis.

  • update: Menggunakan pernyataan ... ON DUPLICATE KEY UPDATE .... Mode ini digunakan untuk mode tenant MySQL. Saat terjadi konflik, baris yang bertabrakan akan diperbarui.

  • merge: Menggunakan pernyataan MERGE INTO ... WHEN MATCHED THEN UPDATE .... Mode ini digunakan untuk mode tenant Oracle. Saat terjadi konflik, baris yang bertabrakan akan diperbarui.

Tidak

insert

onClauseColumns

Catatan

Parameter ini digunakan dalam mode tenant Oracle dan wajib diisi saat obWriteMode diatur ke merge. Jika tidak dikonfigurasi, data akan ditulis dalam mode insert.

Konfigurasikan parameter ini dengan kolom kunci primer atau kolom kendala unik. Pisahkan beberapa kolom dengan koma. Contoh: ID,C1.

Tidak

Tidak ada

obUpdateColumns

Catatan

Parameter ini berlaku saat obWriteMode diatur ke merge atau update.

Kolom-kolom yang akan diperbarui saat terjadi konflik penulisan data. Pisahkan beberapa kolom dengan koma. Contoh: c2,c3.

Tidak

Semua kolom

preSql

Pernyataan SQL yang akan dieksekusi sebelum operasi penulisan. Jika pernyataan SQL perlu beroperasi pada tabel, gunakan @table sebagai placeholder, yang akan diganti dengan nama tabel aktual selama eksekusi.

Tidak

Tidak ada

postSql

Pernyataan SQL yang akan dieksekusi setelah operasi penulisan selesai.

Tidak

Tidak ada

batchSize

Jumlah catatan yang akan dikomit dalam setiap batch. Nilai ini dapat sangat mengurangi interaksi jaringan antara sistem sinkronisasi data dan server, sehingga meningkatkan throughput secara keseluruhan.

Catatan

Nilai batchSize yang lebih besar dari 2048 dapat menyebabkan error OOM dalam proses sinkronisasi data.

Tidak

1.024