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 |
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
-
Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi menggunakan Codeless UI dan Konfigurasi tugas sinkronisasi menggunakan Code Editor.
-
Untuk daftar lengkap parameter dan contoh skrip Code Editor, lihat Lampiran: Contoh skrip dan parameter.
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 [*].
|
Ya |
Tidak ada |
|
splitPk |
Kunci shard. Setel splitPk ke sebuah kolom untuk mengaktifkan ekstraksi data paralel melalui sharding.
|
Tidak |
Tidak ada |
|
where |
Klausul WHERE yang digunakan untuk menyaring data yang diekstraksi. Reader menyusun kueri SQL dari parameter column, table, dan where. Contoh:
|
Tidak |
Tidak ada |
|
querySql (advanced; tidak tersedia di Codeless UI) |
Kueri SQL kustom untuk penyaringan data. Saat parameter 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.
|
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:
Catatan
Anda hanya dapat mengonfigurasi kebijakan penanganan konflik di Code Editor. |
Tidak |
replace |
|
column |
Kolom tujuan tempat data ditulis, dipisahkan dengan koma (,). Contoh: |
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 |