Topik ini menjelaskan parameter WITH untuk konektor Hologres di Ververica Runtime (VVR) 11 dan versi lebih baru.
Penghapusan parameter versi
Untuk mengoptimalkan arsitektur sistem dan meningkatkan efisiensi pemeliharaan, beberapa parameter lama pada Ververica Runtime (VVR) versi 8 dan sebelumnya telah disesuaikan atau dihapus. Daftar berikut merinci parameter yang dihapus beserta alternatif atau alasan penghapusannya.
Parameter WITH
Umum
Parameter | Deskripsi | Tipe data | Wajib | Nilai default | Keterangan |
connector | Tipe tabel. | String | Ya | Tidak ada | Atur parameter ini ke |
dbname | Nama database. | String | Ya | Tidak ada | Anda dapat menghubungkan ke kelompok komputasi tertentu dengan menambahkan akhiran ke parameter `dbname`. Misalnya, untuk menghubungkan tabel dimensi ke kelompok komputasi bernama `read_warehouse`, tentukan koneksi sebagai |
tablename | Nama tabel. | String | Ya | Tidak ada | Jika skema bukan Public, tentukan nama tabel dalam format |
username |
| String | Ya | Tidak ada |
Penting Untuk mencegah kebocoran informasi AccessKey Anda, gunakan variabel untuk menentukan nilai AccessKey. Untuk informasi selengkapnya, lihat Variabel proyek. |
password |
| String | Ya | Tidak ada | |
endpoint | Titik akhir layanan Hologres. | String | Ya | Tidak ada | Untuk informasi selengkapnya, lihat Titik akhir. |
connection.pool.size | Ukuran kolam koneksi JDBC yang dibuat untuk satu tabel Flink dalam sebuah task. | Integer | Tidak | 5 | Jika performa job buruk, tingkatkan ukuran kolam. Ukuran kolam koneksi sebanding dengan throughput data. Parameter ini hanya berlaku untuk tabel dimensi dan tabel sink. |
connection.pool.name | Nama kolam koneksi. Tabel dengan nama kolam koneksi yang sama dalam TaskManager yang sama dapat berbagi kolam koneksi. | String | Tidak |
| Nilai default adalah Anda dapat mengonfigurasi parameter ini sesuai kebutuhan. Misalnya, jika sebuah job memiliki dua tabel dimensi A dan B serta tiga tabel sink C, D, dan E, Anda dapat menggunakan pool1 untuk tabel A dan B, pool2 untuk tabel C dan D, dan pool3 terpisah untuk tabel E jika menangani traffic tinggi. Catatan
|
connection.fixed.enabled | Menentukan apakah akan menggunakan mode koneksi ringan. | Boolean | Tidak | Tidak ada | Hologres memiliki batas atas pada jumlah koneksi. Mulai dari Hologres 2.1, penulisan data real-time mendukung penggunaan koneksi ringan yang tidak dibatasi oleh jumlah koneksi maksimum. Catatan
|
connection.max-idle-ms | Timeout idle untuk koneksi JDBC. | Long | Tidak | 60000 | Jika waktu idle melebihi nilai ini, koneksi dilepas. Koneksi baru dibuat secara otomatis saat digunakan berikutnya. Satuan dalam milidetik. |
connection.ssl.mode | Menentukan apakah akan mengaktifkan enkripsi SSL untuk data dalam transit dan mode mana yang akan digunakan. | String | Tidak | disable |
Catatan
|
connection.ssl.root-cert.location | Jalur ke sertifikat saat mode enkripsi memerlukan sertifikat. | String | Tidak | Tidak ada | Jika Anda mengatur connection.ssl.mode ke verify-ca atau verify-full, Anda juga harus menentukan jalur ke sertifikat CA. Anda dapat menggunakan fitur Manajemen File di Konsol Realtime Compute untuk mengunggah sertifikat, yang kemudian disimpan di direktori /flink/usrlib. Misalnya, jika file sertifikat CA bernama certificate.crt, atur parameter ini ke Catatan Untuk informasi tentang cara mendapatkan sertifikat CA, lihat Unduh sertifikat CA. |
retry-count | Jumlah percobaan ulang untuk penulisan dan kueri saat koneksi gagal. | Integer | Tidak | 10 | Tidak ada. |
retry-sleep-step-ms | Waktu tunggu bertahap untuk setiap percobaan ulang. | Long | Tidak | 5000 | Satuan dalam milidetik. Misalnya, jika nilainya 5000 (5 detik), percobaan ulang pertama menunggu 5 detik, yang kedua 10 detik, dan seterusnya. |
meta-cache-ttl-ms | TTL untuk informasi TableSchema yang di-cache. | Long | Tidak | 600000 | Satuan dalam milidetik. |
serverless-computing.enabled | Menentukan apakah akan menggunakan sumber daya serverless. | Boolean | Tidak | false | Jika diatur ke true, sumber daya serverless Hologres digunakan untuk pembacaan dan penulisan alih-alih sumber daya instans Hologres Anda. Parameter ini hanya didukung untuk pembacaan batch dan impor batch. Tidak berlaku untuk konsumsi binary logging, kueri titik tabel dimensi, atau penulisan real-time. Untuk informasi selengkapnya, lihat Ikhtisar Komputasi Serverless. Catatan
Catatan Untuk melakukan impor atau ekspor data penuh skala besar dan ingin menghindari dampak pada kueri lain di instans Hologres Anda, aktifkan parameter ini. Untuk informasi selengkapnya, lihat Ikhtisar Komputasi Serverless. |
Khusus untuk tabel sumber
Parameter | Deskripsi | Tipe data | Wajib | Nilai default | Keterangan |
source.binlog | Menentukan apakah akan mengonsumsi data binary logging. | Boolean | Tidak | true |
|
source.binlog.read-mode | Mode baca. | ENUM | Tidak | AUTO |
Catatan Logika pemilihan otomatis untuk mode AUTO adalah sebagai berikut:
|
source.binlog.change-log-mode | Tipe changelog yang didukung oleh tabel sumber CDC. | ENUM | Tidak | UPSERT |
Catatan Jika pipeline downstream mencakup operator retraction, seperti menggunakan ROW_NUMBER OVER WINDOW untuk menghapus duplikat, Anda harus mengatur upsertSource ke true. Tabel sumber kemudian membaca data dari Hologres dengan cara upsert. |
source.binlog.startup-mode | Mode konsumsi untuk data binary logging. | ENUM | Tidak | INITIAL |
Catatan Jika Anda mengatur parameter startTime atau memilih waktu mulai di antarmuka startup, binlogStartupMode dipaksa ke mode timestamp. Mode konsumsi lainnya tidak berlaku. Parameter startTime memiliki prioritas lebih tinggi. |
source.binlog.batch-size | Jumlah baris yang dibaca dari log biner dalam setiap batch. | Integer | Tidak | 512 | Tidak ada. |
source.binlog.request-timeout-ms | Periode timeout untuk membaca data binary logging. | Long | Tidak | 300000 | Satuannya adalah milidetik. Catatan Timeout dapat disebabkan oleh tekanan balik jika operator downstream memproses data tabel sumber terlalu lambat. |
source.binlog.project-columns.enabled | Menentukan apakah hanya akan membaca bidang yang ditentukan dalam tabel pengguna saat membaca data binary logging. | Boolean | Tidak | Tidak ada | Bidang yang ditentukan adalah yang dideklarasikan dalam pernyataan Catatan Parameter ini hanya didukung di VVR 11.3 dan versi lebih baru serta Hologres V3.2 dan versi lebih baru. Biasanya Anda tidak perlu mengonfigurasi parameter ini. Konektor mengaktifkannya secara default jika persyaratan versi terpenuhi. |
source.binlog.compression.enabled | Menentukan apakah akan mengaktifkan kompresi data selama transit saat membaca data binary logging. | Boolean | Tidak | Tidak ada | Saat mengonsumsi log biner, server mengembalikan aliran byte yang dikompresi dengan algoritma LZ4. Ini dapat meningkatkan performa baca dan menghemat bandwidth. Catatan Parameter ini hanya didukung di VVR 11.3 dan versi lebih baru serta Hologres V3.2 dan versi lebih baru. Biasanya Anda tidak perlu mengonfigurasi parameter ini. Konektor mengaktifkannya secara default jika persyaratan versi terpenuhi. |
source.binlog.partition-binlog-mode | Mode konsumsi untuk binary logging tabel partisi. | Enum | Tidak | DISABLE |
|
source.binlog.partition-binlog-lateness-timeout-minutes | Timeout lateness maksimum saat mengonsumsi tabel partisi dalam mode DYNAMIC. | Boolean | Tidak | 60 |
Misalnya, jika tabel dipartisi berdasarkan hari dan partisinya adalah 20240920, dan lateness data maksimum adalah 1 jam, konsumsi untuk partisi ini ditutup pada 2024-09-21 01:00:00, bukan pada 2024-09-21 00:00:00.
Jika tabel dipartisi berdasarkan hari, nilai maksimum adalah 24 × 60 = 1440 (menit). Dalam mode DYNAMIC, biasanya hanya satu tabel yang dikonsumsi. Selama periode lateness, dua partisi dapat dikonsumsi secara bersamaan. |
source.binlog.partition-values-to-read | Dalam mode STATIC, menentukan partisi yang akan dikonsumsi. Pisahkan nilai partisi dengan koma (,). | String | Tidak | Tidak ada |
|
startTime | Waktu offset awal. | String | Tidak | Tidak ada | Formatnya adalah yyyy-MM-dd hh:mm:ss. Jika parameter ini tidak diatur dan job tidak pulih dari state, konsumsi data Hologres dimulai dari log biner paling awal. |
source.scan.fetch-size | Ukuran batch untuk pembacaan batch. | Integer | Tidak | 512 | Tidak ada. |
source.scan.timeout-seconds | Periode timeout untuk pembacaan batch. | Integer | Tidak | 60 | Satuan dalam detik. |
source.scan.filter-push-down.enabled | Menentukan apakah akan mendorong filter ke bawah selama pembacaan batch. | Boolean | Tidak | false |
Catatan
|
source.binlog.filter-push-down.enabled | Menentukan apakah akan mendorong filter ke bawah selama konsumsi log biner. | Boolean | Tidak | false |
Catatan
|
scan.prefer.physical-column.over.metadata-column | Menentukan apakah akan memprioritaskan pembacaan data dari kolom fisik saat kolom tersebut memiliki nama yang sama dengan kolom metadata. | Boolean | Tidak | false | Parameter ini hanya didukung di VVR 11.5 dan versi lebih baru. Versi sebelumnya selalu memprioritaskan pembacaan dari kolom metadata. |
Parameter khusus tabel sink
Parameter | Deskripsi | Tipe data | Wajib | Nilai default | Keterangan |
sink.write-mode | Mode tulis. | ENUM | Tidak | INSERT |
Catatan
|
sink.on-conflict-action | Kebijakan untuk menangani konflik primary key. | ENUM | Tidak | INSERT_OR_UPDATE |
|
sink.create-missing-partition | Menentukan apakah akan membuat partisi secara otomatis berdasarkan nilai partisi jika partisi tersebut tidak ada saat menulis ke tabel partisi. | Boolean | Tidak | false |
|
sink.delete-strategy | Kebijakan untuk menangani pesan retraction. | String | Tidak | CHANGELOG_STANDARD |
Catatan Mengaktifkan opsi NON_PK_FIELD_TO_NULL dapat menghasilkan catatan yang hanya berisi primary key, dengan semua kolom lain bernilai null. |
sink.ignore-null-when-update.enabled | Saat sink.on-conflict-action='INSERT_OR_UPDATE', menentukan apakah akan mengabaikan nilai null dalam data yang ditulis untuk pembaruan. | Boolean | Tidak | false |
Catatan Parameter ini hanya didukung saat |
sink.ignore-null-when-update-by-expr.enabled | Saat sink.on-conflict-action='INSERT_OR_UPDATE', menentukan apakah akan menggunakan ekspresi untuk mengabaikan nilai null dalam data yang ditulis untuk pembaruan. | Boolean | Tidak | false | Memberikan performa lebih baik daripada sink.ignore-null-when-update.enabled.
Catatan
|
sink.default-for-not-null-column.enabled | Jika nilai null ditulis ke kolom NOT NULL yang tidak memiliki nilai default di tabel Hologres, menentukan apakah akan mengizinkan konektor mengisi nilai default. | Boolean | Tidak | true |
Catatan Parameter ini hanya didukung saat |
sink.remove-u0000-in-text.enabled | Jika tipe string mengandung karakter tidak valid \u0000 selama penulisan, menentukan apakah akan mengizinkan konektor menghapusnya. | Boolean | Tidak | true |
|
sink.partial-insert.enabled | Menentukan apakah hanya akan memasukkan bidang yang didefinisikan dalam pernyataan INSERT. | Boolean | Tidak | false |
Catatan
|
sink.deduplication.enabled | Menentukan apakah akan menghapus duplikat selama penulisan batch. | Boolean | Tidak | true |
Catatan
|
sink.aggressive-flush.enabled | Menentukan apakah akan mengaktifkan mode commit agresif. | Boolean | Tidak | false | Jika diatur ke true, koneksi dipaksa untuk commit saat idle, bahkan jika batch belum mencapai ukuran yang diharapkan. Ini dapat secara efektif mengurangi latensi penulisan data saat traffic rendah. Catatan Parameter ini hanya didukung saat |
sink.insert.check-and-put.column | Mengaktifkan pembaruan bersyarat dan menentukan nama bidang yang akan diperiksa. | String | Tidak | Tidak ada | Nilai parameter harus diatur ke nama bidang yang ada di tabel Hologres. Penting
|
sink.insert.check-and-put.operator | Operator perbandingan untuk operasi pembaruan bersyarat. | String | Tidak | GREATER | Membandingkan bidang pemeriksaan catatan baru dengan nilai lama di tabel. Pembaruan dilakukan jika kondisi operator perbandingan terpenuhi. Nilai yang didukung adalah GREATER, GREATER_OR_EQUAL, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, IS_NULL, dan IS_NOT_NULL. |
sink.insert.check-and-put.null-as | Selama pembaruan bersyarat, jika data lama adalah null, nilai null diperlakukan sebagai nilai efektif yang dikonfigurasi oleh parameter ini. | String | Tidak | Tidak ada | Dalam PostgreSQL, hasil perbandingan apa pun dengan NULL adalah FALSE. Oleh karena itu, saat data asli di tabel adalah NULL, Anda harus mengatur parameter NULL-AS untuk operasi pembaruan. Ini setara dengan fungsi COALESCE dalam SQL. |
sink.insert.batch-size | Dalam mode INSERT, jumlah maksimum catatan yang dibuffer di sink Hologres sebelum ditulis. | Integer | Tidak | 512 | Parameter |
sink.insert.batch-byte-size | Dalam mode INSERT, ukuran maksimum dalam byte dari catatan yang dibuffer di sink Hologres sebelum ditulis. | Long | Tidak | 2 × 1024 × 1024 byte, yaitu 2 MB | |
sink.insert.flush-interval-ms | Dalam mode INSERT, waktu tunggu maksimum sebelum data yang dibuffer ditulis dari sink Hologres ke Hologres. | Long | Tidak | 10000 | |
sink.copy.format | Format transmisi yang digunakan dalam mode COPY. | String | Tidak |
| Mode
Catatan Parameter ini hanya didukung saat |
sink.insert.conflict-update-set | Ekspresi Hologres untuk pembaruan saat terjadi konflik primary key. | String | Tidak | Tidak ada | Ini setara dengan pernyataan `insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set>`. Anda dapat menentukan ekspresi atau fungsi Hologres. Misalnya, jika parameter ini diatur ke col1=old.col1+excluded.col1,col2=excluded.col2, artinya saat terjadi konflik primary key, nilai col1 diperbarui menjadi jumlah nilai lama dan baru, dan col2 diperbarui ke nilai baru.
Catatan Parameter ini hanya didukung saat |
sink.insert.conflict-where | Kondisi filter Hologres yang memicu pembaruan saat terjadi konflik primary key. | String | Tidak | Tidak ada | Ini setara dengan `insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set> where <conflict-where>`. Anda dapat menentukan ekspresi atau fungsi Hologres. Misalnya, jika parameter ini diatur ke excluded.col1>old.col1, artinya saat terjadi konflik primary key, pembaruan dipicu hanya jika nilai baru col1 lebih besar dari nilai lama. Catatan
|
Parameter khusus tabel dimensi
Parameter | Deskripsi | Tipe data | Wajib | Nilai default | Keterangan |
lookup.read.batch-size | Jumlah maksimum catatan yang dibuffer untuk pemrosesan batch selama kueri titik pada tabel dimensi Hologres. | Integer | Tidak | 256 | Tidak ada. |
lookup.read.timeout-ms | Periode timeout untuk kueri titik tabel dimensi. | Long | Tidak | Nilai default adalah 0, yang berarti tidak ada timeout. | Tidak ada. |
lookup.read.column-table.enabled | Menentukan apakah akan menggunakan tabel berorientasi kolom sebagai tabel dimensi. | Boolean | Tidak | false | Menggunakan tabel berorientasi kolom sebagai tabel dimensi menghasilkan performa buruk. Gunakan tabel berorientasi baris atau tabel hybrid baris-kolom sebagai gantinya. Jika parameter ini diaktifkan dan tabel berorientasi kolom digunakan, peringatan akan dicatat. |
lookup.insert-if-not-exists | Menentukan apakah akan memasukkan data yang tidak ada. | Boolean | Tidak | false | Jika kueri titik menemukan bahwa data saat ini tidak ada di tabel dimensi, data saat ini dimasukkan. |
cache | Kebijakan cache. | String | Tidak | Tidak ada | Hologres hanya mendukung kebijakan cache None dan LRU. |
cacheSize | Ukuran cache. | Integer | Tidak | 10000 | Setelah Anda memilih kebijakan cache LRU, Anda dapat mengatur ukuran cache. Satuan dalam baris. |
cacheTTLMs | Interval penyegaran cache. | Long | Tidak | Lihat Keterangan. | Satuan dalam milidetik. Nilai default cacheTTLMs tergantung pada konfigurasi cache:
|
cacheEmpty | Menentukan apakah akan menyimpan data yang hasil join-nya kosong. | Boolean | Tidak | true |
Penting Putuskan apakah akan mengaktifkan sakelar ini berdasarkan skenario bisnis Anda. Jika Anda ingin melakukan join dengan catatan yang baru dimasukkan di tabel dimensi selama runtime job, nonaktifkan opsi ini atau atur |
async | Menentukan apakah akan mengembalikan data secara asinkron. | Boolean | Tidak | false |
Catatan Data yang dikembalikan secara asinkron tidak terurut. |
lookup.filter-push-down.enabled | Menentukan apakah akan mendorong kondisi filter tabel dimensi ke server Hologres. | Boolean | Tidak | false | Saat ini, operasi pushdown hanya dieksekusi untuk operasi perbandingan antara kolom dan konstanta yang menggunakan operator kesetaraan dan perbandingan (seperti <, <=, >, >=). Catatan Parameter ini hanya dapat dikonfigurasi di VVR 11.4 dan versi lebih baru. |