Sumber data AnalyticDB for PostgreSQL memungkinkan Anda membaca dan menulis data ke AnalyticDB for PostgreSQL. Topik ini menjelaskan kemampuan sinkronisasi data untuk AnalyticDB for PostgreSQL di DataWorks.
Batasan
Tugas sinkronisasi offline mendukung pembacaan data dari view.
Versi yang didukung
Versi hingga dan termasuk 7.0 didukung.
Tipe field yang didukung
Baca offline
AnalyticDB for PostgreSQL Reader mendukung sebagian besar, namun tidak semua, tipe data AnalyticDB for PostgreSQL. Pastikan tipe data Anda didukung sebelum melanjutkan.
Tabel berikut mencantumkan pemetaan tipe data untuk AnalyticDB for PostgreSQL Reader.
Kategori | Tipe data AnalyticDB for PostgreSQL |
Tipe integer | BIGINT, BIGSERIAL, INTEGER, SMALLINT, SERIAL, dan GEOMETRY |
Tipe bilangan titik mengambang | DOUBLE, PRECISION, MONEY, NUMERIC, dan REAL |
Tipe string | VARCHAR, CHAR, TEXT, BIT, dan INET |
Tipe tanggal dan waktu | DATE, TIME, dan TIMESTAMP |
Tipe Boolean | BOOL |
Tipe biner | BYTEA |
Tulis offline
AnalyticDB for PostgreSQL Writer mendukung sebagian besar, namun tidak semua, tipe data AnalyticDB for PostgreSQL. Pastikan tipe data Anda didukung sebelum melanjutkan.
Tabel berikut mencantumkan pemetaan tipe data untuk AnalyticDB for PostgreSQL Writer.
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 |
Gunakan sintaks seperti a_inet::varchar untuk mengonversi 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 mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi tugas sinkronisasi offline untuk satu tabel
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi menggunakan Antarmuka tanpa kode dan Konfigurasikan tugas sinkronisasi menggunakan editor kode.
Untuk informasi mengenai semua parameter dan contoh skrip untuk editor kode, lihat Lampiran: Contoh skrip dan deskripsi parameter.
Panduan konfigurasi tugas sinkronisasi baca offline untuk seluruh database
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi real-time untuk seluruh database.
Lampiran: Contoh skrip dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
{
"type": "job",
"steps": [
{
"parameter": {
"datasource": "test_004",// Nama sumber data.
"column": [// Kolom dari tabel sumber.
"id",
"name",
"sex",
"salary",
"age"
],
"where": "id=1001",// Kondisi filter.
"splitPk": "id",// Kunci pemisahan.
"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,// Jika Anda mengatur throttle ke false, parameter mbps tidak berlaku dan tidak ada batasan laju. Jika Anda mengatur throttle ke true, batasan laju diterapkan.
"mbps":"12"// Batasan laju. 1 mbps setara dengan 1 MB/s.
}
}
}Parameter skrip Reader
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 dari mana Anda ingin menyinkronkan data. | Ya | Tidak ada |
column | Kolom yang ingin Anda sinkronkan. Gunakan array JSON untuk menentukan kolom. Secara default, semua kolom disinkronkan. Contoh: [*].
| Ya | Tidak ada |
splitPk | Saat AnalyticDB for PostgreSQL Reader mengekstrak data, jika Anda menentukan parameter splitPk, data dipartisi berdasarkan kunci pemisahan yang ditentukan. Data Integration memulai tugas konkuren untuk menyinkronkan data, yang meningkatkan performa sinkronisasi.
| Tidak | Tidak ada |
where | Kondisi filter. AnalyticDB for PostgreSQL Reader membuat pernyataan SQL berdasarkan parameter column, table, dan where yang ditentukan untuk mengekstrak data. Misalnya, untuk menyinkronkan data yang dihasilkan pada hari ini untuk pengujian, Anda dapat mengatur parameter where menjadi
| Tidak | Tidak ada |
querySql (Parameter ini hanya tersedia di editor kode.) | Dalam beberapa skenario bisnis, item konfigurasi where tidak cukup untuk mendefinisikan kondisi filter. Anda dapat menggunakan item konfigurasi ini untuk menentukan pernyataan SQL kustom. Saat Anda menentukan pernyataan kustom ini, sistem sinkronisasi data mengabaikan item konfigurasi lain seperti column dan table, dan langsung menggunakan pernyataan Anda untuk memfilter data. Misalnya, untuk menyinkronkan data setelah penggabungan tabel ganda, gunakan pernyataan seperti Saat Anda mengonfigurasi querySql, AnalyticDB for PostgreSQL Reader langsung mengabaikan konfigurasi untuk column, table, dan kondisi where. | Tidak | Tidak ada |
fetchSize | Parameter ini menentukan jumlah catatan yang diambil dalam setiap batch dari server database. Nilai yang lebih besar mengurangi jumlah interaksi jaringan antara Data Integration dan server, yang dapat meningkatkan performa ekstraksi data. Catatan Jika nilai fetchSize terlalu besar (lebih dari 2048), error kehabisan memori (OOM) dapat terjadi dalam proses Data Integration. | Tidak | 512 |
Contoh skrip Writer
{
"type": "job",
"steps": [
{
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"parameter": {
"postSql": [],// Pernyataan SQL yang dieksekusi setelah impor.
"datasource": "test_004",// Nama sumber data.
"column": [// Kolom dari tabel target.
"id",
"name",
"sex",
"salary",
"age"
],
"table": "public.person",// Nama tabel target.
"preSql": []// Pernyataan SQL yang dieksekusi sebelum impor.
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// Nomor versi.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// Jumlah catatan error.
"record": ""
},
"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":6, // Jumlah pekerjaan konkuren.
"mbps":"12"// Batasan laju.
}
}
}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 ke mana Anda ingin menyinkronkan data. | Ya | Tidak ada |
writeMode | Mode impor. Nilai yang valid: insert, copy, dan upsert.
| Tidak | insert |
conflictMode | Jika Anda mengatur writeMode ke upsert dan terjadi konflik primary key atau unique index saat data ditulis ke PostgreSQL, Anda dapat memilih salah satu kebijakan resolusi konflik berikut:
Catatan Anda hanya dapat mengonfigurasi kebijakan resolusi konflik di editor kode. | Tidak | replace |
column | Kolom dalam tabel target ke mana Anda ingin menulis data. Pisahkan kolom dengan koma (,). Contoh: | Ya | Tidak ada |
preSql | Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi data dimulai. Di Antarmuka tanpa kode, Anda hanya dapat menjalankan satu pernyataan SQL. Di editor kode, Anda dapat menjalankan beberapa pernyataan SQL, seperti pernyataan untuk menghapus data yang ada. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi data selesai. Di Antarmuka tanpa kode, Anda hanya dapat menjalankan satu pernyataan SQL. Di editor kode, Anda dapat menjalankan beberapa pernyataan SQL, seperti pernyataan untuk menambahkan timestamp. | Tidak | Tidak ada |
batchSize | Jumlah catatan yang ditulis dalam satu batch. Nilai yang lebih besar dapat secara signifikan mengurangi jumlah interaksi jaringan antara Data Integration dan AnalyticDB for PostgreSQL serta meningkatkan throughput. Namun, jika nilai ini terlalu besar, error OOM dapat terjadi dalam proses Data Integration. | Tidak | 1.024 |