All Products
Search
Document Center

Realtime Compute for Apache Flink:Konfigurasi parameter (VVR 11+)

Last Updated:Aug 14, 2026

Topik ini mencantumkan parameter WITH untuk Ververica Runtime (VVR) versi 11 dan yang lebih baru.

Penghapusan parameter

Untuk meningkatkan arsitektur dan pemeliharaan sistem, beberapa parameter lama dari VVR 8 dan versi sebelumnya kini tidak lagi digunakan. Tabel berikut mencantumkan parameter tersebut beserta penggantinya.

Parameter yang Dihapus

Parameter

Description

Notes

jdbcRetrySleepInitMs

Waktu tunggu tetap untuk setiap retry.

Gunakan waktu tunggu bertahap: retry-sleep-step-ms.

jdbcMetaAutoRefreshFactor

Secara otomatis menyegarkan cache ketika sisa masa hidupnya turun di bawah ambang batas tertentu.

Anda hanya perlu mengonfigurasi parameter waktu cache meta-cache-ttl-ms. Anda tidak perlu mengonfigurasi parameter ini.

type-mapping.timestamp-converting.legacy

Menentukan apakah akan mengonversi tipe waktu antara Flink dan Hologres.

Parameter ini diperkenalkan untuk kompatibilitas mundur dengan tipe TIMESTAMP_LTZ dan tidak lagi diperlukan.

property-version

Versi parameter connector.

Dihapus karena nilai default untuk parameter umum telah dioptimalkan.

field_delimiter

Delimiter yang digunakan antar baris saat mengekspor data.

Dihapus karena metode pembacaan data telah dioptimalkan.

jdbcBinlogSlotName

Nama slot tabel sumber Binlog dalam mode JDBC.

Dihapus karena metode pembacaan data telah dioptimalkan.

binlogMaxRetryTimes

Jumlah retry pembacaan data Binlog setelah terjadi error.

Anda dapat menggunakan parameter retry-count untuk mengonfigurasinya.

cdcMode

Menentukan apakah akan menggunakan mode CDC untuk membaca data Binlog.

Secara default, data dibaca dalam mode CDC, dan parameter ini dihapus. Untuk mode non-CDC, Anda dapat menggunakan parameter source.binlog.change-log-mode untuk konfigurasi.

upsertSource

Menentukan apakah tabel sumber menggunakan Changelog upsert.

Konfigurasikan parameter source.binlog.change-log-mode.

bulkload

Menentukan apakah akan menggunakan bulkload untuk penulisan.

Gunakan parameter sink.write-mode.

useRpcMode

Menentukan apakah akan menggunakan connector Hologres melalui RPC.

Kami merekomendasikan agar Anda menggunakan koneksi JDBC dan mengonfigurasi parameter sink.deduplication.enabled untuk mengaktifkan atau menonaktifkan deduplikasi.

partitionrouter

Menentukan apakah akan menulis ke tabel partisi.

Dihapus karena penulisan ke tabel partisi kini didukung secara default.

ignoredelete

Menentukan apakah akan mengabaikan pesan retraction.

Konfigurasikan parameter sink.delete-strategy. Parameter ini menentukan strategi pemrosesan untuk pesan retraction.

sdkMode

Menentukan mode SDK untuk membaca atau menulis data.

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

jdbcReadBatchQueueSize

Ukuran antrian buffer untuk permintaan lookup tabel dimensi.

Jika performa kueri titik buruk, kami merekomendasikan agar Anda mengonfigurasi parameter connection.pool.size.

jdbcReadRetryCount

Jumlah retry saat timeout terjadi pada lookup tabel dimensi.

Parameter retry-count untuk mekanisme retry umum telah dikonsolidasi.

jdbcScanTransactionSessionTimeoutSeconds

Timeout transaksi untuk operasi scan.

Pengaturan timeout scan umum telah dikonsolidasi ke dalam parameter source.scan.timeout-seconds.

Parameter yang Diganti Namanya

Old parameter

New parameter

Description

jdbcRetryCount

retry-count

Jumlah retry untuk operasi write dan query setelah koneksi gagal.

jdbcRetrySleepStepMs

retry-sleep-step-ms

Waktu tunggu bertahap untuk setiap retry.

jdbcConnectionMaxIdleMs

connection.max-idle-ms

Waktu idle maksimum untuk koneksi JDBC.

jdbcMetaCacheTTL

meta-cache-ttl-ms

Waktu hidup (TTL) untuk informasi skema tabel yang di-cache secara lokal.

binlog

source.binlog

Menentukan apakah akan mengonsumsi data Binlog.

sdkMode

source.binlog.read-mode

Menentukan mode baca.

binlogRetryIntervalMs

source.binlog.request-timeout-ms

Interval tunggu antar retry saat pembacaan Binlog gagal.

binlogBatchReadSize

source.binlog.batch-size

Jumlah baris yang dibaca dalam satu batch dari Binlog.

binlogStartupMode

source.binlog.startup-mode

Mode konsumsi data Binlog.

jdbcScanFetchSize

source.scan.fetch-size

Ukuran batch untuk mengambil data selama scan.

jdbcScanTimeoutSeconds

source.scan.timeout-seconds

Timeout untuk operasi scan.

enable_filter_push_down

source.scan.filter-push-down.enabled

Menentukan apakah akan mengaktifkan filter pushdown selama fase baca penuh.

partition-binlog.mode

source.binlog.partition-binlog-mode

Mode konsumsi Binlog dari tabel partisi.

partition-binlog-lateness-timeout-minutes

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

Timeout keterlambatan maksimum saat mengonsumsi dari tabel partisi dalam mode DYNAMIC.

partition-values-to-read

source.binlog.partition-values-to-read

Partisi yang akan dibaca saat mengonsumsi dari tabel partisi dalam mode STATIC. Pisahkan beberapa nilai partisi dengan koma (,).

sdkMode

sink.write-mode

Menentukan mode tulis.

mutatetype

sink.on-conflict-action

Strategi penanganan untuk konflik kunci primer.

createparttable

sink.create-missing-partition

Saat menulis ke tabel partisi, menentukan apakah akan membuat partisi yang hilang secara otomatis berdasarkan nilai partisi.

jdbcWriteBatchSize

sink.insert.batch-size

Jumlah maksimum catatan untuk batching di sink Hologres.

jdbcWriteBatchByteSize

sink.insert.batch-byte-size

Ukuran byte maksimum untuk batching di sink Hologres.

jdbcWriteFlushInterval

sink.insert.flush-interval-ms

Waktu tunggu maksimum sebelum batch data di-flush ke Hologres.

ignoreNullWhenUpdate

sink.ignore-null-when-update.enabled

Saat sink.on-conflict-action diatur ke aksi update, menentukan apakah akan mengabaikan nilai null dalam data yang ditulis.

jdbcEnableDefaultForNotNullColumn

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

Menentukan apakah connector menyediakan nilai default saat null ditulis ke kolom NOT NULL yang tidak memiliki nilai default yang ditentukan.

remove-u0000-in-text.enabled

sink.remove-u0000-in-text.enabled

Menentukan apakah connector secara otomatis menghapus karakter ilegal \u0000 dari data string sebelum menulis.

partial-insert.enabled

sink.partial-insert.enabled

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

deduplication.enabled

sink.deduplication.enabled

Menentukan apakah akan melakukan deduplikasi selama proses write batching.

check-and-put.column

sink.insert.check-and-put.column

Mengaktifkan pembaruan kondisional dan menentukan kolom yang akan diperiksa.

check-and-put.operator

sink.insert.check-and-put.operator

Operator perbandingan untuk operasi update kondisional.

check-and-put.null-as

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

Untuk update kondisional, jika data yang ada bernilai null, nilai null tersebut diperlakukan sebagai nilai yang ditentukan oleh parameter ini.

aggressive.enabled

sink.aggressive-flush.enabled

Menentukan apakah akan mengaktifkan mode flush agresif.

connectionSize

connection.pool.size

Ukuran kolam koneksi JDBC untuk satu task tabel dimensi Flink.

connectionPoolName

connection.pool.name

Nama kolam koneksi. Di dalam TaskManager yang sama, tabel yang menentukan nama pool yang sama dapat berbagi kolam koneksi.

jdbcReadBatchSize

lookup.read.batch-size

Jumlah maksimum catatan untuk batching dalam lookup tabel dimensi.

jdbcReadTimeoutMs

lookup.read.timeout-ms

Timeout untuk lookup tabel dimensi.

Parameter WITH

Umum

Parameter

Description

Type

Required

Default

Remarks

connector

Tipe tabel.

String

Yes

—

Nilainya harus hologres.

dbname

Nama database.

String

Yes

—

Anda dapat terhubung ke gudang virtual tertentu dengan menambahkan sufiks ke nama database. Misalnya, untuk menghubungkan tabel dimensi ke gudang virtual read_warehouse, tentukan 'dbname' = 'db_test@read_warehouse'.

tablename

Nama tabel.

String

Yes

—

Jika skema bukan public, gunakan format schema.tableName.

username

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

  • ID AccessKey dari Akun Alibaba Cloud atau Pengguna RAM.

String

Yes

—

Penting

Untuk mencegah informasi AccessKey Anda terpapar, kami merekomendasikan agar Anda menggunakan variabel namespace untuk menyimpan nilai AccessKey Anda. Untuk informasi selengkapnya, lihat Namespace variables.

password

  • Password untuk akun kustom.

  • Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM.

String

Yes

—

endpoint

Titik akhir layanan Hologres.

String

Yes

—

Untuk informasi selengkapnya, lihat Endpoints.

connection.pool.size

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

Integer

No

5

Jika performa job tidak mencukupi, pertimbangkan untuk menambah ukuran kolam koneksi. Ukuran pool sebanding dengan throughput data. Parameter ini hanya memengaruhi tabel dimensi dan tabel sink.

connection.pool.name

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

String

No

'default'

Nilai default adalah 'default'. Jika beberapa tabel dikonfigurasi untuk menggunakan kolam koneksi yang sama, nilai terbesar yang ditentukan untuk parameter connection.pool.size di antara mereka akan digunakan.

Misalnya, jika sebuah job berisi lima tabel Hologres (tabel dimensi A dan B, serta tabel sink C, D, dan E), Anda dapat mengonfigurasi tabel A dan B untuk menggunakan pool1, tabel C dan D untuk menggunakan pool2, dan tabel E yang menangani trafik tinggi untuk menggunakan pool3.

Catatan
  • Tabel hanya dapat berbagi kolam koneksi jika mereka menggunakan informasi koneksi yang sama, seperti endpoint dan database.

  • Jika sebuah job melibatkan banyak tabel, jumlah koneksi yang tersedia mungkin tidak mencukupi, yang dapat menurunkan performa. Dalam kasus seperti itu, kami merekomendasikan memberikan nama pool yang berbeda untuk tabel yang berbeda.

connection.fixed.enabled

Menentukan apakah akan menggunakan mode koneksi ringan.

Boolean

No

—

Hologres memiliki batas koneksi. Mulai dari Hologres V2.1, penulisan real-time mendukung koneksi ringan yang tidak tunduk pada batas ini.

Catatan
  • Nilai default parameter ini bergantung pada versi instans Hologres Anda. Untuk tabel dimensi dan tabel sink, connector secara otomatis memilih mode koneksi ringan untuk versi Hologres yang lebih baru dari 3.0.28.

  • Untuk tabel dimensi, mode koneksi ringan tidak mendukung kueri pada tipe data JSONB dan RoaringBitmap.

connection.max-idle-ms

Timeout idle untuk koneksi JDBC, dalam milidetik.

Long

No

60000

Jika koneksi tetap idle lebih lama dari waktu ini, koneksi tersebut akan ditutup. Koneksi baru akan dibuat secara otomatis saat diperlukan.

connection.ssl.mode

Menentukan apakah akan mengaktifkan enkripsi Secure Sockets Layer (SSL) dalam transit dan mode mana yang akan digunakan.

String

No

disable

  • disable (default): Menonaktifkan enkripsi dalam transit.

  • require: Mengaktifkan SSL dan hanya mengenkripsi tautan data.

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

  • verify-full: Mengaktifkan SSL, mengenkripsi tautan data, menggunakan sertifikat CA untuk memverifikasi keaslian server Hologres, dan memverifikasi bahwa Common Name (CN) atau nama DNS dalam sertifikat cocok dengan endpoint Hologres yang dikonfigurasi.

Catatan
  • Hologres V2.1 dan yang lebih baru mendukung mode verify-ca dan verify-full. Untuk informasi selengkapnya, lihat Encryption in transit.

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

connection.ssl.root-cert.location

Jalur ke sertifikat CA, diperlukan untuk mode enkripsi berbasis sertifikat.

String

No

—

Jika connection.ssl.mode diatur ke verify-ca atau verify-full, Anda harus menentukan jalur ke sertifikat CA. Anda dapat mengunggah file sertifikat menggunakan fitur Manage artifacts di Konsol Realtime Compute. Setelah diunggah, file tersebut 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 Download the CA certificate.

retry-count

Jumlah kali untuk mencoba ulang operasi write atau query saat koneksi gagal.

Integer

No

10

—

retry-sleep-step-ms

Waktu tunggu bertahap untuk setiap retry, dalam milidetik.

Long

No

5000

Misalnya, dengan nilai default 5.000 (5 detik), retry pertama menunggu selama 5 detik, retry kedua selama 10 detik, dan seterusnya.

meta-cache-ttl-ms

Waktu hidup (TTL) untuk informasi TableSchema yang di-cache secara lokal, dalam milidetik.

Long

No

600000

Satuan: milidetik.

serverless-computing.enabled

Menentukan apakah akan menggunakan sumber daya serverless.

Boolean

No

false

Jika parameter ini diatur ke true, connector menggunakan sumber daya serverless Hologres untuk operasi baca dan tulis alih-alih sumber daya instans Hologres Anda. Parameter ini hanya didukung untuk baca batch dan impor batch. Parameter ini tidak berlaku untuk konsumsi log biner, kueri titik tabel dimensi, atau penulisan real-time. Untuk informasi selengkapnya, lihat Overview.

Catatan
  • Baca batch berlaku saat source.binlog diatur ke false, atau selama fase baca data penuh saat source.binlog.startup-mode diatur ke INITIAL.

  • Operasi impor batch berlaku saat sink.write-mode diatur ke COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT.

Catatan

Kami merekomendasikan mengaktifkan parameter ini untuk impor atau ekspor data skala besar untuk menghindari dampak terhadap kueri lain pada instans Hologres Anda. Untuk informasi selengkapnya, lihat Overview.

Parameter tabel sumber

Parameter

Description

Type

Required

Default

Remarks

source.binlog

Menentukan apakah akan mengonsumsi data binlog.

Boolean

No

true

  • true (default): Mengonsumsi data binlog.

  • false: Tidak mengonsumsi data binlog. Job melakukan baca batch lalu berhenti.

source.binlog.read-mode

Menentukan mode baca.

ENUM

No

AUTO

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

  • HOLOHUB: Menggunakan mode HoloHub untuk mengonsumsi data binlog.

  • JDBC: Menggunakan mode JDBC untuk mengonsumsi data binlog.

Catatan

Logika pemilihan untuk mode AUTO adalah sebagai berikut:

  • Untuk instans Hologres V2.1.27 dan yang lebih baru, connector memilih mode JDBC dan koneksi ringan diaktifkan secara default (parameter connection.fixed.enabled default ke true).

  • Untuk instans Hologres dari V2.1.0 hingga V2.1.26, connector memilih mode JDBC.

  • Untuk instans Hologres V2.0 dan yang lebih lama, connector memilih mode HOLOHUB.

source.binlog.change-log-mode

Menentukan tipe ChangeLog yang didukung oleh tabel sumber CDC.

ENUM

No

UPSERT

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

  • UPSERT (default): Hanya mendukung 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 (misalnya, menggunakan ROW_NUMBER OVER WINDOW untuk deduplikasi), Anda harus mengatur upsertSource ke true. Dalam kasus ini, tabel sumber membaca data dari Hologres dalam mode upsert.

source.binlog.startup-mode

Menentukan mode konsumsi data binlog.

ENUM

No

INITIAL

  • INITIAL (default): Melakukan baca penuh data, lalu mulai konsumsi inkremental dari binlog.

  • EARLIEST_OFFSET: Mulai konsumsi dari offset binlog paling awal yang tersedia.

  • TIMESTAMP: Mulai konsumsi dari binlog pada startTime yang ditentukan.

  • LATEST_OFFSET: Mulai konsumsi dari offset binlog terbaru.

Catatan
  • Jika startTime diatur atau waktu mulai dipilih di antarmuka startup, parameter ini secara otomatis diatur ke mode TIMESTAMP, dan mode konsumsi lainnya diabaikan. Parameter startTime memiliki prioritas lebih tinggi.

  • Mode LATEST_OFFSET hanya didukung di VVR 11.6 dan yang lebih baru.

source.binlog.batch-size

Menentukan jumlah baris yang dibaca per batch dari binlog.

Integer

No

512

Tidak berlaku.

source.binlog.request-timeout-ms

Menentukan timeout untuk membaca data binlog.

Long

No

300000

Satuan: milidetik.

Catatan

Timeout mungkin mengindikasikan tekanan balik yang disebabkan oleh operator downstream yang memproses data tabel sumber terlalu lambat.

source.binlog.project-columns.enabled

Menentukan apakah hanya akan membaca field yang ditentukan dalam tabel pengguna saat membaca data binlog.

Boolean

No

None

Field yang ditentukan adalah field yang dideklarasikan dalam pernyataan CREATE TEMPORARY TABLE; field yang tidak dideklarasikan tidak dibaca. Saat tabel memiliki banyak field tetapi Anda hanya perlu mengonsumsi subsetnya, opsi ini dapat menghindari transfer dan konversi data yang tidak perlu, sehingga meningkatkan performa baca dan menghemat bandwidth.

Catatan

Parameter ini hanya didukung di VVR 11.3 dan yang lebih baru serta instans Hologres V3.2 dan yang lebih baru. Biasanya Anda tidak perlu mengonfigurasi parameter ini. Connector mengaktifkannya secara default jika persyaratan versi terpenuhi.

source.binlog.compression.enabled

Menentukan apakah akan mengaktifkan kompresi data selama transit saat membaca data binlog.

Boolean

No

None

Saat mengonsumsi binlog, server mengembalikan aliran byte yang dikompresi dengan algoritma LZ4. Ini meningkatkan performa baca dan mengurangi penggunaan bandwidth.

Catatan

Parameter ini hanya didukung di VVR 11.3 dan yang lebih baru serta instans Hologres V3.2 dan yang lebih baru. Biasanya Anda tidak perlu mengonfigurasi parameter ini. Connector mengaktifkannya secara default jika persyaratan versi terpenuhi.

source.binlog.partition-binlog-mode

Menentukan mode konsumsi binlog untuk tabel partisi.

Enum

No

DISABLE

  • DISABLE (default): Gunakan untuk tabel sumber non-partisi. Job akan melempar exception jika tabel Hologres yang ditentukan adalah tabel partisi.

  • DYNAMIC: Terus-menerus mengonsumsi partisi terbaru dari tabel partisi. Tabel harus memiliki dynamic partitioning yang diaktifkan. Mode DYNAMIC mengonsumsi partisi secara kronologis. Saat konsumsi mencapai partisi kedua terbaru, konsumsi partisi terbaru dimulai saat unit waktu baru dimulai.

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

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

Dalam mode DYNAMIC, menentukan timeout keterlambatan maksimum saat mengonsumsi tabel partisi.

Integer

No

60

  • Unit: menit. Dalam mode DYNAMIC, saat unit waktu baru dimulai, connector mulai mengonsumsi partisi terbaru untuk waktu saat ini. Namun, connector tidak langsung menutup partisi sebelumnya, tetapi terus memantaunya untuk menangkap data yang datang terlambat.

Misalnya, jika dynamic partitioning berdasarkan HARI, untuk partisi 20240920, dan keterlambatan data maksimum adalah 1 jam, konsumsi untuk partisi ini berhenti pada 2024-09-21 01:00:00, bukan pada 2024-09-21 00:00:00.

  • Nilai lateness-timeout tidak boleh melebihi unit waktu partisi.

Jika partisi berdasarkan hari, nilai maksimum adalah 24 * 60 = 1440 menit. Dalam mode DYNAMIC, connector biasanya hanya mengonsumsi satu partisi dalam satu waktu, tetapi mungkin mengonsumsi dua partisi secara simultan selama periode keterlambatan.

source.binlog.partition-values-to-read

Dalam mode STATIC, menentukan partisi yang akan dikonsumsi. Gunakan koma (,) untuk memisahkan nilai partisi.

String

No

None

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

  • Tentukan hanya nilai partisi, bukan nama partisi lengkap. Pisahkan beberapa nilai dengan koma (,). Parameter ini tidak mendukung ekspresi reguler.

startTime

Menentukan waktu mulai untuk offset konsumsi.

String

No

None

Format: yyyy-MM-dd hh:mm:ss. Jika parameter ini tidak diatur dan job tidak dilanjutkan dari state yang disimpan, konsumsi dimulai dari binlog paling awal.

source.scan.fetch-size

Menentukan ukuran batch untuk baca batch.

Integer

No

512

Tidak berlaku.

source.scan.timeout-seconds

Menentukan timeout untuk baca batch.

Integer

No

60

Unit: detik.

source.scan.filter-push-down.enabled

Menentukan apakah akan mendorong filter ke bawah selama baca batch.

Boolean

No

false

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

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

Catatan
  • Parameter ini tidak dapat diaktifkan bersamaan dengan parameter source.binlog.filter-push-down.enabled.

  • Parameter ini berlaku dalam dua skenario:

    • Jika source.binlog diatur ke false, baca batch dilakukan dan filter pushdown diaktifkan.

    • Mengatur source.binlog ke true dan source.binlog.startup-mode ke INITIAL mengaktifkan pembacaan data penuh dan inkremental, dan filter pushdown berlaku selama fase pembacaan data penuh.

source.binlog.filter-push-down.enabled

Menentukan apakah akan mendorong filter ke bawah selama konsumsi binlog.

Boolean

No

false

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

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

Catatan
  • Parameter ini hanya didukung untuk VVR 11.3 atau yang lebih baru dan instans Hologres versi 4.0 atau yang lebih baru. Parameter ini tidak dapat diaktifkan bersamaan dengan parameter source.scan.filter-push-down.enabled.

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

scan.prefer.physical-column.over.metadata-column

Menentukan apakah akan memprioritaskan membaca data dari kolom fisik saat kolom tersebut memiliki nama yang sama dengan kolom metadata.

Boolean

No

false

Parameter ini hanya didukung di VVR 11.5 dan yang lebih baru. Versi sebelumnya selalu memprioritaskan membaca data dari kolom metadata.

Parameter tabel sink

Parameter

Description

Type

Required

Default

Remarks

sink.write-mode

Mode penulisan data.

ENUM

No

INSERT

  • INSERT: Default. Menggunakan JDBC untuk menulis data dengan pernyataan INSERT.

  • COPY_STREAM: Menggunakan metode streaming COPY tetap, opsi berkinerja-tinggi untuk skenario yang membutuhkan throughput tinggi dan latensi rendah. Mode ini tidak mendukung penghapusan data, penulisan ke tabel partisi induk, atau penggunaan parameter sink.ignore-null-when-update.enabled.

  • COPY_BULK_LOAD: Melakukan penulisan massal dengan menggunakan protokol COPY. COPY_BULK_LOAD saat ini hanya berlaku untuk tabel tanpa kunci primer (exception dilempar jika kunci primer diduplikasi). Dibandingkan dengan COPY_STREAM, mode ini menggunakan lebih sedikit sumber daya Hologres untuk penulisan.

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

Catatan
  • Mode COPY_BULK_LOAD_ON_CONFLICT hanya didukung di VVR 11.3 dan yang lebih baru serta memerlukan Hologres V3.1 atau yang lebih baru. Mode ini bekerja dengan melakukan pengacakan data di sisi Flink berdasarkan DistributionKey dari tabel sink Hologres. Ini memastikan bahwa data untuk shard yang sama ditulis oleh task Flink yang sama, yang mengurangi cakupan penguncian tabel dari tingkat tabel ke tingkat shard untuk impor batch dan memungkinkan penulisan konkuren ke shard yang berbeda. Oleh karena itu, atur konkurensi job agar sesuai dengan jumlah shard dari tabel sink Hologres.

  • Dalam mode COPY_BULK_LOAD dan COPY_BULK_LOAD_ON_CONFLICT, data hanya menjadi terlihat setelah checkpoint berhasil. Mode ini cocok untuk skenario di mana visibilitas data segera tidak diperlukan atau untuk impor batch data historis.

  • Dalam mode COPY_STREAM, nilai fungsi waktu seperti CURRENT_TIMESTAMP dan NOW() tetap saat koneksi COPY dibuat dan tidak diperbarui untuk setiap catatan. Jika kolom tabel Hologres menggunakan fungsi ini sebagai nilai defaultnya (misalnya, DEFAULT CURRENT_TIMESTAMP), nilai kolom tersebut mencerminkan waktu pembuatan koneksi, bukan waktu penulisan aktual catatan tersebut. Untuk mendapatkan waktu penulisan yang akurat, Anda harus secara eksplisit menentukan nilai timestamp di job Flink Anda alih-alih mengandalkan nilai default di Hologres.

sink.on-conflict-action

Kebijakan untuk menangani konflik kunci primer.

ENUM

No

INSERT_OR_UPDATE

  • INSERT_OR_IGNORE: Menyimpan catatan pertama dan mengabaikan semua catatan berikutnya dengan kunci primer yang sama.

  • INSERT_OR_REPLACE: Mengganti seluruh baris yang ada dengan baris baru.

  • INSERT_OR_UPDATE: Default. Memperbarui subset kolom dalam baris yang ada.

    Misalnya, pertimbangkan tabel dengan kolom a, b, c, dan d, di mana a adalah kunci primer. Jika catatan masuk hanya menyediakan nilai untuk kolom a dan b, konflik kunci primer menyebabkan sistem hanya memperbarui kolom b dan membiarkan kolom c dan d tidak berubah.

sink.create-missing-partition

Menentukan apakah akan membuat partisi secara otomatis berdasarkan nilai partisi jika partisi yang cocok tidak ada saat menulis ke tabel partisi.

Boolean

No

false

  • Jika Anda menggunakan tipe data DATE sebagai kunci partisi dan mengaktifkan dynamic partitioning, nama partisi yang dibuat otomatis mengikuti konvensi penamaan dynamic partitioning.

  • Gunakan parameter ini dengan hati-hati. Pastikan nilai partisi tidak mengandung data kotor. Jika tidak, Anda mungkin membuat partisi yang salah, yang dapat menyebabkan failover.

  • Jika sink.write-mode bukan INSERT, Anda tidak dapat menulis ke tabel partisi induk.

sink.delete-strategy

Kebijakan untuk menangani pesan retraction.

String

No

CHANGELOG_STANDARD

  • IGNORE_DELETE: Mengabaikan pesan UPDATE_BEFORE dan DELETE. Opsi ini cocok untuk skenario yang hanya membutuhkan insert atau update tetapi tidak delete.

  • NON_PK_FIELD_TO_NULL: Mengabaikan pesan UPDATE_BEFORE dan memproses pesan DELETE dengan mengatur field non-kunci primer ke NULL. Opsi ini cocok untuk skenario partial update di mana Anda ingin melakukan delete tanpa memengaruhi kolom lain.

  • DELETE_ROW_ON_PK: Mengabaikan pesan UPDATE_BEFORE dan memproses pesan DELETE dengan menghapus seluruh baris berdasarkan kunci primer. Opsi ini cocok untuk skenario partial update di mana Anda ingin menghapus seluruh baris.

  • CHANGELOG_STANDARD: Mengikuti mekanisme changelog SQL Flink standar. Tidak mengabaikan operasi delete. Opsi ini melakukan update dengan terlebih dahulu menghapus catatan lama lalu memasukkan catatan baru, yang memastikan akurasi data. Opsi ini cocok untuk skenario yang tidak melibatkan partial update.

Catatan

Mengaktifkan opsi NON_PK_FIELD_TO_NULL dapat menghasilkan catatan di mana hanya kolom kunci primer yang memiliki nilai dan semua kolom lainnya bernilai null.

sink.ignore-null-when-update.enabled

Saat sink.on-conflict-action adalah 'INSERT_OR_UPDATE', menentukan apakah akan mengabaikan nilai null dalam data masuk selama update.

Boolean

No

false

  • false: Default. Menulis nilai null ke tabel sink Hologres.

  • true: Mengabaikan nilai null dalam data update masuk.

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 adalah 'INSERT_OR_UPDATE', menentukan apakah akan menggunakan metode berbasis ekspresi untuk mengabaikan nilai null dalam data update masuk.

Boolean

No

false

Metode ini menawarkan performa lebih baik daripada sink.ignore-null-when-update.enabled.

  • false: Default.

    • Jika sink.ignore-null-when-update.enabled adalah true, nilai null dalam update diabaikan.

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

  • true: Mengabaikan nilai null dalam data update masuk, terlepas dari pengaturan sink.ignore-null-when-update.enabled.

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

  • Memerlukan Hologres V4.0 atau yang lebih baru.

sink.ignore-null-when-update.use-builtin.enabled

Apakah akan menggunakan metode bawaan SDK Hologres saat sink.ignore-null-when-update.enabled atau sink.ignore-null-when-update-by-expr.enabled diaktifkan.

Boolean

No

false

  • false (default): Berperilaku sama seperti sink.ignore-null-when-update.enabled atau sink.ignore-null-when-update-by-expr.enabled.

  • true: Saat sink.ignore-null-when-update-by-expr.enabled aktif, performa lebih baik daripada hanya mengaktifkan sink.ignore-null-when-update-by-expr.enabled saja.

Performa setara saat sink.ignore-null-when-update.enabled aktif.

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

  • Memerlukan Hologres V4.0 atau yang lebih baru.

  • Hanya didukung di VVR 11.8 dan yang lebih baru.

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

Menentukan apakah connector menyediakan nilai default saat null ditulis ke kolom NOT NULL yang tidak memiliki nilai default yang ditentukan.

Boolean

No

true

  • true: Default. Memungkinkan connector menyediakan dan menulis nilai default berdasarkan aturan berikut:

    • Untuk tipe data String, string kosong ("") ditulis.

    • Untuk tipe data Number, 0 ditulis.

    • Untuk tipe data Date, timestamp, atau timestamptz, 1970-01-01 00:00:00 ditulis.

  • false: Tidak menyediakan nilai default. Menulis nilai null ke kolom NOT NULL akan melempar exception.

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

Menentukan apakah connector menghapus karakter ilegal \u0000 dari tipe string selama operasi penulisan.

Boolean

No

true

  • false: Connector tidak memodifikasi data. Jika data kotor ditemui, operasi penulisan mungkin melempar error seperti berikut: ERROR: invalid byte sequence for encoding "UTF8": 0x00

    Dalam kasus ini, Anda harus memproses data kotor di tabel sumber atau menentukan logika penanganan data kotor dalam pernyataan SQL Anda.

  • true: Default. Connector menghapus karakter \u0000 dari tipe string untuk mencegah error penulisan.

sink.partial-insert.enabled

Menentukan apakah hanya akan memasukkan atau memperbarui field yang didefinisikan dalam pernyataan INSERT.

Boolean

No

false

  • false: Default. Semua field yang didefinisikan dalam DDL tabel sink diperbarui. Field yang tidak dideklarasikan dalam pernyataan INSERT diperbarui ke null.

  • true: Hanya mendorong field yang didefinisikan dalam pernyataan INSERT ke connector, yang memungkinkan Anda memperbarui atau memasukkan hanya field yang dideklarasikan.

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

sink.deduplication.enabled

Menentukan apakah akan melakukan deduplikasi selama batching.

Boolean

No

true

  • true: Default. Jika batch berisi beberapa catatan dengan kunci primer yang sama, connector melakukan deduplikasi dan hanya menulis catatan terakhir ke tabel sink Hologres. Pertimbangkan tabel dengan dua field, di mana field pertama adalah kunci primer:

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

    • Jika tabel sink Hologres sudah berisi catatan (1,'a'), dan catatan DELETE (1,'a') dan INSERT (1,'b') tiba secara berurutan, hanya catatan terakhir (1,'b') yang ditulis ke Hologres. Ini menghasilkan update langsung alih-alih delete diikuti insert.

  • false: Menonaktifkan deduplikasi selama batching. Jika catatan baru memiliki kunci primer yang sama dengan catatan dalam batch saat ini, batch tersebut terlebih dahulu ditulis ke sink, lalu catatan baru diproses.

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

  • Jika deduplikasi dinonaktifkan, operasi penulisan mungkin turun ke penulisan baris tunggal dalam kasus ekstrem, seperti saat semua catatan memiliki kunci primer yang sama. Hal ini dapat menurunkan performa.

sink.aggressive-flush.enabled

Menentukan apakah akan mengaktifkan mode flush agresif.

Boolean

No

false

Jika diatur ke true, connector secara paksa melakukan flush batch saat koneksi idle, bahkan jika batch belum mencapai ukuran yang dikonfigurasi. Ini mengurangi latensi penulisan data selama periode trafik rendah.

Catatan

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

sink.insert.check-and-put.column

Mengaktifkan update kondisional dan menentukan kolom yang akan diperiksa.

String

No

None

Nilai parameter ini harus berupa nama kolom yang ada di tabel Hologres.

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

  • Tabel sink harus memiliki kunci primer, dan parameter sink.on-conflict-action harus INSERT_OR_UPDATE atau INSERT_OR_REPLACE.

  • Karena diperlukan lookup terbalik, buat tabel sink sebagai tabel berorientasi baris atau tabel hybrid baris-kolom untuk performa yang lebih baik.

  • Jika banyak catatan berbagi kunci primer yang sama, operasi check-and-put dapat turun ke penulisan baris tunggal, yang mengurangi performa penulisan.

sink.insert.check-and-put.operator

Operator perbandingan untuk operasi update kondisional.

String

No

GREATER

Membandingkan kolom pemeriksaan dari catatan masuk dengan nilai yang ada di tabel. Update dilanjutkan jika kondisi terpenuhi. Operator 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 update kondisional, memperlakukan nilai null dalam data yang ada sebagai nilai yang ditentukan oleh parameter ini.

String

No

None

Di PostgreSQL, setiap perbandingan dengan NULL mengembalikan FALSE. Oleh karena itu, saat nilai yang ada di tabel adalah NULL, Anda harus mengatur parameter ini ke nilai tertentu untuk digunakan dalam perbandingan. Ini setara dengan fungsi COALESCE di SQL.

sink.insert.batch-size

Dalam mode INSERT, jumlah maksimum catatan yang disertakan dalam batch sebelum ditulis.

Integer

No

512

Connector memicu penulisan saat salah satu ambang batas sink.insert.batch-size, sink.insert.batch-byte-size, atau sink.insert.flush-interval-ms tercapai.

sink.insert.batch-byte-size

Dalam mode INSERT, ukuran maksimum dalam byte dari batch sebelum ditulis.

Long

No

2097152 (2 MB)

sink.insert.flush-interval-ms

Dalam mode INSERT, interval maksimum dalam milidetik untuk menunggu sebelum batch di-flush ke Hologres.

Long

No

10000

sink.copy.format

Format transmisi data yang digunakan dalam mode COPY.

String

No

  • COPY_STREAM mode default ke binary.

  • COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT mode default ke text.

Format yang didukung untuk mode COPY_STREAM:

  • binary

  • text

  • binaryrow (Memerlukan engine Hologres V4.1.0 atau yang lebih baru)

Format yang didukung untuk mode COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT: hanya 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 yang digunakan untuk memperbarui baris saat terjadi konflik kunci primer.

String

No

None

Setara dengan 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, konflik kunci primer menyebabkan nilai col1 diperbarui menjadi jumlah nilai lama dan baru, dan nilai col2 diperbarui ke nilai baru.

  • Jika parameter ini tidak ditentukan, connector secara default memperbarui semua field masuk ke nilai barunya.

  • Untuk ekspresi stateful di mana hasilnya bergantung pada nilai lama (misalnya, col=old.col+excluded.col), pastikan kolom tersebut dapat berfungsi sebagai nomor versi baris dan atur sink.insert.conflict-where ke excluded.seq>old.seq. Ini 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 untuk memicu update selama konflik kunci primer.

String

No

None

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, update dipicu hanya saat nilai baru col1 lebih besar dari nilai yang ada.

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

  • Parameter ini bertentangan dengan parameter sink.insert.check-and-put*. Mengonfigurasi keduanya secara bersamaan menyebabkan error.

Parameter tabel dimensi

Parameter

Description

Type

Required

Default

Notes

lookup.read.batch-size

Jumlah maksimum catatan untuk batching dalam kueri titik pada tabel dimensi Hologres.

Integer

No

256

None

lookup.read.timeout-ms

Timeout untuk kueri titik pada tabel dimensi.

Long

No

0, yang berarti tidak ada timeout.

None

lookup.read.column-table.enabled

Menentukan apakah akan menggunakan tabel berorientasi kolom sebagai tabel dimensi.

Boolean

No

false

Tabel berorientasi kolom berkinerja buruk untuk kueri titik. Kami merekomendasikan menggunakan tabel berorientasi baris atau tabel hybrid baris-kolom sebagai tabel dimensi. Peringatan akan dicatat jika parameter ini diaktifkan untuk tabel berorientasi kolom.

lookup.insert-if-not-exists

Menentukan apakah akan memasukkan catatan jika catatan tersebut tidak ada.

Boolean

No

false

Jika kueri titik tidak menemukan kecocokan untuk catatan saat ini di tabel dimensi, connector memasukkan catatan tersebut.

cache

Kebijakan cache.

String

No

None

Hologres hanya mendukung dua kebijakan cache: None dan LRU.

cacheSize

Ukuran cache, dalam baris.

Integer

No

10000

Setelah Anda memilih kebijakan cache LRU, Anda dapat mengatur ukuran cache. Satuannya adalah entri.

cacheTTLMs

Waktu hidup cache (TTL), dalam milidetik.

Long

No

Lihat Catatan.

Satuannya adalah milidetik. Nilai default cacheTTLMs bergantung pada konfigurasi cache:

  • Jika cache dikonfigurasi sebagai LRU, cacheTTLMs menentukan timeout cache. Pengaturan default adalah tidak ada kadaluarsa.

  • Jika cache dikonfigurasi sebagai None, cacheTTLMs dapat dihilangkan, yang menunjukkan bahwa cache tidak kadaluarsa.

cacheEmpty

Menentukan apakah akan menyimpan hasil join kosong dalam cache.

Boolean

No

true

  • true (Default): Menyimpan hasil join kosong dalam cache.

  • false: Tidak menyimpan hasil join kosong dalam cache.

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

    LEFT JOIN latest_emergency FOR SYSTEM_TIME AS OF PROCTIME() AS t2
     ON t1.alarm_id = t2.alarm_id -- Jika alarm dinamis terdeteksi, cocokkan berdasarkan ID alarm dinamis. Jika tidak, abaikan field ID alarm dinamis.
     AND CASE
     WHEN alarm_type = 2 THEN t1.dynamic_id = t2.dynamic_alarm_id
     ELSE true
     END
Penting

Tentukan apakah akan mengaktifkan switch ini berdasarkan skenario bisnis aktual Anda.

  • Untuk meningkatkan performa dan mengurangi tekanan I/O pada tabel dimensi statis atau yang berubah lambat, gunakan nilai default (true).

  • Untuk tabel dimensi yang sering diperbarui, atur parameter ini ke false atau gunakan nilai cacheTTLMs yang pendek. Ini memastikan entri cache kosong segera dihapus untuk mencegah kegagalan join berikutnya.

async

Menentukan apakah akan mengembalikan hasil secara asinkron.

Boolean

No

false

  • true: Mengembalikan hasil secara asinkron.

  • false (Default): Mengembalikan hasil secara sinkron.

Catatan
  • Hasil asinkron tidak berurutan.

  • Kueri asinkron untuk tabel dimensi dikontrol oleh parameter async dan lookup.async. Kueri asinkron diaktifkan jika salah satu parameter ini atau lookup.async bernilai true.

    Nilai default lookup.async adalah true. Oleh karena itu, kueri asinkron diaktifkan jika async diatur ke false.

    Untuk menonaktifkan kueri asinkron, Anda harus mengatur kedua parameter ke false.

lookup.async

Menentukan apakah akan mengaktifkan kueri asinkron untuk tabel dimensi.

Boolean

No

true

  • true (Default): Mengaktifkan kueri asinkron.

  • false: Menonaktifkan kueri asinkron.

lookup.filter-push-down.enabled

Menentukan apakah akan mendorong kondisi filter tabel dimensi ke server Hologres.

Boolean

No

false

Fitur ini hanya mendukung operasi perbandingan antara kolom dan konstanta. Connector hanya mendorong operator kesetaraan (=) dan perbandingan (<, <=, >, >=).

Catatan

Parameter ini hanya didukung di Realtime Compute Engine VVR 11.4 dan yang lebih baru.