全部产品
Search
文档中心

DataWorks:Sumber data GBase 8a

更新时间:Jul 02, 2025

DataWorks menyediakan GBase 8a Reader dan GBase 8a Writer untuk membaca data dari serta menulis data ke sumber data GBase 8a. Topik ini menjelaskan kemampuan menyinkronkan data dari atau ke sumber data GBase 8a.

Batasan

  • GBase 8a Reader dan GBase 8a Writer hanya mendukung kelompok sumber daya eksklusif untuk Data Integration.

  • INSERT INTO: Jika terjadi konflik kunci utama atau indeks unik, data tidak dapat ditulis ke baris yang bertentangan.

  • Data hanya dapat ditulis ke tabel yang disimpan di database utama.

    Catatan

    Tugas sinkronisasi yang menggunakan GBase 8a Writer harus memiliki setidaknya izin untuk menjalankan INSERT INTO. Kebutuhan izin tambahan bergantung pada pernyataan SQL yang ditentukan dalam parameter preSql dan postSql saat Anda mengonfigurasi tugas tersebut.

  • GBase 8a Writer tidak mendukung parameter writeMode.

Mengembangkan tugas sinkronisasi data

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

Menambahkan sumber data

Mengonfigurasi tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal

Lampiran: Kode dan parameter

Lampiran: Mengonfigurasi tugas sinkronisasi batch menggunakan editor kode

Kode untuk GBase 8a Reader

{
    "type": "job",
    "steps": [
        {
            "stepType": "gbase8a", // Nama plugin. 
            "parameter": {
                "datasource": "", // Nama sumber data. 
                "username": "",
                "password": "",
                "where": "",
                "column": [ // Nama kolom. 
                    "id",
                    "name"
                ],
                "splitPk": "id",
                "connection": [
                    {
                        "table": [ // Nama tabel. 
                            "table"
                        ],
                        "datasource":""
                    }
                ]
            },
            "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 maksimum catatan data kotor yang diizinkan. 
        },
        "speed": {
            "throttle": true, // Menentukan apakah akan mengaktifkan pembatasan kecepatan. Nilai false menunjukkan bahwa pembatasan dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true. 
            "concurrent": 1, // Jumlah maksimum thread paralel. 
            "mbps":"12"// Laju transmisi maksimum. Unit: MB/s. 
        }
    }
}

Parameter dalam kode untuk GBase 8a Reader

Parameter

Deskripsi

Diperlukan

Nilai default

datasource

Nama sumber data. Jika edisi layanan DataWorks yang Anda aktifkan mendukung sumber data GBase 8a, Anda dapat menambahkan sumber data GBase 8a dan menentukan sumber data dalam parameter ini.

Tidak

Tidak ada nilai default

table

Nama tabel tempat Anda ingin membaca data. GBase 8a Reader dapat membaca data dari beberapa tabel. Tentukan nama tabel dalam array JSON.

Jika Anda menentukan beberapa tabel, Anda harus memastikan bahwa tabel-tabel tersebut memiliki skema yang sama. GBase 8a Reader tidak memeriksa apakah tabel-tabel tersebut memiliki skema yang sama.

Catatan

Parameter table harus disertakan dalam parameter connection.

Ya

Tidak ada nilai default

column

Nama kolom tempat Anda ingin membaca data. Tentukan nama-nama tersebut dalam array JSON. Nilai default 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, seperti '123'.

  • Fungsi didukung, seperti date('now').

  • 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 GBase 8a Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-shard berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Dengan cara ini, data dapat disinkronkan lebih efisien.

  • Kami merekomendasikan agar Anda menetapkan parameter splitPk ke nama kolom kunci utama tabel. Data dapat didistribusikan secara merata ke shard yang berbeda berdasarkan kolom kunci utama, bukan hanya intensif didistribusikan ke shard tertentu saja.

  • Parameter splitPk mendukung sharding untuk data hanya dengan tipe data integer. Jika Anda menetapkan parameter splitPk ke bidang dengan tipe data yang tidak didukung, seperti string, floating point, atau tipe data tanggal, pengaturan parameter ini diabaikan, dan thread tunggal digunakan untuk membaca data.

  • Jika Anda membiarkan parameter splitPk kosong, thread tunggal digunakan untuk membaca data.

Tidak

Tidak ada nilai default

where

Klausa WHERE. GBase 8a Reader menghasilkan pernyataan SQL berdasarkan pengaturan parameter column, table, dan where dan menggunakan pernyataan yang dihasilkan untuk membaca data.

Sebagai contoh, ketika Anda melakukan pengujian, Anda dapat menyetel parameter where ke limit 10. Untuk membaca data yang dihasilkan pada hari saat ini, Anda dapat menyetel parameter where ke gmt_create > $bizdate.

  • Anda dapat menggunakan klausa WHERE untuk membaca data inkremental.

  • Jika parameter where tidak disediakan atau dibiarkan kosong, semua data dibaca.

Tidak

Tidak ada nilai default

querySql

Pernyataan SQL yang digunakan untuk penyaringan data yang lebih halus. Jika Anda mengonfigurasi parameter ini, data difilter hanya berdasarkan nilai parameter ini.

Jika Anda mengonfigurasi parameter querySql, GBase 8a Reader mengabaikan pengaturan parameter table, column, where, dan splitPk.

Tidak

Tidak ada nilai default

fetchSize

Jumlah catatan data yang dibaca sekaligus. Parameter ini menentukan jumlah interaksi antara Data Integration dan database dan memengaruhi efisiensi pembacaan.

Catatan

Jika Anda menyetel parameter ini ke nilai yang lebih besar dari 2048, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data.

Tidak

1.024

Kode untuk GBase 8a Writer

{
    "type":"job",
    "version":"2.0",// Nomor versi. 
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"gbase8a",// Nama plugin. 
            "parameter":{
                "datasource": "Nama sumber data",
                "username": "",
                "password": "",
                "column": [// Nama kolom. 
                    "id",
                    "name"
                ],
                "connection": [
                    {
                        "table": [// Nama tabel. 
                            "Gbase8a_table"
                        ],
                        "datasource":""
                    }
                ],
                "preSql": [ // Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. 
                    "delete from @table where db_id = -1"
                ],
                "postSql": [// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. 
                    "update @table set db_modify_time = now() where db_id = 1"
                ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah maksimum catatan data kotor yang diizinkan. 
        },
        "speed":{
            "throttle":true,// Menentukan apakah akan mengaktifkan pembatasan kecepatan. Nilai false menunjukkan bahwa pembatasan dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true. 
            "concurrent":1, // Jumlah maksimum thread paralel. 
            "mbps":"12"// Laju transmisi maksimum. Unit: MB/s. 
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam kode untuk GBase 8a 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. Tentukan nama dalam array JSON.

Catatan

Parameter table harus disertakan dalam parameter connection.

Ya

Tidak ada nilai default

column

Nama kolom tempat Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti "column": ["id", "name", "age"].

Catatan

Parameter column tidak boleh dibiarkan kosong.

Ya

Tidak ada nilai default

preSql

Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. Gunakan @table untuk menunjukkan nama tabel tujuan dalam pernyataan SQL. Saat Anda menjalankan pernyataan SQL ini, @table diganti dengan nama tabel tujuan.

Tidak

Tidak ada nilai default

postSql

Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan.

Tidak

Tidak ada nilai default

batchSize

Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Hal ini sangat mengurangi interaksi antara Data Integration dan GBase 8a serta meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan OOM mungkin terjadi selama sinkronisasi data.

Tidak

1.024