All Products
Search
Document Center

DataWorks:GBase8a

Last Updated:Mar 01, 2026

Sumber data GBase8a memungkinkan Anda membaca dan menulis data ke GBase8a. Topik ini menjelaskan kemampuan sinkronisasi data GBase8a di DataWorks.

Batasan

  • GBase8a Reader dan GBase8a Writer mendukung Serverless resource groups (disarankan) dan exclusive resource groups for Data Integration.

  • Ketika menggunakan pernyataan insert into..., jika terjadi konflik pada primary key atau unique index, baris yang bermasalah tidak akan ditulis.

  • Data hanya dapat ditulis ke tabel tujuan di database utama.

    Catatan

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

  • GBase8a Writer tidak mendukung parameter writeMode.

Tambahkan sumber data

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

Kembangkan tugas sinkronisasi data

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

Panduan konfigurasi tugas sinkronisasi offline untuk satu tabel

Lampiran: Contoh skrip 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 dengan persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus Anda konfigurasikan untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type": "job",
    "steps": [
        {
            "stepType": "gbase8a", // Nama Plugin.
            "parameter": {
                "datasource": "", // Nama sumber data.
                "username": "",
                "password": "",
                "where": "",
                "column": [ // Field.
                    "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 catatan error.
        },
        "speed": {
            "throttle": true, // Jika Anda mengatur throttle ke false, parameter mbps tidak berlaku, dan tidak ada batasan laju. Jika Anda mengatur throttle ke true, batasan laju diterapkan.
            "concurrent": 1, // Jumlah pekerjaan konkuren.
            "mbps":"12"// Batasan laju. 1 mbps = 1 MB/s.
        }
    }
}

Parameter

Deskripsi

Wajib

Nilai default

datasource

Jika versi DataWorks Anda mendukung penambahan sumber data GBase8a, Anda dapat mereferensikan sumber data GBase8a yang telah ditambahkan berdasarkan namanya.

Tidak

Tidak ada

table

Tabel dari mana Anda ingin menyinkronkan data. Gunakan array JSON untuk menentukan tabel. Anda dapat membaca data dari beberapa tabel sekaligus.

Jika Anda mengonfigurasi beberapa tabel, pastikan skema tabel tersebut sama. GBase8a Reader tidak memeriksa apakah tabel memiliki struktur logis yang konsisten.

Catatan

Parameter table harus disertakan dalam unit konfigurasi connection.

Ya

Tidak ada

column

Kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan 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: Misalnya, '123'.

  • Kolom fungsi: Misalnya, date('now').

  • Anda harus secara eksplisit menentukan kolom yang akan disinkronkan untuk parameter column. Parameter ini tidak boleh kosong.

Ya

Tidak ada

splitPk

Saat GBase8a Reader mengekstrak 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 hotspot data pada shard yang dihasilkan.

  • Saat ini, splitPk hanya mendukung partisi data untuk tipe data integer. Tipe string, bilangan titik mengambang, tanggal, atau tipe lainnya tidak didukung. Jika Anda menentukan tipe data yang tidak didukung, fitur splitPk diabaikan, dan data disinkronkan melalui satu saluran.

  • Jika Anda mengosongkan splitPk, sistem mengasumsikan bahwa Anda tidak ingin mempartisi tabel dan mengekstrak data melalui satu saluran.

Tidak

Kosong

where

Kondisi filter. GBase8a Reader membuat pernyataan SQL berdasarkan column, table, dan kondisi where yang ditentukan, lalu mengekstrak data berdasarkan pernyataan SQL tersebut.

Misalnya, untuk 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.

  • Kondisi where memungkinkan sinkronisasi data bisnis inkremental yang efisien.

  • Jika Anda tidak mengonfigurasi kondisi where atau mengosongkannya, sinkronisasi data penuh akan dilakukan.

Tidak

Tidak ada

querySql

Dalam beberapa skenario bisnis, parameter where tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk menentukan pernyataan SQL filter kustom. Jika Anda mengonfigurasi parameter ini, sistem sinkronisasi data mengabaikan parameter tables, columns, dan splitPk, serta menggunakan isi parameter ini untuk memfilter data.

Saat Anda mengonfigurasi querySql, GBase8a Reader mengabaikan parameter table, column, where, dan splitPk.

Tidak

Tidak ada

fetchSize

Parameter ini menentukan jumlah catatan 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 terlalu besar (lebih dari 2048) dapat menyebabkan error kehabisan memori (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":"gbase8a",// Nama Plugin.
            "parameter":{
                "datasource": "Nama sumber data",
                "username": "",
                "password": "",
                "column": [// Field.
                    "id",
                    "name"
                ],
                "connection": [
                    {
                        "table": [// Nama tabel.
                            "Gbase8a_table"
                        ],
                        "datasource":""
                    }
                ],
                "preSql": [ // Pernyataan SQL yang dijalankan sebelum tugas sinkronisasi data berjalan.
                    "delete from @table where db_id = -1"
                ],
                "postSql": [// Pernyataan SQL yang dijalankan setelah tugas sinkronisasi data berjalan.
                    "update @table set db_modify_time = now() where db_id = 1"
                ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah catatan error.
        },
        "speed":{
            "throttle":true,// Jika Anda mengatur throttle ke false, parameter mbps tidak berlaku, dan tidak ada batasan laju. Jika Anda mengatur throttle ke true, batasan laju diterapkan.
            "concurrent":1, // Jumlah pekerjaan konkuren.
            "mbps":"12"// Batasan laju. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip Writer

Parameter

Deskripsi

Wajib

Nilai default

datasource

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

Ya

Tidak ada

table

Nama tabel tempat Anda ingin menulis data. Gunakan array JSON untuk menentukan tabel.

Catatan

Parameter table harus disertakan dalam unit konfigurasi connection.

Ya

Tidak ada

column

Field di tabel tujuan tempat Anda ingin menulis data. Pisahkan field dengan koma. Misalnya, "column": ["id", "name", "age"].

Catatan

Anda harus menentukan parameter column. Parameter ini tidak boleh kosong.

Ya

Tidak ada

preSql

Sebelum menulis data ke tabel tujuan, sistem menjalankan pernyataan SQL standar yang ditentukan di sini. Jika pernyataan SQL perlu beroperasi pada tabel, gunakan @table sebagai placeholder. Sistem akan mengganti variabel tersebut dengan nama tabel yang sebenarnya saat menjalankan pernyataan SQL.

Tidak

Tidak ada

postSql

Setelah menulis data ke tabel tujuan, sistem menjalankan pernyataan SQL standar yang ditentukan di sini.

Tidak

Tidak ada

batchSize

Jumlah catatan yang dikirimkan dalam satu batch. Nilai ini dapat secara signifikan mengurangi jumlah interaksi jaringan antara sistem sinkronisasi data dan GBase8a serta meningkatkan throughput keseluruhan. Jika nilai ini terlalu besar, hal tersebut dapat menyebabkan error kehabisan memori (OOM) dalam proses sinkronisasi data.

Tidak

1.024