全部产品
Search
文档中心

Realtime Compute for Apache Flink:Konfigurasi parameter (VVR 11 dan versi lebih baru)

更新时间:Jan 23, 2026

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 yang dihapus

Parameter asli

Deskripsi

Alternatif/Alasan penghapusan

jdbcRetrySleepInitMs

Waktu tunggu tetap untuk setiap percobaan ulang.

Anda dapat menggunakan retry-sleep-step-ms untuk mengatur waktu tunggu bertahap.

jdbcMetaAutoRefreshFactor

Sistem secara otomatis menyegarkan cache ketika sisa waktu cache kurang dari waktu pemicu.

Parameter ini tidak lagi diperlukan. Anda dapat mengonfigurasi parameter meta-cache-ttl-ms untuk mengatur TTL cache.

type-mapping.timestamp-converting.legacy

Menentukan apakah akan mengonversi tipe waktu antara Flink dan Hologres.

Parameter ini diperkenalkan untuk kompatibilitas mundur guna mendukung tipe TIMESTAMP_LTZ dan kini tidak lagi diperlukan.

property-version

Versi parameter konektor.

Parameter ini dihapus karena nilai default parameter umum telah dioptimalkan.

field_delimiter

Pemisah yang digunakan antar baris saat mengekspor data.

Parameter ini dihapus karena metode pembacaan data telah dioptimalkan.

jdbcBinlogSlotName

Nama slot tabel sumber binary logging dalam mode JDBC.

Parameter ini dihapus karena metode pembacaan data telah dioptimalkan.

binlogMaxRetryTimes

Jumlah percobaan ulang saat terjadi error saat membaca data binary logging.

Anda dapat mengonfigurasinya dengan mengatur parameter retry-count.

cdcMode

Menentukan apakah akan menggunakan mode CDC untuk membaca data binary logging.

Parameter ini dihapus karena mode CDC digunakan secara default. Untuk mode non-CDC, gunakan parameter source.binlog.change-log-mode.

upsertSource

Menentukan apakah tabel sumber menggunakan tipe changelog upsert.

Anda dapat menggunakan parameter source.binlog.change-log-mode untuk konfigurasi.

bulkload

Menentukan apakah akan menggunakan bulk load untuk penulisan.

Anda dapat mengatur parameter sink.write-mode.

useRpcMode

Menentukan apakah akan menggunakan konektor Hologres melalui RPC.

Untuk koneksi JDBC, kami merekomendasikan mengonfigurasi parameter sink.deduplication.enabled untuk mengaktifkan atau menonaktifkan deduplikasi.

partitionrouter

Menentukan apakah akan menulis ke tabel partisi.

Parameter ini dihapus karena penulisan ke tabel partisi didukung secara default.

ignoredelete

Menentukan apakah akan mengabaikan pesan retraction.

Konfigurasikan parameter sink.delete-strategy untuk menentukan kebijakan pemrosesan pesan yang dicabut.

sdkMode

Mode SDK.

Parameter ini telah dioptimalkan. Konfigurasikan parameter source.binlog.read-mode dan sink.write-mode berdasarkan tipe tabel.

jdbcReadBatchQueueSize

Ukuran antrian buffer untuk permintaan kueri titik tabel dimensi.

Jika performa kueri titik buruk, Anda dapat mengonfigurasi parameter connection.pool.size.

jdbcReadRetryCount

Jumlah percobaan ulang saat kueri titik tabel dimensi timeout.

Semua item konfigurasi untuk mekanisme retry umum dikonsolidasikan ke dalam parameter retry-count.

jdbcScanTransactionSessionTimeoutSeconds

Periode timeout untuk transaksi operasi scan.

Parameter ini digabung ke dalam parameter timeout scan umum source.scan.timeout-seconds.

Parameter yang diganti namanya

Parameter asli (VVR 8)

VVR 11

Deskripsi

jdbcRetryCount

retry-count

Jumlah percobaan ulang untuk penulisan dan kueri saat koneksi gagal.

jdbcRetrySleepStepMs

retry-sleep-step-ms

Waktu tunggu bertahap untuk setiap percobaan ulang.

jdbcConnectionMaxIdleMs

connection.max-idle-ms

Timeout idle untuk koneksi JDBC.

jdbcMetaCacheTTL

meta-cache-ttl-ms

Waktu hidup (TTL) untuk informasi TableSchema yang di-cache.

binlog

source.binlog

Menentukan apakah akan mengonsumsi data binary logging.

sdkMode

source.binlog.read-mode

Mode baca.

binlogRetryIntervalMs

source.binlog.request-timeout-ms

Interval percobaan ulang setelah terjadi error saat membaca data binary logging.

binlogBatchReadSize

source.binlog.batch-size

Jumlah baris untuk pembacaan batch data binary logging.

binlogStartupMode

source.binlog.startup-mode

Mode konsumsi untuk data binary logging.

jdbcScanFetchSize

source.scan.fetch-size

Ukuran batch untuk scan.

jdbcScanTimeoutSeconds

source.scan.timeout-seconds

Timeout untuk operasi scan.

enable_filter_push_down

source.scan.filter-push-down.enabled

Menentukan apakah akan mendorong filter ke bawah selama fase pembacaan data penuh.

partition-binlog.mode

source.binlog.partition-binlog-mode

Mode konsumsi untuk binary logging tabel partisi.

partition-binlog-lateness-timeout-minutes

source.binlog.partition-binlog-lateness-timeout-minutes

Timeout lateness maksimum saat mengonsumsi tabel partisi dalam mode DYNAMIC.

partition-values-to-read

source.binlog.partition-values-to-read

Dalam mode STATIC, menentukan partisi yang akan dikonsumsi. Pisahkan nilai partisi dengan koma (,).

sdkMode

sink.write-mode

Mode tulis.

mutatetype

sink.on-conflict-action

Kebijakan untuk menangani konflik primary key.

createparttable

sink.create-missing-partition

Menentukan apakah akan membuat partisi secara otomatis jika partisi tersebut tidak ada saat menulis ke tabel partisi.

jdbcWriteBatchSize

sink.insert.batch-size

Jumlah maksimum catatan yang dibuffer di sink Hologres sebelum ditulis.

jdbcWriteBatchByteSize

sink.insert.batch-byte-size

Ukuran maksimum dalam byte dari catatan yang dibuffer di sink Hologres sebelum ditulis.

jdbcWriteFlushInterval

sink.insert.flush-interval-ms

Waktu tunggu maksimum sebelum data yang dibuffer ditulis dari sink Hologres ke Hologres.

ignoreNullWhenUpdate

sink.ignore-null-when-update.enabled

Saat mutatetype adalah 'insertOrUpdate', menentukan apakah akan mengabaikan nilai null dalam data yang diperbarui.

jdbcEnableDefaultForNotNullColumn

sink.default-for-not-null-column.enabled

Menentukan apakah akan mengizinkan konektor mengisi nilai default saat nilai null ditulis ke kolom NOT NULL yang tidak memiliki nilai default.

remove-u0000-in-text.enabled

sink.remove-u0000-in-text.enabled

Menentukan apakah akan mengizinkan konektor menghapus karakter tidak valid \u0000 dari string selama penulisan.

partial-insert.enabled

sink.partial-insert.enabled

Menentukan apakah hanya akan memasukkan bidang yang didefinisikan dalam pernyataan INSERT.

deduplication.enabled

sink.deduplication.enabled

Menentukan apakah akan menghapus duplikat selama penulisan batch.

check-and-put.column

sink.insert.check-and-put.column

Mengaktifkan pembaruan bersyarat dan menentukan bidang yang akan diperiksa.

check-and-put.operator

sink.insert.check-and-put.operator

Operator perbandingan untuk operasi pembaruan bersyarat.

check-and-put.null-as

sink.insert.check-and-put.null-as

Selama pembaruan bersyarat, memperlakukan nilai null dalam data lama sebagai nilai yang ditentukan oleh parameter ini.

aggressive.enabled

sink.aggressive-flush.enabled

Menentukan apakah akan mengaktifkan mode commit agresif.

connectionSize

connection.pool.size

Ukuran kolam koneksi JDBC yang dibuat untuk satu task tabel dimensi Flink.

connectionPoolName

connection.pool.name

Nama kolam koneksi. Tabel dengan nama kolam koneksi yang sama dalam TaskManager yang sama dapat berbagi kolam koneksi.

jdbcReadBatchSize

lookup.read.batch-size

Jumlah maksimum catatan dalam satu batch untuk kueri titik tabel dimensi.

jdbcReadTimeoutMs

lookup.read.timeout-ms

Timeout untuk kueri titik tabel dimensi.

Parameter WITH

Umum

Parameter

Deskripsi

Tipe data

Wajib

Nilai default

Keterangan

connector

Tipe tabel.

String

Ya

Tidak ada

Atur parameter ini ke hologres.

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 'dbname' = 'db_test@read_warehouse' .

tablename

Nama tabel.

String

Ya

Tidak ada

Jika skema bukan Public, tentukan nama tabel dalam format schema.tableName.

username

  • Username akun kustom dalam format BASIC$<user_name>.

  • ID AccessKey Akun Alibaba Cloud atau Pengguna RAM.

String

Ya

Tidak ada

  • Pengguna harus memiliki izin untuk mengakses database Hologres yang ditentukan. Untuk informasi selengkapnya tentang izin database dan manajemen pengguna di Hologres, lihat Model izin dan Kelola pengguna.

  • Untuk informasi selengkapnya tentang cara mendapatkan ID AccessKey, lihat Dapatkan pasangan AccessKey.

Penting

Untuk mencegah kebocoran informasi AccessKey Anda, gunakan variabel untuk menentukan nilai AccessKey. Untuk informasi selengkapnya, lihat Variabel proyek.

password

  • Password akun kustom.

  • Rahasia AccessKey Akun Alibaba Cloud atau Pengguna RAM.

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

'default'

Nilai default adalah 'default'. Jika beberapa tabel diatur untuk menggunakan kolam koneksi yang sama, nilai terbesar dari parameter connection.pool.size di antara mereka yang berlaku.

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
  • Untuk berbagi kolam koneksi, tabel harus memiliki connection.pool.name, endpoint, database, dan informasi koneksi lainnya yang sama.

  • Jika sebuah job berisi banyak tabel, jumlah koneksi yang tidak mencukupi dapat memengaruhi performa. Dalam hal ini, atur nilai connection.pool.name yang berbeda untuk tabel yang berbeda.

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
  • Nilai default parameter ini tergantung pada versi instans Hologres. Untuk tabel dimensi dan sink, konektor secara otomatis memilih mode koneksi ringan jika versi Hologres lebih baru dari 3.0.28.

  • Koneksi ringan untuk tabel dimensi tidak mendukung kueri pada tipe JSONB dan RoaringBitmap.

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

  • disable (default): Menonaktifkan enkripsi dalam transit.

  • require: Mengaktifkan SSL untuk mengenkripsi hanya tautan data.

  • verify-ca: Mengaktifkan SSL untuk mengenkripsi tautan data dan menggunakan sertifikat CA untuk memverifikasi keaslian server Hologres.

  • verify-full: Mengaktifkan SSL untuk mengenkripsi tautan data, menggunakan sertifikat CA untuk memverifikasi keaslian server Hologres, dan memeriksa apakah CN atau DNS dalam sertifikat cocok dengan endpoint Hologres yang dikonfigurasi.

Catatan
  • Hologres V2.1 dan versi lebih baru mendukung mode verify-ca dan verify-full. Untuk informasi selengkapnya, lihat Enkripsi dalam transit.

  • Jika Anda mengatur parameter ini ke verify-ca atau verify-full, Anda juga harus mengonfigurasi parameter connection.ssl.root-cert.location.

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 '/flink/usrlib/certificate.crt'.

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
  • Pembacaan batch mengacu pada fase pembacaan data penuh saat source.binlog diatur ke false, atau saat source.binlog.startup-mode diatur ke INITIAL.

  • Impor batch mengacu pada saat sink.write-mode diatur ke COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT.

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

  • true (default): Mengonsumsi data binary logging.

  • false: Tidak mengonsumsi data binary logging. Hanya melakukan pembacaan batch. Job berhenti setelah pembacaan selesai.

source.binlog.read-mode

Mode baca.

ENUM

Tidak

AUTO

  • AUTO (default): Secara otomatis memilih mode optimal berdasarkan versi instans.

  • HOLOHUB: Menggunakan mode HoloHub untuk mengonsumsi log biner.

  • JDBC: Menggunakan mode JDBC untuk mengonsumsi log biner.

Catatan

Logika pemilihan otomatis untuk mode AUTO adalah sebagai berikut:

  • Untuk instans Hologres V2.1.27 dan versi lebih baru, dipilih mode JDBC, dan koneksi ringan diaktifkan secara default. Artinya, parameter connection.fixed.enabled diatur ke true secara default.

  • Untuk instans Hologres V2.1.0 hingga V2.1.26, dipilih mode JDBC.

  • Untuk instans Hologres V2.0 dan versi sebelumnya, dipilih mode HOLOHUB.

source.binlog.change-log-mode

Tipe changelog yang didukung oleh tabel sumber CDC.

ENUM

Tidak

UPSERT

  • ALL: Mendukung semua tipe changelog, termasuk INSERT, DELETE, UPDATE_BEFORE, dan UPDATE_AFTER.

  • UPSERT (default): Hanya mendukung tipe changelog upsert, termasuk INSERT, DELETE, dan UPDATE_AFTER.

  • ALL_AS_APPEND_ONLY: Memperlakukan semua tipe changelog sebagai INSERT.

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

  • INITIAL (default): Pertama mengonsumsi semua data yang ada, lalu membaca log biner untuk memulai konsumsi inkremental.

  • EARLIEST_OFFSET: Memulai konsumsi dari log biner paling awal.

  • TIMESTAMP: Memulai konsumsi log biner dari startTime yang ditentukan.

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 CREATE TEMPORARY TABLE. Bidang yang tidak dideklarasikan tidak dibaca. Saat tabel memiliki banyak bidang tetapi Anda hanya ingin mengonsumsi sebagian, ini dapat mencegah transfer dan konversi data yang tidak perlu, 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.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

  • DISABLE (default): Tabel sumber bukan tabel partisi. Jika tabel Hologres yang ditentukan adalah tabel partisi, akan muncul exception.

  • DYNAMIC: Partisi terbaru dari tabel partisi terus-menerus dikonsumsi. Fitur partisi dinamis harus diaktifkan untuk tabel partisi tersebut. Dalam mode DYNAMIC, partisi dikonsumsi secara kronologis, dari yang terlama ke terbaru. Saat data di partisi sebelum yang terbaru sedang dikonsumsi, konektor mulai mengonsumsi data di partisi terbaru saat unit waktu baru tiba.

  • STATIC: Mengonsumsi partisi tetap dari tabel partisi. Beberapa partisi dapat dikonsumsi secara bersamaan. Partisi tidak dapat ditambah atau dihapus selama konsumsi. Secara default, semua partisi dari tabel induk ini dikonsumsi.

source.binlog.partition-binlog-lateness-timeout-minutes

Timeout lateness maksimum saat mengonsumsi tabel partisi dalam mode DYNAMIC.

Boolean

Tidak

60

  • Satuan dalam menit. Dalam mode DYNAMIC, saat unit waktu baru tiba, konsumsi partisi terbaru yang sesuai dengan waktu saat ini dimulai. Namun, partisi sebelumnya tidak langsung ditutup. Partisi tersebut terus dipantau untuk memastikan data terlambat dari partisi sebelumnya dapat dibaca.

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.

  • Waktu timeout lateness tidak boleh melebihi unit waktu partisi.

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

  • Jika parameter ini tidak dikonfigurasi, mode STATIC mengonsumsi semua partisi dari tabel induk yang ditentukan. Jika ditentukan, hanya partisi yang ditunjuk yang dikonsumsi.

  • Parameter ini hanya memerlukan nilai partisi, bukan nama partisi lengkap. Pisahkan beberapa nilai partisi dengan koma (,). Ekspresi reguler tidak didukung.

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

  • false (default): Tidak mendorong filter ke bawah.

  • true: Mendorong kondisi filter yang didukung ke Hologres selama pembacaan batch.

Catatan
  • Jangan mengaktifkan parameter ini dan parameter source.binlog.filter-push-down.enabled secara bersamaan.

  • Parameter ini berlaku dalam dua kasus:

    • Saat source.binlog diatur ke false, yang menunjukkan pembacaan batch, pushdown filter berlaku.

    • Saat source.binlog diatur ke true dan source.binlog.startup-mode diatur ke INITIAL, yang menunjukkan pembacaan penuh dan inkremental, pushdown filter berlaku selama fase pembacaan data penuh.

source.binlog.filter-push-down.enabled

Menentukan apakah akan mendorong filter ke bawah selama konsumsi log biner.

Boolean

Tidak

false

  • false (default): Tidak mendorong filter ke bawah.

  • true: Mendorong kondisi filter yang didukung ke Hologres selama konsumsi log biner.

Catatan
  • Parameter ini hanya didukung di VVR 11.3 dan versi lebih baru serta Hologres V4.0 dan versi lebih baru. Jangan mengaktifkan parameter ini dan parameter source.scan.filter-push-down.enabled secara bersamaan.

  • Saat source.binlog diatur ke true, pushdown filter selalu berlaku. Misalnya, saat source.binlog.startup-mode diatur ke INITIAL, pushdown filter berlaku untuk fase penuh maupun inkremental.

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

  • INSERT: Nilai default. Menggunakan JDBC untuk menulis data dengan pernyataan INSERT.

  • COPY_STREAM: Menggunakan metode copy tetap streaming untuk penulisan. Copy tetap adalah metode penulisan streaming berkinerja-tinggi yang cocok untuk skenario throughput tinggi dan latensi rendah. Namun, mode ini tidak mendukung penghapusan data, penulisan ke tabel partisi induk, atau parameter ignoreNullWhenUpdate.

  • COPY_BULK_LOAD: Menggunakan protokol COPY untuk penulisan batch. COPY_BULK_LOAD saat ini hanya cocok untuk tabel tanpa primary key. Konflik primary key akan melempar exception. Dibandingkan dengan COPY_STREAM, mode ini menggunakan lebih sedikit sumber daya Hologres.

  • COPY_BULK_LOAD_ON_CONFLICT: Menggunakan protokol COPY untuk penulisan batch dan mendukung penulisan ke tabel dengan primary key serta menangani konflik primary key.

Catatan
  • Mode COPY_BULK_LOAD_ON_CONFLICT hanya didukung oleh Ververica Runtime (VVR) 11.3 atau versi lebih baru dan memerlukan versi instans Hologres 3.1 atau versi lebih baru. Prinsip kerjanya adalah Flink melakukan reshuffle data berdasarkan DistributionKey dari tabel sink Hologres. Hal ini memungkinkan data untuk shard yang sama ditulis oleh Task Flink yang sama, yang mengurangi penguncian tabel untuk impor batch menjadi granularitas tingkat shard dan memungkinkan penulisan konkuren ke shard yang berbeda. Oleh karena itu, kami merekomendasikan agar konkurensi job sesuai dengan jumlah shard di tabel sink Hologres.

  • Saat menulis dalam mode COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT, data terlihat setelah checkpoint berhasil. Mode ini cocok untuk skenario yang tidak memerlukan visibilitas data tinggi atau untuk impor batch data historis.

sink.on-conflict-action

Kebijakan untuk menangani konflik primary key.

ENUM

Tidak

INSERT_OR_UPDATE

  • INSERT_OR_IGNORE: Menyimpan kemunculan pertama data dan mengabaikan semua data berikutnya.

  • INSERT_OR_REPLACE: Mengganti baris yang ada dengan data baru.

  • INSERT_OR_UPDATE (default): Memperbarui beberapa kolom dari data yang ada.

    Misalnya, dalam tabel dengan empat bidang a, b, c, dan d, di mana a adalah primary key, jika tabel sink hanya menyediakan bidang a dan b, sistem hanya memperbarui bidang b saat terjadi konflik primary key. Bidang c dan d tetap tidak berubah.

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

  • Saat Anda menggunakan bidang tipe DATE sebagai kunci partisi dan telah mengaktifkan partisi dinamis, format nama tabel partisi yang dibuat secara otomatis secara default konsisten dengan partisi dinamis.

  • Pastikan nilai partisi tidak mengandung data kotor. Jika tidak, tabel partisi yang salah akan dibuat, yang menyebabkan failover. Gunakan parameter ini dengan hati-hati.

  • Saat sink.write-mode bukan INSERT, penulisan ke tabel partisi induk tidak didukung.

sink.delete-strategy

Kebijakan untuk menangani pesan retraction.

String

Tidak

CHANGELOG_STANDARD

  • IGNORE_DELETE: Mengabaikan pesan Update Before dan Delete. Ini cocok untuk skenario yang hanya memerlukan penyisipan atau pembaruan data, tetapi tidak penghapusan data.

  • NON_PK_FIELD_TO_NULL: Mengabaikan pesan Update Before dan memproses pesan Delete dengan memperbarui bidang non-primary key ke NULL. Ini cocok untuk skenario di mana Anda ingin melakukan penghapusan selama pembaruan parsial tanpa memengaruhi kolom lain.

  • DELETE_ROW_ON_PK: Mengabaikan pesan Update Before dan memproses pesan Delete dengan menghapus seluruh baris berdasarkan primary key. Ini cocok untuk skenario di mana Anda ingin menghapus seluruh baris selama pembaruan parsial, yang memengaruhi kolom lain.

  • CHANGELOG_STANDARD: Framework Flink beroperasi sesuai prinsip changelog Flink SQL. Tidak mengabaikan operasi penghapusan dan melakukan pembaruan dengan terlebih dahulu menghapus lalu menyisipkan data untuk memastikan akurasi data. Ini cocok untuk skenario yang tidak melibatkan pembaruan parsial.

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

  • false (default): Menulis nilai null ke tabel sink Hologres.

  • true: Mengabaikan nilai null dalam data yang ditulis untuk pembaruan.

Catatan

Parameter ini hanya didukung saat sink.write-mode diatur ke INSERT.

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.

  • false (default):

    • Jika sink.ignore-null-when-update.enabled diaktifkan, nilai null dalam data yang diperbarui diabaikan.

    • Jika sink.ignore-null-when-update.enabled dinonaktifkan, nilai null ditulis ke tabel sink Hologres.

  • true: Nilai null dalam data yang diperbarui diabaikan, terlepas dari apakah sink.ignore-null-when-update.enabled diaktifkan atau tidak.

Catatan
  • Parameter ini hanya didukung saat sink.write-mode diatur ke INSERT.

  • Diperlukan Hologres V4.0 atau versi lebih baru.

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

  • true (default): Mengizinkan konektor mengisi dan menulis nilai default berdasarkan aturan berikut.

    • Jika bidang bertipe String, string kosong ("") ditulis secara default.

    • Jika bidang bertipe Number, 0 ditulis secara default.

    • Jika bidang bertipe Date, timestamp, atau timestamptz, 1970-01-01 00:00:00 ditulis secara default.

  • false: Tidak mengisi nilai default. Exception dilempar saat menulis nilai null ke bidang NOT NULL.

Catatan

Parameter ini hanya didukung saat sink.write-mode diatur ke INSERT dan sink.on-conflict-action diatur ke opsi selain INSERT_OR_UPDATE.

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

  • false: Konektor tidak mengoperasikan data, tetapi penulisan dapat melempar exception berikut saat menghadapi data kotor: ERROR: invalid byte sequence for encoding "UTF8": 0x00

    Dalam hal ini, proses data kotor di tabel sumber terlebih dahulu, atau definisikan logika pemrosesan data kotor dalam SQL.

  • true (default): Konektor membantu menghapus \u0000 dari tipe string untuk mencegah exception penulisan.

sink.partial-insert.enabled

Menentukan apakah hanya akan memasukkan bidang yang didefinisikan dalam pernyataan INSERT.

Boolean

Tidak

false

  • false (default): Terlepas dari bidang mana yang dideklarasikan dalam pernyataan INSERT, semua bidang yang didefinisikan dalam DDL tabel sink diperbarui. Bidang yang tidak dideklarasikan dalam pernyataan INSERT diperbarui ke null.

  • true: Mendorong bidang yang didefinisikan dalam pernyataan INSERT ke konektor, sehingga hanya bidang yang dideklarasikan yang dapat diperbarui atau dimasukkan.

Catatan
  • Parameter ini hanya berlaku saat parameter sink.on-conflict-action diatur ke INSERT_OR_UPDATE.

sink.deduplication.enabled

Menentukan apakah akan menghapus duplikat selama penulisan batch.

Boolean

Tidak

true

  • true (default): Jika batch data berisi catatan dengan primary key yang sama, duplikat dihapus secara default, dan hanya catatan yang tiba terakhir yang disimpan. Misalnya, pertimbangkan data dengan dua bidang, di mana bidang pertama adalah primary key:

    • Jika catatan INSERT (1,'a') dan INSERT (1,'b') tiba secara berurutan, hanya yang terakhir, (1,'b'), yang disimpan dan ditulis ke tabel sink Hologres setelah deduplikasi.

    • Jika catatan (1,'a') sudah ada di tabel sink Hologres, dan catatan DELETE (1,'a') dan INSERT (1,'b') tiba secara berurutan, hanya yang terakhir, (1,'b'), yang disimpan dan ditulis ke Hologres. Ini tampak sebagai pembaruan langsung, bukan penghapusan diikuti penyisipan.

  • false: Tidak menghapus duplikat selama batching. Jika catatan yang baru tiba memiliki primary key yang sama dengan catatan yang sedang dalam batch, batch yang ada ditulis terlebih dahulu. Setelah penulisan selesai, catatan baru ditulis.

Catatan
  • Parameter ini hanya didukung saat sink.write-mode diatur ke INSERT.

  • Jika deduplikasi batch tidak diizinkan, dalam kasus ekstrem seperti saat semua data memiliki primary key yang sama, penulisan turun ke penulisan baris tunggal tanpa batching, yang memengaruhi performa.

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.write-mode diatur ke INSERT atau COPY_STREAM.

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
  • Parameter ini hanya didukung saat sink.write-mode diatur ke INSERT.

  • Tabel sink harus memiliki primary key, dan parameter sink.on-conflict-action harus diatur ke INSERT_OR_UPDATE atau INSERT_OR_REPLACE.

  • Karena diperlukan pencarian balik, buat tabel sink sebagai tabel berorientasi baris atau tabel hybrid baris-kolom.

  • Jika terdapat banyak catatan duplikat, operasi check-and-put turun ke penulisan baris tunggal, yang mengurangi performa tulis.

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-size, sink.insert.batch-byte-size, dan sink.insert.flush-interval-ms saling terkait secara logis OR. Jika Anda mengatur ketiga parameter ini, data ditulis saat salah satu kondisi terpenuhi.

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

  • Default untuk mode COPY_STREAM adalah binary.

  • Default untuk COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT adalah text.

Mode COPY_STREAM mendukung:

  • binary

  • text

  • binaryrow (versi mesin Hologres >= 4.1.0)

COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT hanya mendukung text.

Catatan

Parameter ini hanya didukung saat sink.write-mode diatur ke COPY_STREAM, COPY_BULK_LOAD, atau COPY_BULK_LOAD_ON_CONFLICT.

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.

  • Jika parameter ini tidak ditentukan, semua bidang masuk diperbarui ke nilai barunya secara default.

  • Jika ekspresi pembaruan bersifat stateful, misalnya col=old.col+excluded.col di mana hasilnya bergantung pada nilai lama, pastikan bahwa suatu bidang dapat digunakan sebagai nomor versi baris. Lalu, atur sink.insert.conflict-where ke excluded.seq>old.seq untuk memastikan kebenaran data setelah failover dan pemulihan.

Catatan

Parameter ini hanya didukung saat sink.write-mode diatur ke INSERT.

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 ini hanya didukung saat sink.write-mode diatur ke INSERT.

  • Parameter ini bertentangan dengan parameter sink.insert.check-and-put*. Error terjadi jika dikonfigurasi secara bersamaan.

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:

  • Jika cache diatur ke LRU, cacheTTLMs adalah periode timeout cache. Secara default, cache tidak kedaluwarsa.

  • Jika cache diatur ke None, Anda tidak perlu mengonfigurasi cacheTTLMs. Artinya cache tidak memiliki waktu kedaluwarsa.

cacheEmpty

Menentukan apakah akan menyimpan data yang hasil join-nya kosong.

Boolean

Tidak

true

  • true (default): Menyimpan data yang hasil join-nya kosong.

  • false: Tidak menyimpan data yang hasil join-nya kosong.

    Namun, jika kondisi sebelum AND dalam pernyataan join terpenuhi tetapi kondisi setelah AND tidak, data dengan hasil join kosong tetap disimpan. Kode berikut memberikan contoh.

    LEFT JOIN latest_emergency FOR SYSTEM_TIME AS OF PROCTIME() AS t2
     ON t1.alarm_id = t2.alarm_id -- Jika terdeteksi alert dinamis, cocokkan ID alert dinamis. Jika tidak, abaikan bidang dynamic_alarm_id.
     AND CASE
     WHEN alarm_type = 2 THEN t1.dynamic_id = t2.dynamic_alarm_id
     ELSE true
     END
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 cacheTTLMs ke interval pendek. Ini mencegah hasil null disimpan, yang dapat menyebabkan join tabel dimensi berikutnya gagal.

async

Menentukan apakah akan mengembalikan data secara asinkron.

Boolean

Tidak

false

  • true: Mengembalikan data secara asinkron.

  • false (default): Tidak mengembalikan data secara asinkron.

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.