Topik ini menjelaskan opsi konektor Hologres dalam klausa WITH untuk Ververica Runtime (VVR) versi 8.0.x atau lebih lama.
Opsi konektor dalam klausa WITH
Umum
Opsi | Deskripsi | Tipe data | Diperlukan? | Nilai default | Catatan |
| Jenis konektor. | String | Ya | Tidak ada nilai default | Atur opsi ini ke |
| Nama database. | String | Ya | Tidak ada nilai default | Hologres V2.0 memperkenalkan instans gudang virtual sebagai jenis baru dari instans elastis dan high-availability. Sumber daya komputasi dibagi menjadi beberapa gudang virtual untuk mengimplementasikan penyebaran high-availability. Gudang virtual yang berbeda berbagi titik akhir yang sama. Anda dapat menambahkan akhiran tertentu pada nilai opsi Catatan Gudang virtual hanya didukung saat mode terkait JDBC digunakan untuk tabel. Untuk informasi lebih lanjut, lihat opsi |
| Nama tabel. | String | Ya | Tidak ada nilai default | Jika skema bukan public, atur |
|
| String | Ya | Tidak ada nilai default |
Penting Untuk meningkatkan keamanan, gunakan variabel alih-alih melakukan hardcoding pada pasangan AccessKey Anda. |
|
| String | Ya | Tidak ada nilai default | |
| Titik akhir Hologres. | String | Ya | Tidak ada nilai default | |
| Menentukan apakah akan mengaktifkan transmisi terenkripsi SSL dan menentukan mode transmisi terenkripsi SSL yang digunakan. | String | Tidak |
|
Catatan
|
| Path dari Sertifikat jika sertifikat CA digunakan. | String | Tidak | Tidak ada nilai default | Jika Anda mengatur Catatan
|
| Jumlah maksimum percobaan ulang yang diizinkan untuk membaca dan menulis data jika terjadi kegagalan koneksi. | Bilangan Bulat | Tidak |
| |
| Periode tunggu tetap untuk setiap percobaan ulang. | Panjang | Tidak |
| Periode tunggu aktual untuk setiap percobaan ulang dihitung dengan menggunakan rumus berikut: |
| Periode tunggu kumulatif untuk setiap percobaan ulang. | Long | Tidak |
| Periode tunggu aktual untuk setiap percobaan ulang dihitung dengan menggunakan rumus berikut: |
| Durasi maksimum koneksi JDBC dapat tetap idle. | Long | Tidak |
| Jika koneksi JDBC tetap idle selama periode waktu yang melebihi nilai opsi ini, koneksi akan ditutup dan dilepaskan. Satuan: milidetik. |
| Waktu maksimum untuk menyimpan informasi TableSchema dalam cache. | Long | Tidak |
| Satuan: milidetik. |
| Faktor untuk memicu penyegaran otomatis cache. Jika waktu tersisa untuk menyimpan data dalam cache kurang dari waktu untuk memicu penyegaran otomatis cache, sistem secara otomatis menyegarkan cache. | Integer | Tidak |
| Waktu tersisa untuk menyimpan data dalam cache dihitung dengan menggunakan rumus berikut: Waktu tersisa untuk menyimpan data dalam cache = Waktu kedaluwarsa cache - Waktu data telah disimpan dalam cache. Setelah cache diperbarui secara otomatis, durasi data disimpan di cache dihitung ulang dari 0. Waktu untuk memicu penyegaran otomatis cache dihitung dengan menggunakan rumus berikut: jdbcMetaCacheTTL/jdbcMetaAutoRefreshFactor. |
| Menentukan apakah akan melakukan konversi tipe waktu antara Realtime Compute for Apache Flink dan Hologres. | Boolean | Tidak |
|
Catatan
|
| Versi opsi konektor. | Integer | Tidak |
| Nilai valid:
Catatan
|
Spesifik sumber
Opsi | Deskripsi | Tipe data | Diperlukan? | Nilai default | Catatan |
| Pemisah yang digunakan antar baris saat data diekspor. | String | Tidak |
| |
| Menentukan apakah akan mengonsumsi data log biner. | Boolean | Tidak |
|
Catatan
|
| Mode SDK. | String | Tidak |
|
Untuk informasi tentang nilai yang direkomendasikan untuk versi berbeda, lihat Tindakan pencegahan. |
| Nama slot dari tabel sumber log biner dalam mode JDBC. | String | Tidak | Tidak ada nilai default | Opsi ini hanya berlaku ketika Catatan Jika Anda menggunakan Hologres V2.1 atau yang lebih baru dan VVR 8.0.5 atau yang lebih baru, lewati konfigurasi opsi ini, dan konektor tidak akan mencoba untuk secara otomatis membuat slot. |
| Jumlah percobaan ulang setelah Realtime Compute for Apache Flink gagal membaca data log biner. | Integer | Tidak |
| |
| Interval antara percobaan ulang setelah Realtime Compute for Apache Flink gagal membaca data log biner. | Panjang | Tidak |
| Satuan: milidetik. |
| Jumlah baris di mana data log biner dibaca dalam satu waktu. | Integer | Tidak |
| |
| Menentukan apakah akan membaca data log biner dalam mode CDC. | Boolean | Tidak |
|
Catatan
|
| Menentukan apakah tabel sumber membaca aliran changelog yang berisi pesan UPSERT. | Boolean | Tidak |
| Opsi ini hanya berlaku dalam mode CDC.
Catatan Jika operator retraction ada di tabel sink, seperti fungsi |
| Mode konsumsi log biner. | String | Tidak |
|
Catatan Opsi startTime memiliki prioritas lebih tinggi. Ini berarti jika Anda mengonfigurasi opsi startTime atau memilih titik waktu mulai saat memulai pekerjaan, opsi binlogStartupMode secara paksa diatur ke Catatan
|
| Waktu mulai ketika data Hologres dikonsumsi. | String | Tidak | Tidak ada nilai default | Formatnya adalah yyyy-MM-dd hh:mm:ss. Jika opsi ini tidak dikonfigurasi dan pekerjaan tidak dilanjutkan dari suatu state, Realtime Compute for Apache Flink mulai mengonsumsi data Hologres dari log biner paling awal. |
| Jumlah catatan data yang dapat diproses sekaligus selama operasi pemindaian. | Integer | Tidak |
| |
| Periode batas waktu untuk operasi pemindaian. | Bilangan Bulat | Tidak |
| Satuan: detik. |
| Periode waktu habis untuk transaksi yang menjadi bagian dari operasi pemindaian. | Integer | Tidak |
| Opsi ini sesuai dengan parameter GUC Hologres GUC parameter idle_in_transaction_session_timeout. Nilai |
| Menentukan apakah akan melakukan filter pushdown selama fase pembacaan data penuh. | Boolean | Tidak |
|
|
| Mode di mana log biner dalam tabel terpartisi dikonsumsi. | Enum | Tidak |
|
|
| Lateness maksimum yang diizinkan sebelum timeout dipicu ketika data dalam tabel partisi dikonsumsi secara dinamis. | Boolean | Tidak |
|
|
| Partisi yang akan dikonsumsi ketika data dalam tabel partisi dikonsumsi dalam mode statis. | String | Tidak | Tidak ada nilai default |
|
Spesifik sink
Opsi | Deskripsi | Tipe data | Diperlukan? | Nilai default | Catatan |
| Mode SDK. | String | Tidak |
|
Untuk informasi tentang nilai yang direkomendasikan dalam versi VVR berbeda, lihat Tindakan pencegahan. |
| Menentukan apakah akan menulis data dalam mode bulkload. | Boolean | Tidak |
| Opsi ini berlaku hanya ketika opsi Catatan Opsi ini didukung saat Anda menggunakan VVR 8.0.5 atau lebih baru dan Hologres V2.1 atau lebih baru. |
| Menentukan apakah akan menggunakan konektor Hologres dalam mode RPC. | Boolean | Tidak |
|
Catatan
|
| Mode penulisan data. | String | Tidak |
|
Catatan
|
| Menentukan apakah akan menulis data ke tabel partisi. | Boolean | Tidak |
| |
| Menentukan apakah akan secara otomatis membuat tabel terpartisi yang tidak ada berdasarkan nilai partisi. | Boolean | Tidak |
| Dalam mode RPC, jika nilai partisi mengandung tanda hubung ( Catatan
|
| Menentukan apakah akan mengabaikan pesan retraksi. | Boolean | Tidak |
| Catatan
|
| Menentukan strategi untuk memproses pesan retraction. | String | Tidak | Tidak ada nilai default | Nilai yang valid:
Catatan
|
| Ukuran pool koneksi JDBC yang dibuat dalam penyebaran Realtime Compute for Apache Flink. | Bilangan Bulat | Tidak |
| Ukuran pool koneksi JDBC sebanding dengan throughput data. Jika performa deployment buruk, tingkatkan ukuran pool koneksi. |
| Jumlah maksimum baris data yang dapat diproses oleh operator sink aliran Hologres sekaligus saat menggunakan driver JDBC. | Bilangan Bulat | Tidak |
| Unit: baris. Catatan Jika Anda menentukan semua parameter sebelumnya (jdbcWriteBatchSize, jdbcWriteBatchByteSize, dan jdbcWriteFlushInterval), sistem akan menulis data ke tabel sink Hologres ketika salah satu kondisi terkait terpenuhi. |
| Jumlah maksimum byte data yang dapat diproses oleh node sink streaming Hologres sekaligus saat menggunakan driver JDBC. | Panjang | Tidak |
| Catatan Anda hanya dapat menentukan satu dari opsi berikut: jdbcWriteBatchSize, jdbcWriteBatchByteSize, dan jdbcWriteFlushInterval. Jika Anda menentukan semuanya, sistem akan menulis data ke tabel sink Hologres ketika salah satu kondisi terpenuhi. |
| Periode waktu maksimum yang diperlukan untuk menunggu node sink streaming Hologres menulis data dari beberapa baris ke Hologres secara bersamaan saat menggunakan JDBC driver. | Panjang | Tidak |
| Unit: milidetik. Catatan Anda hanya dapat menentukan salah satu dari opsi berikut: jdbcWriteBatchSize, jdbcWriteBatchByteSize, dan jdbcWriteFlushInterval. Jika Anda menentukan semuanya, sistem akan menulis data ke tabel sink Hologres ketika salah satu kondisi terpenuhi. |
| Menentukan apakah akan mengabaikan nilai null dalam data yang ditulis ketika mutatetype='insertOrUpdate' ditentukan. | Boolean | Tidak |
|
Catatan Jika Anda mengatur opsi |
| Nama dari kolam koneksi. Di dalam TaskManager yang sama, tabel yang dikonfigurasi dengan kolam koneksi yang sama dapat berbagi kolam koneksi. | String | Tidak | Tidak ada nilai default | Atur opsi ini ke string apa pun selain Catatan
|
| Menentukan apakah akan mengizinkan konektor Hologres mengisi nilai default jika nilai null ditulis ke kolom non-null yang tidak memiliki nilai default yang dikonfigurasi dalam tabel Hologres. | Boolean | Tidak |
|
|
| Menentukan apakah akan mengizinkan konektor Hologres menghapus karakter tidak valid \u0000 dari data STRING yang ditulis ke tabel sink. | Boolean | Tidak |
|
Penting
|
| Menentukan apakah hanya bidang yang dideklarasikan dalam pernyataan INSERT yang disisipkan. | Boolean | Tidak |
|
Catatan Opsi ini berlaku hanya jika opsi |
| Menentukan apakah akan melakukan deduplikasi saat data ditulis secara batch dalam mode JDBC atau jdbc_fixed. | Boolean | Tidak |
|
Catatan
|
| Menentukan apakah akan mengaktifkan fitur pembaruan bersyarat dan mengonfigurasi nama bidang yang ingin Anda periksa. | String | Tidak | Tidak ada nilai default | Anda harus mengatur opsi ini ke nama bidang dalam tabel Hologres. Penting
|
| Operator perbandingan untuk operasi pembaruan bersyarat. | String | Tidak |
| Opsi ini memungkinkan Anda membandingkan bidang pemeriksaan dalam catatan data baru dengan bidang pemeriksaan dalam catatan data lama di tabel. Jika hasil perbandingan memenuhi nilai opsi ini, Anda dapat melakukan operasi pembaruan bersyarat. Nilai valid: GREATER, GREATER_OR_EQUAL, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, IS_NULL, dan IS_NOT_NULL. Catatan Hanya VVR 8.0.11 atau lebih baru yang mendukung opsi ini. |
| Ketika Anda melakukan operasi pembaruan bersyarat, jika catatan data lama bernilai null, nilai null dianggap sebagai nilai valid dari opsi ini. | String | Tidak | Tidak ada nilai default | Dalam PostgreSQL, hasil dari membandingkan nilai apa pun dengan NULL adalah FALSE. Oleh karena itu, ketika data asli dalam tabel adalah NULL, Anda harus menetapkan NULL-AS sebagai parameter saat melakukan operasi pembaruan bersyarat. Parameter NULL-AS sama dengan fungsi COALESCE dalam Flink SQL. Catatan Hanya VVR 8.0.11 atau yang lebih baru yang mendukung opsi ini. |
| Menentukan apakah akan mengaktifkan mode commit agresif. | Boolean | Tidak |
| Jika Anda mengatur opsi ini ke Catatan
|
Spesifik tabel dimensi
Opsi | Deskripsi | Tipe data | Diperlukan? | Nilai default | Catatan |
| Mode SDK. | String | Tidak |
|
Untuk informasi lebih lanjut tentang nilai yang direkomendasikan untuk versi VVR berbeda, lihat Catatan. |
| Menentukan apakah akan menyambungkan ke konektor Hologres menggunakan RPC. | Boolean | Tidak |
| Nilai valid:
Catatan Jika Anda mengatur opsi ini ke |
| Ukuran pool koneksi JDBC yang dibuat dalam sebuah job. | Bilangan Bulat | Tidak |
| Jika pekerjaan memiliki kinerja yang buruk, kami sarankan Anda meningkatkan ukuran kolam koneksi. Ukuran kolam koneksi JDBC sebanding dengan throughput data. |
| Nama kolam koneksi. Dalam TaskManager yang sama, tabel yang dikonfigurasikan dengan kolam koneksi yang sama dapat berbagi kolam koneksi. | String | Tidak | Tidak ada nilai default | Atur opsi ini ke string apa pun selain Catatan
|
| Jumlah maksimum catatan data yang dapat diproses pada saat yang sama untuk query titik dalam tabel dimensi Hologres. | Integer | Tidak |
| |
| Jumlah maksimum permintaan yang diizinkan dalam antrian di thread untuk melakukan query titik dalam tabel dimensi Hologres. | Integer | Tidak |
| |
| Periode timeout untuk melakukan query titik dalam tabel dimensi Hologres. | Long | Tidak |
| Nilai default |
| Jumlah percobaan ulang ketika query titik dalam tabel dimensi Hologres mengalami timeout. | Integer | Tidak |
| Opsi ini berbeda dari |
| Jumlah maksimum catatan data yang dapat diproses pada saat yang sama dengan memanggil operasi scan saat Anda melakukan join tabel satu-ke-banyak. Dalam join tabel satu-ke-banyak, tidak ada kunci utama lengkap yang digunakan. | Integer | Tidak |
| |
| Periode timeout maksimum untuk operasi scan. | Integer | Tidak |
| Satuan: detik. |
| Kebijakan cache. | String | Tidak |
| Nilai valid:
|
| Jumlah maksimum baris data yang dapat disimpan dalam cache. | Integer | Tidak |
| Opsi ini tersedia setelah Anda mengatur |
| Interval sistem menyegarkan cache. | Long | Tidak | Lihat kolom catatan. | Satuan: milidetik. Nilai default opsi cacheTTLMs bervariasi berdasarkan nilai parameter cache:
|
| Menentukan apakah akan menyimpan hasil query JOIN yang kosong dalam cache. | Boolean | Tidak |
|
|
| Menentukan apakah akan mengaktifkan sinkronisasi data dalam mode asinkron. | Boolean | Tidak |
|
Catatan Data tidak diurutkan saat data disinkronkan dalam mode asinkron. |
Zona waktu Realtime Compute for Apache Flink dan Hologres
Tipe waktu
Layanan | Tipe | Deskripsi |
Flink | Tanggal dan waktu tanpa zona waktu. Data tipe TIMESTAMP adalah timestamp yang mewakili tahun, bulan, hari, jam, menit, detik, dan fraksi detik. Data tipe TIMESTAMP dapat berupa string, seperti | |
Digunakan untuk menggambarkan titik waktu absolut pada garis waktu. Data tipe LONG menunjukkan jumlah milidetik yang telah berlalu sejak waktu epoch. Data tipe INT menunjukkan jumlah nanodetik dalam milidetik. Waktu epoch merujuk pada 00:00:00 UTC pada 1 Januari 1970 dalam Java. Data tipe TIMESTAMP_LTZ ditafsirkan untuk perhitungan dan visualisasi berdasarkan zona waktu yang dikonfigurasi dalam sesi saat ini. Tipe TIMESTAMP_LTZ dapat digunakan untuk perhitungan lintas zona waktu karena ia mewakili titik waktu absolut yang sama dalam zona waktu berbeda berdasarkan waktu epoch. Nilai TIMESTAMP_LTZ yang sama dapat mencerminkan nilai TIMESTAMP lokal yang berbeda dalam zona waktu berbeda. Sebagai contoh, jika nilai TIMESTAMP_LTZ adalah | ||
Hologres | TIMESTAMP | Tanggal dan waktu tanpa zona waktu, yang mirip dengan tipe |
TIMESTAMP WITH TIME ZONE (TIMESTAMPTZ) | Tanggal dan waktu dengan zona waktu, yang mirip dengan tipe Sebagai contoh, jika timestamp zona waktu Beijing (UTC+8) adalah |
Pemetaan zona waktu
Jika Anda mengatur opsi
type-mapping.timestamp-converting.legacykefalsedi VVR 8.0.6 atau lebih baru, Anda dapat melakukan konversi semua tipe waktu antara Realtime Compute for Apache Flink dan Hologres.Flink
Hologres
Deskripsi
TIMESTAMP
TIMESTAMP
Konversi tipe waktu dilakukan tanpa konversi zona waktu. Kami merekomendasikan Anda menggunakan jenis konversi tipe waktu ini untuk membaca data dari atau menulis data ke Hologres.
TIMESTAMP LTZ
TIMESTAMPTZ
TIMESTAMP
TIMESTAMPTZ
Konversi tipe waktu dilakukan dengan konversi zona waktu. Untuk menjaga akurasi selama konversi, Anda perlu mengatur zona waktu Flink melalui
table.local-time-zone. Untuk informasi lebih lanjut, lihat Bagaimana cara mengonfigurasi parameter kustom untuk deployment running?.Sebagai contoh, Anda menentukan
'table.local-time-zone': 'Asia/Shanghai'untuk mengatur zona waktu Realtime Compute for Apache Flink ke zona waktu Shanghai (UTC+8). Setelah Anda menulis data 2022-01-01 01:01:01.123456 dari tipe TIMESTAMP dari Realtime Compute for Apache Flink ke Hologres, data tersebut dikonversi menjadi 2022-01-01 01:01:01:01.123456+8 dari tipe TIMESTAMPTZ.TIMESTAMP LTZ
TIMESTAMP
Di VVR 8.0.6 atau lebih baru dengan pengaturan
type-mapping.timestamp-converting.legacy=true, atau di VVR 8.0.5 atau lebih lama, deviasi data mungkin terjadi selama konversi tipe waktu, kecuali untuk konversi tipe TIMESTAMP.Flink
Hologres
Catatan
TIMESTAMP
TIMESTAMP
Konversi tipe waktu dilakukan tanpa konversi zona waktu. Kami merekomendasikan Anda menggunakan jenis konversi tipe waktu ini untuk membaca data dari atau menulis data ke Hologres.
TIMESTAMP LTZ
TIMESTAMPTZ
Data tipe TIMESTAMP LTZ dan TIMESTAMPTZ dinyatakan sebagai waktu tanpa zona waktu saat Realtime Compute for Apache Flink membaca data dari atau menulis data ke Hologres. Ini dapat menyebabkan deviasi data.
Sebagai contoh, jika data tipe TIMESTAMP_LTZ dalam Realtime Compute for Apache Flink adalah 2024-03-19T04:00:00Z, waktu tanpa zona waktu di Shanghai (UTC+8) adalah 2024-03-19T12:00:00. Namun, ketika data ditulis ke Hologres, 2024-03-19T04:00:00 digunakan sebagai waktu tanpa zona waktu dan dikonversi menjadi 2024-03-19T04:00:00+08 dari tipe TIMESTAMPTZ dalam Hologres. Ini menyebabkan deviasi data selama 8 jam.
TIMESTAMP
TIMESTAMPTZ
Konversi zona waktu dilakukan berdasarkan zona waktu JVM dalam lingkungan runtime alih-alih zona waktu Realtime Compute for Apache Flink. Ini berbeda dari konversi zona waktu dalam Realtime Compute for Apache Flink. Jika zona waktu Realtime Compute for Apache Flink berbeda dari zona waktu JVM, deviasi data mungkin terjadi. Kami merekomendasikan agar Anda membaca data dari dan menulis data ke Hologres berdasarkan zona waktu Realtime Compute for Apache Flink.
TIMESTAMP LTZ
TIMESTAMP