Vertica adalah database berorientasi kolom yang menggunakan arsitektur pemrosesan paralel masif (MPP). DataWorks menyediakan Vertica Reader dan Vertica Writer untuk membaca dan menulis data ke sumber data Vertica. Topik ini menjelaskan kemampuan sinkronisasi data dari atau ke sumber data Vertica.
Versi Vertica yang Didukung
Vertica Reader terhubung ke database Vertica menggunakan driver Konektivitas Database Java (JDBC) Vertica. Pastikan versi driver kompatibel dengan database Vertica Anda. Driver JDBC Vertica dari versi berikut digunakan:
<dependency>
<groupId>com.vertica</groupId>
<artifactId>vertica-jdbc</artifactId>
<version>7.1.2</version>
</dependency>Batasan
Sumber data Vertica hanya mendukung kelompok sumber daya eksklusif untuk Data Integration.
Vertica Writer tidak mendukung parameter writeMode.
Anda hanya dapat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi.
Pemetaan Tipe Data
Tipe data Vertica umum, termasuk integer, floating point, string, dan waktu, didukung. Namun, dukungan untuk beberapa tipe data lanjutan terbatas.
Mengembangkan Tugas Sinkronisasi Data
Untuk informasi tentang titik awal dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk detail pengaturan parameter, lihat tip info setiap parameter pada tab konfigurasi tugas.
Menambahkan Sumber Data
Mengonfigurasi Tugas Sinkronisasi Batch untuk Menyinkronkan Data dari Satu Tabel
Untuk informasi tentang prosedur konfigurasi, lihat Konfigurasikan 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.
Lampiran: Kode dan Parameter
Lampiran: Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode
Kode untuk Vertica Reader
{
"type": "job",
"steps": [
{
"stepType": "vertica", // Nama plugin.
"parameter": {
"datasource": "", // Nama sumber data.
"where": "",
"column": [ // Nama 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 maksimum catatan data kotor yang diperbolehkan.
},
"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": 1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
}
}Parameter dalam Kode untuk Vertica 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. Vertica Reader dapat membaca data dari beberapa tabel. Tentukan nama tabel dalam array JSON. Jika Anda menentukan beberapa tabel, pastikan tabel tersebut memiliki skema yang sama. Vertica Reader tidak memeriksa apakah tabel memiliki skema yang sama. Catatan Parameter table harus disertakan dalam parameter connection. | Ya | Tidak ada nilai default |
column | Nama kolom dari mana Anda ingin membaca data. Tentukan nama dalam array JSON. Nilai defaultnya adalah [ * ], yang menunjukkan semua kolom dalam tabel sumber.
| Ya | Tidak ada nilai default |
splitPk | Bidang yang digunakan untuk sharding data saat Vertica Reader membaca data. Jika Anda menentukan parameter ini, tabel sumber akan 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 | Klausa WHERE. Vertica Reader menghasilkan pernyataan SQL berdasarkan pengaturan parameter table, column, dan where dan menggunakan pernyataan yang dihasilkan untuk membaca data. Sebagai contoh, ketika Anda melakukan tes, Anda dapat mengonfigurasi parameter where untuk memfilter data. Dalam skenario bisnis sebenarnya, Anda dapat menyetel parameter where ke
| Tidak | Tidak ada nilai default |
querySql | Pernyataan SQL yang digunakan untuk penyaringan data yang lebih halus. Jika Anda mengonfigurasi parameter ini, data difilter hanya berdasarkan nilai parameter ini. Jika Anda mengonfigurasi parameter querySql, Vertica Reader mengabaikan pengaturan parameter table, column, dan where. | Tidak | Tidak ada nilai default |
fetchSize | Jumlah catatan data yang dibaca sekaligus. Parameter ini menentukan jumlah interaksi antara Data Integration dan database 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 | 1.024 |
Kode untuk Vertica Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"vertica", // Nama plugin.
"parameter":{
"datasource": "Nama sumber data",
"column": [// Nama kolom.
"id",
"name"
],
"connection": [
{
"table": [// Nama tabel.
"vertica_table"
]
}
],
"preSql": [ // Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dimulai.
"delete from @table where db_id = -1"
],
"postSql": [// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi selesai.
"update @table set db_modify_time = now() where db_id = 1"
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan data kotor yang diperbolehkan.
},
"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":1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam Kode untuk Vertica 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 |
jdbcUrl | URL JDBC dari database Vertica. Parameter jdbcUrl harus disertakan dalam parameter connection.
| Ya | Tidak ada nilai default |
username | Nama pengguna yang Anda gunakan untuk terhubung ke database. | Ya | Tidak ada nilai default |
password | Kata sandi yang Anda gunakan untuk terhubung ke database. | Ya | Tidak ada nilai default |
table | Nama tabel ke mana Anda ingin menulis data. Tentukan nama dalam array JSON. Catatan Parameter table harus disertakan dalam parameter connection. | Ya | Tidak ada nilai default |
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 dimulai. Gunakan | Tidak | Tidak ada nilai default |
postSql | Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi selesai. | Tidak | Tidak ada nilai default |
batchSize | Jumlah catatan data yang ditulis sekaligus. Setel parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan Vertica dan meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan OOM mungkin terjadi selama sinkronisasi data. | Tidak | 1.024 |