全部产品
Search
文档中心

DataWorks:Sumber Data AnalyticDB for PostgreSQL

更新时间:Jul 02, 2025

DataWorks menyediakan AnalyticDB for PostgreSQL Reader dan AnalyticDB for PostgreSQL Writer untuk membaca dan menulis data ke sumber data AnalyticDB for PostgreSQL. Topik ini menjelaskan kemampuan menyinkronkan data dari atau ke sumber data tersebut.

Batasan

Data dari Tampilan dapat dibaca selama sinkronisasi batch.

Versi AnalyticDB for PostgreSQL yang Didukung

AnalyticDB for PostgreSQL versi V7.0 dan versi sebelumnya didukung.

Pemetaan Tipe Data

Pembacaan Data Batch

AnalyticDB for PostgreSQL Reader mendukung sebagian besar tipe data AnalyticDB for PostgreSQL. Pastikan bahwa tipe data basis data Anda didukung.

Tabel berikut mencantumkan pemetaan tipe data yang digunakan oleh AnalyticDB for PostgreSQL Reader untuk mengonversi tipe data.

Kategori

Tipe Data 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

Tanggal dan waktu

DATE, TIME, dan TIMESTAMP

Boolean

BOOL

Biner

BYTEA

Penulisan Data Batch

AnalyticDB for PostgreSQL Writer mendukung sebagian besar tipe data AnalyticDB for PostgreSQL. Pastikan bahwa tipe data basis data Anda didukung.

Tabel berikut mencantumkan pemetaan tipe data yang digunakan oleh AnalyticDB for PostgreSQL Writer untuk mengonversi tipe data.

Kategori

Tipe Data 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

Sintaks seperti a_inet::varchar diperlukan saat AnalyticDB for PostgreSQL Writer mengonversi data ke tipe data MONEY, INET, atau BIT.

Mengembangkan Tugas Sinkronisasi Data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk pengaturan parameter, lihat infotip setiap parameter di tab konfigurasi tugas.

Menambahkan Sumber Data

Mengonfigurasi Tugas Sinkronisasi Batch untuk Menyinkronkan Data dari Satu Tabel

Mengonfigurasi Pengaturan Sinkronisasi untuk Melakukan Sinkronisasi Batch Semua Data dalam Basis Data

Untuk detail prosedur konfigurasi, lihat Mengonfigurasi Tugas Sinkronisasi di Data Integration.

Lampiran: Kode dan Parameter

Lampiran: Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan Editor Kode

Kode untuk AnalyticDB for PostgreSQL Reader

{
    "type": "job",
    "steps": [
        {
            "parameter": {
                "datasource": "test_004",// Nama sumber data.
                "column": [// Nama kolom.
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age"
                ],
                "where": "id=1001",// Klausul WHERE.
                "splitPk": "id",// Kunci shard.
                "table": "public.person"// Nama tabel.
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",// Nomor versi.
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan.
            "record": ""
        },
        "speed": {
            "concurrent": 6,// Jumlah maksimum thread paralel.
            "throttle": true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan throttling dinonaktifkan, dan nilai true menunjukkan throttling diaktifkan. Parameter mbps hanya berlaku jika parameter throttle disetel ke true.
           "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
        }
    }
}

Parameter dalam Kode untuk AnalyticDB for PostgreSQL Reader

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 dari mana Anda ingin membaca data.

Ya

Tidak ada nilai default

column

Nama kolom dari mana Anda ingin membaca data. Tentukan nama dalam larik 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. Nama kolom harus diatur sesuai dengan sintaks SQL yang didukung oleh AnalyticDB for PostgreSQL, seperti ["id", "table","1","'mingya.wmy'","'null'", "to_char(a+1)","2.3","true"].

    • id: nama kolom.

    • table: nama kolom yang berisi kata kunci tercadang.

    • 1: konstanta integer.

    • 'mingya.wmy': konstanta string, yang diapit oleh tanda kutip tunggal (').

    • 'null': string null.

    • to_char(a+1): ekspresi fungsi yang digunakan untuk menghitung panjang string.

    • 2.3: konstanta floating-point.

    • true: nilai Boolean.

  • Parameter column harus secara eksplisit menentukan semua kolom dari mana Anda ingin membaca data. Parameter ini tidak boleh dibiarkan kosong.

Ya

Tidak ada nilai default

splitPk

Bidang yang digunakan untuk sharding data saat AnalyticDB for PostgreSQL Reader membaca data. Jika Anda menentukan parameter ini, tabel sumber di-shard berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Ini meningkatkan efisiensi sinkronisasi data.

  • Kami merekomendasikan Anda menyetel 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.

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

  • Jika parameter splitPk tidak disediakan atau dibiarkan kosong, satu thread digunakan untuk membaca data.

Tidak

Tidak ada nilai default

where

Klausul WHERE. AnalyticDB for PostgreSQL Reader menghasilkan pernyataan SQL berdasarkan pengaturan parameter table, column, dan where dan menggunakan pernyataan yang dihasilkan untuk membaca data. Misalnya, saat melakukan tes, Anda dapat menyetel parameter where ke id>2 and sex=1 untuk membaca data yang dihasilkan pada hari itu.

  • Anda dapat menggunakan klausul WHERE untuk membaca data inkremental.

  • Jika parameter where tidak disediakan atau dibiarkan kosong, AnalyticDB for PostgreSQL Reader membaca data penuh.

Tidak

Tidak ada nilai default

querySql (parameter lanjutan, tersedia hanya di editor kode)

Pernyataan SQL yang digunakan untuk penyaringan data yang diperhalus. Jika Anda menentukan parameter ini, AnalyticDB for PostgreSQL Reader hanya menyaring data berdasarkan nilai parameter ini. Misalnya, jika Anda ingin menggabungkan beberapa tabel untuk sinkronisasi data, atur parameter ini ke select a,b from table_a join table_b on table_a.id = table_b.id.

Jika Anda menentukan parameter ini, AnalyticDB for PostgreSQL Reader mengabaikan pengaturan parameter column, table, dan where.

Tidak

Tidak ada nilai default

fetchSize

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

Catatan

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

Tidak

512

Kode untuk AnalyticDB for PostgreSQL Writer

{
    "type": "job",
    "steps": [
        {
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {
                "postSql": [],// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan.
                "datasource": "test_004",// Nama sumber data.
                "column": [// Nama kolom.
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age"
                ],
                "table": "public.person",// Nama tabel.
                "preSql": []// Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",// Nomor versi.
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan.
            "record": ""
        },
        "speed": {
            "throttle":true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan throttling dinonaktifkan, dan nilai true menunjukkan throttling diaktifkan. Parameter mbps hanya berlaku jika parameter throttle disetel ke true.
            "concurrent":6, // Jumlah maksimum thread paralel.
            "mbps":"12"// Laju transmisi maksimum.
        }
    }
}

Parameter dalam Kode untuk AnalyticDB for PostgreSQL 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 ke mana Anda ingin menulis data.

Ya

Tidak ada nilai default

writeMode

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

  • insert: AnalyticDB for PostgreSQL Writer mengeksekusi pernyataan INSERT INTO...VALUES... untuk menulis data ke basis data AnalyticDB for PostgreSQL. Kami merekomendasikan Anda memilih mode ini dalam sebagian besar kasus.

  • copy: AnalyticDB for PostgreSQL menyediakan perintah copy untuk menyalin data antara tabel dan file input atau output standar. Data Integration mendukung pernyataan COPY FROM, yang memungkinkan penyalinan data dari file ke tabel. Mode ini direkomendasikan jika terjadi masalah performa.

  • upsert: Jika terjadi konflik saat data ditulis, data baru dan lama diproses berdasarkan pengaturan parameter conflictMode.

Tidak

insert

conflictMode

Jika writeMode disetel ke upsert dan terjadi konflik kunci utama atau indeks unik saat data ditulis, Anda dapat menggunakan kebijakan berikut untuk menangani konflik:

  • replace: Jika terjadi konflik saat data ditulis, data baru yang akan disinkronkan menimpa data lama.

  • ignore: Jika terjadi konflik saat data ditulis, data baru diabaikan dan data lama dipertahankan.

Catatan

Anda hanya dapat mengonfigurasi parameter ini saat mengonfigurasi tugas sinkronisasi menggunakan editor kode.

Tidak

replace

column

Nama kolom ke mana Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti "column":["id","name","age"]. Jika Anda ingin menulis data ke semua kolom dalam tabel tujuan, atur parameter ini ke asterisk (*), seperti "column":["*"].

Ya

Tidak ada nilai default

preSql

Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menghapus data usang. Anda hanya dapat menjalankan satu pernyataan SQL pada UI tanpa kode dan beberapa pernyataan SQL di editor kode.

Tidak

Tidak ada nilai default

postSql

Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menambahkan cap waktu. Anda hanya dapat menjalankan satu pernyataan SQL pada UI tanpa kode dan beberapa pernyataan SQL di editor kode.

Tidak

Tidak ada nilai default

batchSize

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

Tidak

1.024