All Products
Search
Document Center

DataWorks:Sumber data AnalyticDB for PostgreSQL

Last Updated:Jul 18, 2026

Sumber data AnalyticDB for PostgreSQL menyediakan kemampuan baca dan tulis dua arah melalui Data Integration.

Batasan

Sinkronisasi batch mendukung pembacaan data dari sebuah view.

Versi yang didukung

Konektor mendukung versi hingga dan termasuk 7.0.

Tipe data yang didukung

Batch read

AnalyticDB for PostgreSQL Reader mendukung sebagian besar tipe data AnalyticDB for PostgreSQL. Pastikan tipe data Anda didukung sebelum menggunakannya.

Tabel berikut mencantumkan tipe data yang didukung untuk pembacaan batch.

Kategori

Tipe AnalyticDB for PostgreSQL

Integer

BIGINT, BIGSERIAL, INTEGER, SMALLINT, SERIAL, dan GEOMETRY

Floating point

DOUBLE, PRECISION, MONEY, NUMERIC, dan REAL

String

VARCHAR, CHAR, TEXT, BIT, dan INET

Date and time

DATE, TIME, dan TIMESTAMP

Boolean

BOOL

Binary

BYTEA

Batch write

AnalyticDB for PostgreSQL Writer mendukung sebagian besar tipe data AnalyticDB for PostgreSQL. Pastikan tipe data Anda didukung sebelum menggunakannya.

Tabel berikut memetakan tipe data DataWorks ke tipe data AnalyticDB for PostgreSQL untuk penulisan batch.

Tipe data DataWorks

Tipe AnalyticDB for PostgreSQL

LONG

BIGINT, BIGSERIAL, INTEGER, SMALLINT, dan SERIAL

DOUBLE

DOUBLE, PRECISION, MONEY, NUMERIC, dan REAL

STRING

VARCHAR, CHAR, TEXT, BIT, INET, dan GEOMETRY

DATE

DATE, TIME, dan TIMESTAMP

BOOLEAN

BOOL

BYTES

BYTEA

Catatan

Anda harus menggunakan type cast, seperti a_inet::varchar, untuk tipe data MONEY, INET, dan BIT.

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.

Kembangkan tugas sinkronisasi data

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

Sinkronisasi batch tabel tunggal

Sinkronisasi batch seluruh database

Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi batch untuk seluruh database.

Lampiran: Contoh skrip dan parameter

Konfigurasi tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengatur parameter terkait dalam skrip sesuai persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "type": "job",
    "steps": [
        {
            "parameter": {
                "datasource": "test_004",// Nama sumber data.
                "column": [// Kolom dalam tabel sumber.
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age"
                ],
                "where": "id=1001",// Klausul WHERE.
                "splitPk": "id",// Kunci shard.
                "table": "public.person"// Nama tabel sumber.
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",// Nomor versi.
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {// Jumlah catatan error.
            "record": ""
        },
        "speed": {
            "concurrent": 6,// Jumlah thread konkuren.
            "throttle": true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika parameter ini disetel ke false, Pengendalian aliran dinonaktifkan dan parameter mbps tidak berlaku. Jika disetel ke true, Pengendalian aliran diaktifkan.
           "mbps":"12"// Laju Pembatasan kecepatan dalam MB/s.
        }
    }
}

Parameter Reader

Parameter

Deskripsi

Wajib

Default

datasource

Nama sumber data sebagaimana terdaftar di DataWorks.

Ya

Tidak ada

table

Nama tabel sumber.

Ya

Tidak ada

column

Kolom yang akan disinkronkan, ditentukan sebagai array JSON. Secara default, semua kolom disinkronkan, seperti yang ditunjukkan oleh [*].

  • Anda dapat memilih subset kolom untuk diekspor.

  • Anda dapat mengubah urutan kolom.

  • Anda dapat mengonfigurasi konstanta. Anda harus mengikuti sintaks SQL. Contoh: ["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 kunci yang dicadangkan.

    • 1 adalah konstanta integer.

    • 'mingya.wmy' adalah konstanta string. Nilainya harus diapit tanda kutip tunggal (').

    • 'null' adalah konstanta string.

    • to_char(a+1) adalah ekspresi fungsi.

    • 2.3 adalah bilangan titik mengambang.

    • true adalah nilai boolean.

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

Ya

Tidak ada

splitPk

Kunci shard. Setel splitPk ke sebuah kolom untuk mengaktifkan ekstraksi data paralel melalui sharding.

  • Kami merekomendasikan penggunaan primary key tabel, yang biasanya terdistribusi merata dan membantu mencegah hotspot data.

  • Parameter splitPk hanya mendukung sharding data untuk kolom integer. Jika Anda menentukan kolom dengan tipe data lain, seperti string, float, atau date, Data Integration akan mengabaikan konfigurasi splitPk dan menyinkronkan data dalam satu thread.

  • Jika Anda tidak mengonfigurasi parameter splitPk atau membiarkannya kosong, tugas akan menyinkronkan data menggunakan satu thread.

Tidak

Tidak ada

where

Klausul WHERE yang digunakan untuk menyaring data yang diekstraksi. Reader menyusun kueri SQL dari parameter column, table, dan where. Contoh: id>2 and sex=1.

  • Anda dapat menggunakan klausul WHERE untuk melakukan sinkronisasi inkremental.

  • Jika Anda tidak menentukan klausul WHERE, konektor akan menyinkronkan seluruh tabel.

Tidak

Tidak ada

querySql (advanced; tidak tersedia di Codeless UI)

Kueri SQL kustom untuk penyaringan data. Saat parameter where tidak dapat menyatakan kondisi filter Anda, gunakan parameter ini sebagai gantinya. Data Integration mengabaikan parameter column, table, dan where ketika ini dikonfigurasi. Contoh: select a,b from table_a join table_b on table_a.id = table_b.id.

Saat Anda mengonfigurasi parameter querySql, AnalyticDB for PostgreSQL Reader mengabaikan parameter column, table, dan where.

Tidak

Tidak ada

fetchSize

Jumlah catatan yang diambil per batch dari database. Nilai yang lebih besar mengurangi round trip jaringan dan dapat meningkatkan performa ekstraksi.

Catatan

Nilai fetchSize lebih dari 2048 dapat menyebabkan error kehabisan memori (OOM) dalam proses sinkronisasi data.

Tidak

512

Contoh skrip Writer

{
    "type": "job",
    "steps": [
        {
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {
                "postSql": [],// Pernyataan SQL pasca-eksekusi.
                "datasource": "test_004",// Nama sumber data.
                "column": [// Kolom dalam tabel tujuan.
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age"
                ],
                "table": "public.person",// Nama tabel tujuan.
                "preSql": []// Pernyataan SQL pra-eksekusi.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",// Nomor versi.
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {// Jumlah catatan error.
            "record": ""
        },
        "speed": {
            "throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika parameter ini disetel ke false, Pengendalian aliran dinonaktifkan dan parameter mbps tidak berlaku. Jika disetel ke true, Pengendalian aliran diaktifkan.
            "concurrent":6, // Jumlah thread konkuren.
            "mbps":"12"// Laju Pembatasan kecepatan.
        }
    }
}

Parameter Writer

Parameter

Deskripsi

Wajib

Default

datasource

Nama sumber data sebagaimana terdaftar di DataWorks.

Ya

Tidak ada

table

Nama tabel tujuan.

Ya

Tidak ada

writeMode

Mode penulisan. Nilai yang valid: insert, copy, dan upsert.

  • insert: Menjalankan pernyataan PostgreSQL INSERT INTO ... VALUES ... untuk menulis data ke PostgreSQL. Mode ini direkomendasikan.

  • copy: PostgreSQL menyediakan perintah COPY untuk menyalin data antara tabel dan file (standard input atau standard output). Data Integration mendukung penggunaan COPY FROM untuk memuat data ke dalam tabel. Gunakan mode ini untuk meningkatkan performa.

  • upsert: Jika terjadi konflik data selama operasi penulisan, sistem menangani data baru dan data yang ada berdasarkan parameter conflictMode.

Tidak

insert

conflictMode

Jika writeMode disetel ke upsert dan terjadi konflik primary key atau unique index saat menulis data ke PostgreSQL, Anda dapat memilih salah satu kebijakan penanganan konflik berikut:

  • replace: Jika terjadi konflik, data baru yang masuk akan menimpa data yang sudah ada.

  • ignore: Jika terjadi konflik, konektor mengabaikan data baru dan mempertahankan data yang sudah ada.

Catatan

Anda hanya dapat mengonfigurasi kebijakan penanganan konflik di Code Editor.

Tidak

replace

column

Kolom tujuan tempat data ditulis, dipisahkan dengan koma (,). Contoh: "column":["id","name","age"]. Untuk menulis ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: "column":["*"].

Ya

Tidak ada

preSql

Pernyataan SQL yang dijalankan sebelum tugas sinkronisasi dimulai. Codeless UI mendukung satu pernyataan; Code Editor mendukung beberapa pernyataan, misalnya untuk membersihkan data lama.

Tidak

Tidak ada

postSql

Pernyataan SQL yang dijalankan setelah tugas sinkronisasi selesai. Codeless UI mendukung satu pernyataan; Code Editor mendukung beberapa pernyataan, misalnya untuk menambahkan timestamp.

Tidak

Tidak ada

batchSize

Jumlah catatan yang ditulis per batch. Nilai yang lebih besar mengurangi round trip jaringan dan meningkatkan throughput, tetapi nilai yang terlalu besar dapat menyebabkan error OOM.

Tidak

1024