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 |
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
Untuk detail prosedur konfigurasi, lihat Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode dan Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan Editor Kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan saat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan Parameter.
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.
| 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.
| 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
| 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 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.
| 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:
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 | 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 |