All Products
Search
Document Center

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

Last Updated:Apr 25, 2026

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

Penghentian parameter

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

Parameter yang dihapus

Parameter

Deskripsi

Catatan

jdbcRetrySleepInitMs

Waktu tunggu tetap untuk setiap retry.

Gunakan waktu tunggu inkremental: 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 membaca 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 upsert Changelog.

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 menyarankan 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 serta parameter source.binlog.read-mode dan sink.write-mode.

jdbcReadBatchQueueSize

Ukuran antrian buffer untuk permintaan lookup tabel dimensi.

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

jdbcReadRetryCount

Jumlah retry ketika lookup tabel dimensi timeout.

Parameter retry-count untuk mekanisme pengulangan 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

Parameter Lama

Parameter Baru

Deskripsi

jdbcRetryCount

retry-count

Jumlah percobaan ulang untuk operasi write dan query setelah terjadi kegagalan koneksi.

jdbcRetrySleepStepMs

retry-sleep-step-ms

Waktu tunggu tambahan untuk setiap percobaan ulang.

jdbcConnectionMaxIdleMs

connection.max-idle-ms

Waktu idle maksimum untuk koneksi JDBC.

jdbcMetaCacheTTL

meta-cache-ttl-ms

Time to Live (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 percobaan ulang ketika 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 pemindaian.

jdbcScanTimeoutSeconds

source.scan.timeout-seconds

Timeout untuk operasi pemindaian.

enable_filter_push_down

source.scan.filter-push-down.enabled

Menentukan apakah akan mengaktifkan filter pushdown selama fase pembacaan 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 penulisan.

mutatetype

sink.on-conflict-action

Strategi penanganan untuk konflik primary key.

createparttable

sink.create-missing-partition

Saat menulis ke tabel partisi, menentukan apakah akan membuat partisi yang belum ada 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 konektor menyediakan nilai default saat null ditulis ke kolom NOT NULL yang tidak memiliki nilai default yang telah ditentukan.

remove-u0000-in-text.enabled

sink.remove-u0000-in-text.enabled

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

partial-insert.enabled

sink.partial-insert.enabled

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

deduplication.enabled

sink.deduplication.enabled

Menentukan apakah akan melakukan deduplikasi selama proses batching penulisan.

check-and-put.column

sink.insert.check-and-put.column

Mengaktifkan pembaruan bersyarat dan menentukan kolom 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

Untuk pembaruan bersyarat, 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 pada lookup tabel dimensi.

jdbcReadTimeoutMs

lookup.read.timeout-ms

Timeout untuk lookup tabel dimensi.

Dengan parameter

Umum

Parameter

Deskripsi

Tipe

Wajib

Default

Keterangan

connector

Tipe tabel.

String

Ya

Nilainya harus hologres.

dbname

Nama database.

String

Ya

Anda dapat menghubungkan 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

Ya

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

Ya

Penting

Untuk mencegah Informasi AccessKey Anda terpapar, kami menyarankan Anda menggunakan variabel namespace untuk menyimpan nilai AccessKey Anda. Untuk informasi selengkapnya, lihat Variabel namespace.

password

  • Password untuk akun kustom.

  • Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM.

String

Ya

endpoint

Titik akhir layanan Hologres.

String

Ya

Untuk informasi selengkapnya, lihat Titik akhir.

connection.pool.size

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

Integer

Tidak

5

Jika performa job tidak mencukupi, pertimbangkan untuk menambah ukuran kolam koneksi. Ukuran kolam 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

Tidak

'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.

Sebagai contoh, 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 traffic 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 menyarankan memberikan nama kolam yang berbeda untuk tabel yang berbeda.

connection.fixed.enabled

Menentukan apakah akan menggunakan mode koneksi ringan.

Boolean

Tidak

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

Tidak

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

Tidak

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 Enkripsi dalam 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

Tidak

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 Kelola artefak di Konsol Realtime Compute. Setelah diunggah, file tersebut disimpan di direktori /flink/usrlib. Sebagai contoh, 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 kali retry operasi write atau query saat koneksi gagal.

Integer

Tidak

10

retry-sleep-step-ms

Waktu tunggu inkremental untuk setiap retry, dalam milidetik.

Long

Tidak

5000

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

meta-cache-ttl-ms

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

Long

Tidak

600000

serverless-computing.enabled

Menentukan apakah akan menggunakan sumber daya serverless.

Boolean

Tidak

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 pembacaan batch dan impor batch. Parameter ini tidak berlaku untuk konsumsi log biner, kueri titik tabel dimensi, atau penulisan real-time. Untuk informasi selengkapnya, lihat Ikhtisar.

Catatan
  • Pembacaan batch berlaku ketika source.binlog diatur ke false, atau selama fase pembacaan data penuh ketika source.binlog.startup-mode diatur ke INITIAL.

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

Catatan

Kami menyarankan mengaktifkan parameter ini untuk impor atau ekspor data skala besar agar tidak memengaruhi kueri lain pada instans Hologres Anda. Untuk informasi selengkapnya, lihat Ikhtisar.

Parameter tabel sumber

Parameter

Deskripsi

Tipe

Wajib

Default

Keterangan

source.binlog

Menentukan apakah akan mengonsumsi data binlog.

Boolean

Tidak

true

  • true (default): Mengonsumsi data binlog.

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

source.binlog.read-mode

Menentukan mode baca.

ENUM

Tidak

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-nya 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

Tidak

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 untuk data binlog.

ENUM

Tidak

INITIAL

  • INITIAL (default): Melakukan pembacaan 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

Tidak

512

Tidak berlaku.

source.binlog.request-timeout-ms

Menentukan timeout untuk membaca data binlog.

Long

Tidak

300000

Unit: 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 bidang yang ditentukan dalam tabel pengguna saat membaca data binlog.

Boolean

Tidak

None

Bidang yang ditentukan adalah bidang yang dideklarasikan dalam pernyataan CREATE TEMPORARY TABLE; bidang yang tidak dideklarasikan tidak dibaca. Ketika tabel memiliki banyak bidang tetapi Anda hanya perlu mengonsumsi sebagian, 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

Tidak

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

Tidak

DISABLE

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

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

  • STATIC: Mengonsumsi serangkaian 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 lateness maksimum saat mengonsumsi tabel partisi.

Integer

Tidak

60

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

Sebagai contoh, jika partisi dinamis berdasarkan HARI, untuk partisi 20240920, dan lateness 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 lateness.

source.binlog.partition-values-to-read

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

String

Tidak

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

Tidak

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 pembacaan batch.

Integer

Tidak

512

Tidak berlaku.

source.scan.timeout-seconds

Menentukan timeout untuk pembacaan batch.

Integer

Tidak

60

Unit: 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
  • 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, pembacaan 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

Tidak

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.

  • Ketika source.binlog diatur ke true, filter pushdown diaktifkan. Sebagai contoh, ketika 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 ketika kolom tersebut memiliki nama yang sama dengan kolom metadata.

Boolean

Tidak

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

Deskripsi

Tipe

Wajib

Default

Keterangan

sink.write-mode

Mode penulisan data.

ENUM

Tidak

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 dilemparkan 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 mengacak ulang 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() ditetapkan saat koneksi COPY dibuat dan tidak diperbarui untuk setiap catatan. Jika kolom tabel Hologres menggunakan fungsi ini sebagai nilai default (misalnya, DEFAULT CURRENT_TIMESTAMP), nilai kolom tersebut mencerminkan waktu pembuatan koneksi, bukan waktu penulisan aktual catatan. Untuk mendapatkan waktu penulisan yang akurat, Anda harus secara eksplisit menentukan nilai timestamp dalam job Flink Anda alih-alih mengandalkan nilai default di Hologres.

sink.on-conflict-action

Kebijakan untuk menangani konflik kunci primer.

ENUM

Tidak

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.

    Sebagai contoh, 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 secara otomatis membuat partisi berdasarkan nilai partisi jika partisi yang sesuai tidak ada saat menulis ke tabel partisi.

Boolean

Tidak

false

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

  • 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

Tidak

CHANGELOG_STANDARD

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

  • NON_PK_FIELD_TO_NULL: Mengabaikan pesan UPDATE_BEFORE dan memproses pesan DELETE dengan mengatur bidang non-kunci primer ke NULL. Opsi ini cocok untuk skenario update parsial 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 update parsial 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 menjamin akurasi data. Opsi ini cocok untuk skenario yang tidak melibatkan update parsial.

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

Tidak

false

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

  • true: Mengabaikan nilai null dalam data update masuk.

Catatan

Parameter ini hanya didukung ketika 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

Tidak

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 ketika sink.write-mode diatur ke INSERT.

  • Memerlukan Hologres V4.0 atau yang lebih baru.

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

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

Boolean

Tidak

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 melemparkan exception.

Catatan

Parameter ini hanya didukung ketika 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

Tidak

true

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

    Dalam kasus ini, Anda harus memproses data kotor di tabel sumber atau mendefinisikan 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 bidang yang didefinisikan dalam pernyataan INSERT.

Boolean

Tidak

false

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

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

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

sink.deduplication.enabled

Menentukan apakah akan melakukan deduplikasi selama batching.

Boolean

Tidak

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 bidang, di mana bidang 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 ketika sink.write-mode diatur ke INSERT.

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

sink.aggressive-flush.enabled

Menentukan apakah akan mengaktifkan mode flush agresif.

Boolean

Tidak

false

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

Catatan

Parameter ini hanya didukung ketika 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

Tidak

None

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

Penting
  • Parameter ini hanya didukung ketika 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

Tidak

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

Tidak

None

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

sink.insert.batch-size

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

Integer

Tidak

512

Connector memicu penulisan ketika salah satu dari 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

Tidak

2097152 (2 MB)

sink.insert.flush-interval-ms

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

Long

Tidak

10000

sink.copy.format

Format transmisi data yang digunakan dalam mode COPY.

String

Tidak

  • COPY_STREAM mode default-nya binary.

  • COPY_BULK_LOAD atau COPY_BULK_LOAD_ON_CONFLICT mode default-nya 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 ketika 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 ketika terjadi konflik kunci primer.

String

Tidak

None

Setara dengan insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set>. Anda dapat menentukan ekspresi atau fungsi Hologres.

Sebagai contoh, 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 bidang masuk ke nilai barunya.

  • Untuk ekspresi stateful di mana hasilnya bergantung pada nilai lama (misalnya, col=old.col+excluded.col), pastikan bahwa kolom dapat berfungsi sebagai nomor versi baris dan atur sink.insert.conflict-where ke excluded.seq>old.seq. Ini menjamin kebenaran data setelah failover dan pemulihan.

Catatan

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

sink.insert.conflict-where

Kondisi filter Hologres untuk memicu update selama konflik kunci primer.

String

Tidak

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.

Sebagai contoh, jika parameter ini diatur ke excluded.col1>old.col1, update dipicu hanya ketika nilai baru col1 lebih besar dari nilai yang ada.

Catatan
  • Parameter ini hanya didukung ketika 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

Deskripsi

Tipe

Wajib

Default

Catatan

lookup.read.batch-size

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

Integer

Tidak

256

None

lookup.read.timeout-ms

Timeout untuk kueri titik pada tabel dimensi.

Long

Tidak

0, yang berarti tidak ada timeout.

None

lookup.read.column-table.enabled

Menentukan apakah akan menggunakan tabel berorientasi kolom sebagai tabel dimensi.

Boolean

Tidak

false

Tabel berorientasi kolom berperforma buruk untuk kueri titik. Kami menyarankan 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

Tidak

false

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

cache

Kebijakan cache.

String

Tidak

None

Hologres hanya mendukung dua kebijakan cache: None dan LRU.

cacheSize

Ukuran cache, dalam baris.

Integer

Tidak

10000

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

cacheTTLMs

Waktu hidup cache (TTL), dalam milidetik.

Long

Tidak

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 kedaluwarsa.

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

cacheEmpty

Menentukan apakah akan menyimpan hasil join kosong dalam cache.

Boolean

Tidak

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 bidang ID alarm dinamis.
     AND CASE
     WHEN alarm_type = 2 THEN t1.dynamic_id = t2.dynamic_alarm_id
     ELSE true
     END
Penting

  • 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

Tidak

false

  • true: Mengembalikan hasil secara asinkron.

  • false (Default): Mengembalikan hasil secara sinkron.

Catatan
  • Hasil asinkron tidak terurut.

  • 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

Tidak

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

Tidak

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.