Vertica adalah database berorientasi kolom yang menggunakan arsitektur massively parallel processing (MPP). Sumber data Vertica menyediakan saluran dua arah untuk membaca dari dan menulis ke Vertica. Topik ini menjelaskan kemampuan sinkronisasi data sumber data Vertica di DataWorks.
Versi yang didukung
Vertica Reader mengakses Vertica menggunakan driver database Vertica. Pastikan driver tersebut kompatibel dengan layanan Vertica Anda. DataWorks menggunakan versi driver berikut.
<dependency>
<groupId>com.vertica</groupId>
<artifactId>vertica-jdbc</artifactId>
<version>7.1.2</version>
</dependency>Batasan
Sumber data Vertica hanya dapat digunakan dengan kelompok sumber daya Serverless (direkomendasikan) dan kelompok sumber daya eksklusif untuk Data Integration.
Vertica Writer tidak mendukung parameter writeMode.
Tugas hanya dapat dikonfigurasi di editor kode.
Tipe bidang yang didukung
Tipe data Vertica umum, seperti integer, float, string, dan time, didukung. Dukungan untuk tipe data lanjutan terbatas.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks sesuai 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 prosedurnya, lihat Konfigurasikan tugas di editor kode.
Untuk semua parameter dan contoh skrip editor kode, lihat bagian Lampiran: Contoh Skrip dan Deskripsi Parameter dalam topik ini.
Lampiran: Contoh skrip dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengatur parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
{
"type": "job",
"steps": [
{
"stepType": "vertica", // Nama plugin.
"parameter": {
"datasource": "", // Nama sumber data.
"where": "",
"column": [ // Kolom.
"id",
"name"
],
"splitPk": "id",
"connection": [
{
"table": [ // Nama tabel.
"table"
]
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {
"print": false,
"fieldDelimiter": ","
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // Jumlah catatan error.
},
"speed": {
"throttle": true, // Jika throttle diatur ke false, parameter mbps tidak berlaku, dan pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
"concurrent": 1, // Jumlah pekerjaan konkuren.
"mbps":"12"// Laju transmisi maksimum. 1 mbps sama dengan 1 MB/s.
}
}
}Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai Default |
datasource | Nama sumber data. Nilainya harus sama dengan nama sumber data yang Anda tambahkan di editor kode. | Ya | Tidak ada |
table | Tabel tempat data disinkronkan. Gunakan array JSON untuk mencantumkan tabel. Anda dapat membaca data dari beberapa tabel sekaligus. Jika Anda mengonfigurasi beberapa tabel, pastikan skema tabelnya sama. Vertica Reader tidak memeriksa konsistensi logika tabel. Catatan Parameter table harus disertakan dalam blok konfigurasi connection. | Ya | Tidak ada |
column | Kolom yang akan disinkronkan dari tabel sumber. Gunakan array JSON untuk menggambarkan kolom. Secara default, semua kolom digunakan, misalnya `["*"]`.
| Ya | Tidak ada |
splitPk | Saat Vertica Reader mengekstraksi data, menentukan parameter splitPk akan mempartisi data berdasarkan bidang yang diwakili oleh splitPk. Hal ini memungkinkan sinkronisasi data memulai tugas konkuren dan meningkatkan efisiensi sinkronisasi.
| Tidak | Tidak ada |
where | Kondisi filter. Vertica Reader membuat pernyataan SQL dari parameter column, table, dan where untuk mengekstraksi data. Misalnya, Anda dapat menentukan kondisi where selama pengujian. Dalam skenario bisnis nyata, untuk menyinkronkan data hari ini, Anda dapat mengatur kondisi where menjadi
| Tidak | Tidak ada |
querySql | Dalam beberapa skenario bisnis, parameter where tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk menentukan pernyataan SQL kustom untuk filtering. Jika Anda mengonfigurasi parameter ini, sistem sinkronisasi data akan mengabaikan parameter tables, columns, dan splitPk serta menggunakan pernyataan SQL kustom untuk memfilter data. Saat Anda mengonfigurasi querySql, Vertica Reader mengabaikan parameter table, column, dan where. | Tidak | Tidak ada |
fetchSize | Parameter ini menentukan jumlah catatan yang diambil dari server database dalam setiap batch. Nilai ini menentukan jumlah interaksi jaringan antara Data Integration dan server serta dapat secara signifikan meningkatkan kinerja ekstraksi data. Catatan Mengatur fetchSize ke nilai besar (> 2048) dapat menyebabkan error out-of-memory (OOM) dalam proses sinkronisasi data. | Tidak | 1024 |
Contoh skrip Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"vertica",// Nama plugin.
"parameter":{
"datasource": "data_source_name",
"column": [// Kolom.
"id",
"name"
],
"connection": [
{
"table": [// Nama tabel.
"vertica_table"
]
}
],
"preSql": [ // Pernyataan SQL yang dijalankan sebelum tugas sinkronisasi data dijalankan.
"delete from @table where db_id = -1"
],
"postSql": [// Pernyataan SQL yang dijalankan setelah tugas sinkronisasi data dijalankan.
"update @table set db_modify_time = now() where db_id = 1"
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan error.
},
"speed":{
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
"concurrent":1, // Jumlah pekerjaan konkuren.
"mbps":"12"// Laju transmisi maksimum. 1 mbps sama dengan 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Writer
Parameter | Deskripsi | Wajib | Nilai Default |
datasource | Nama sumber data. Nilainya harus sama dengan nama sumber data yang Anda tambahkan di editor kode. | Ya | Tidak ada |
jdbcUrl | URL Java Database Connectivity (JDBC) dari database tujuan. Parameter jdbcUrl disertakan dalam blok konfigurasi connection:
| Ya | Tidak ada |
username | Username untuk sumber data. | Ya | Tidak ada |
password | Password untuk username yang ditentukan. | Ya | Tidak ada |
table | Array JSON menentukan nama tabel yang akan disinkronkan. Catatan Parameter table harus disertakan dalam blok konfigurasi connection. | Ya | Tidak ada |
column | Kolom dalam tabel tujuan tempat data ditulis. Pisahkan kolom dengan koma. Misalnya, | Ya | Tidak ada |
preSql | Pernyataan SQL standar yang dijalankan sebelum data ditulis ke tabel tujuan. Jika pernyataan SQL beroperasi pada tabel, gunakan | Tidak | Tidak ada |
postSql | Pernyataan SQL standar yang dijalankan setelah data ditulis ke tabel tujuan. | Tidak | Tidak ada |
batchSize | Jumlah catatan yang dikomit dalam satu batch. Nilai ini dapat secara signifikan mengurangi interaksi jaringan antara sistem sinkronisasi data dan Vertica serta meningkatkan throughput keseluruhan. Jika nilai ini diatur terlalu tinggi, error OOM dapat terjadi dalam proses sinkronisasi data. | Tidak | 1024 |