全部产品
Search
文档中心

DataWorks:Sumber data Vertica

更新时间:Jul 02, 2025

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

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

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.

  • Anda dapat memilih kolom tertentu untuk dibaca.

  • Urutan kolom dapat diubah. Ini menunjukkan bahwa Anda dapat menentukan kolom dalam urutan yang berbeda dari urutan yang ditentukan oleh skema tabel sumber.

  • Konstanta didukung.

  • Parameter column harus secara eksplisit menentukan semua kolom dari mana Anda ingin membaca data. Parameter ini tidak boleh dibiarkan kosong.

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.

  • Kami merekomendasikan untuk menyetel parameter splitPk ke nama kolom kunci utama tabel. Data dapat didistribusikan secara merata ke shard yang berbeda berdasarkan kolom kunci utama, bukan didistribusikan secara intensif hanya ke shard tertentu.

  • Parameter splitPk mendukung sharding hanya untuk data tipe data integer. Jika Anda menyetel parameter ini ke bidang tipe data yang tidak didukung, seperti string, floating point, atau tipe data tanggal, Vertica Reader mengembalikan kesalahan.

  • Jika parameter splitPk dibiarkan kosong, Vertica Reader menggunakan satu thread untuk membaca data dari tabel sumber.

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 gmt_create > $bizdate untuk membaca data yang dihasilkan pada hari itu.

  • Anda dapat menggunakan klausa WHERE untuk membaca data inkremental.

  • Jika parameter where tidak disediakan atau dibiarkan kosong, Vertica Reader membaca semua data.

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.

  • Anda hanya dapat mengonfigurasi satu URL JDBC untuk sebuah database. Vertica Writer tidak dapat menulis data ke database yang memiliki beberapa database utama.

  • Format nilai parameter jdbcUrl harus mengikuti spesifikasi resmi Vertica. Anda juga dapat menentukan properti koneksi JDBC tambahan dalam URL. Contoh: jdbc:vertica://127.0.0.1:3306/database.

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

Ya

Tidak ada nilai default

preSql

Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dimulai. Gunakan @table untuk menunjukkan nama tabel tujuan dalam pernyataan SQL. Saat Anda menjalankan pernyataan SQL ini, @table diganti dengan nama tabel tujuan.

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