All Products
Search
Document Center

DataWorks:Vertica

Last Updated:Mar 01, 2026

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

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

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 `["*"]`.

  • Pemangkasan kolom didukung. Anda dapat mengekspor subset kolom.

  • Pengubahan urutan kolom didukung. Anda dapat mengekspor kolom dalam urutan yang berbeda dari skema tabel.

  • Konstanta didukung.

  • Parameter column harus secara eksplisit menentukan kolom yang akan disinkronkan dan tidak boleh kosong.

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.

  • Gunakan primary key tabel untuk parameter splitPk. Primary key biasanya terdistribusi merata, yang membantu mencegah hot spot data pada shard yang dipartisi.

  • Saat ini, splitPk hanya mendukung partisi data untuk kolom integer. Tipe data lain seperti string, float, dan date tidak didukung. Jika Anda menentukan tipe data yang tidak didukung, Vertica Reader akan melaporkan error.

  • Jika Anda membiarkan splitPk kosong, tabel tidak dipartisi. Data diekstraksi melalui satu saluran.

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 gmt_create > $bizdate.

  • Kondisi where memungkinkan sinkronisasi inkremental yang efisien.

  • Jika Anda tidak mengonfigurasi kondisi where atau membiarkannya kosong, semua data dari tabel akan disinkronkan.

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:

  • Anda hanya dapat menentukan satu nilai untuk satu database. Beberapa database primary untuk database yang sama tidak didukung, seperti dalam skenario impor data dua arah.

  • Format jdbcUrl sama dengan format resmi Vertica dan dapat mencakup parameter koneksi tambahan. Misalnya, jdbc:vertica://127.0.0.1:3306/database.

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, "column": ["id", "name", "age"].

Ya

Tidak ada

preSql

Pernyataan SQL standar yang dijalankan sebelum data ditulis ke tabel tujuan. Jika pernyataan SQL beroperasi pada tabel, gunakan @table untuk merepresentasikan nama tabel. Variabel ini akan diganti dengan nama tabel aktual saat pernyataan SQL dijalankan.

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