Topik ini memperkenalkan fungsi bawaan yang dapat digunakan dalam ekspresi modul transform untuk Pekerjaan Ingesti Data Flink CDC.
Fungsi bawaan
Pekerjaan Ingesti Data Flink CDC menyediakan sekumpulan fungsi bawaan yang lengkap. Anda dapat menggunakan fungsi-fungsi tersebut secara langsung dalam ekspresi proyeksi dan filter pada modul transform.
Fungsi aritmetika
Function | Description |
numeric1 + numeric2 | Mengembalikan jumlah dari numeric1 dan numeric2. |
numeric1 - numeric2 | Mengembalikan numeric1 dikurangi numeric2. |
numeric1 * numeric2 | Mengembalikan numeric1 dikalikan dengan numeric2. |
numeric1 / numeric2 | Mengembalikan numeric1 dibagi dengan numeric2. |
numeric1 % numeric2 | Mengembalikan sisa bagi numeric1 modulo numeric2. |
ABS(numeric) | Mengembalikan nilai absolut dari numeric. |
CEIL(numeric) | Mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan numeric. |
FLOOR(numeric) | Mengembalikan bilangan bulat terbesar yang lebih kecil dari atau sama dengan numeric. |
ROUND(numeric, int) | Mengembalikan nilai numeric yang dibulatkan ke n tempat desimal. |
UUID() | Menghasilkan string pengidentifikasi unik global (UUID), seperti 3d3c68f7-f608-473f-b60c-b0c44ad4cc4e. Menggunakan RFC 4122 tipe 4 untuk menghasilkan UUID pseudo-acak. |
Fungsi waktu
Function | Description |
LOCALTIME | Mengembalikan waktu lokal di zona waktu saat ini. Tipe pengembalian adalah |
LOCALTIMESTAMP | Mengembalikan stempel waktu lokal di zona waktu saat ini. Tipe pengembalian adalah |
CURRENT_TIME | Mengembalikan waktu lokal di zona waktu saat ini. Fungsi ini setara dengan LOCALTIME. |
CURRENT_DATE | Mengembalikan tanggal lokal di zona waktu saat ini. |
CURRENT_TIMESTAMP | Mengembalikan stempel waktu lokal di zona waktu saat ini. Tipe pengembalian adalah |
NOW() | Mengembalikan stempel waktu lokal di zona waktu saat ini. Fungsi ini setara dengan CURRENT_TIMESTAMP. |
DATE_FORMAT(timestamp, string) | Memformat stempel waktu input menggunakan string format yang ditentukan. Catatan String format kompatibel dengan Java SimpleDateFormat. |
DATE_FORMAT_TZ(timestamp, string) | Memformat stempel waktu input sebagai string dalam zona waktu yang ditentukan. Catatan
|
DATE_FORMAT_TZ(timestamp, string1[, string2]) | Mengonversi stempel waktu input ke string yang diformat sebagai string1 dalam zona waktu string2. Catatan String format kompatibel dengan Java SimpleDateFormat. |
TIMESTAMPADD(timeintervalunit, interval, timepoint) | Mengembalikan titik waktu setelah menambahkan interval (dalam satuan timeintervalunit) ke timepoint. Nilai valid untuk timeintervalunit adalah SECOND, MINUTE, HOUR, DAY, MONTH, dan YEAR. |
DATE_ADD(timestamp, integer, string) | Mengonversi parameter pertama timestamp ke waktu lokal di zona waktu yang ditentukan oleh parameter ketiga string. Kemudian menambahkan jumlah hari yang ditentukan oleh parameter kedua integer. Mengembalikan hasilnya sebagai string dalam format yyyy-MM-dd. |
TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | Mengembalikan selisih antara timepoint1 dan timepoint2 dalam satuan timepointunit. Nilai valid untuk timepointunit adalah SECOND, MINUTE, HOUR, DAY, MONTH, dan YEAR. |
TO_DATE(string1[, string2]) | Mengurai string tanggal string1 menjadi tipe DATE menggunakan string format string2. Catatan Jika Anda tidak menentukan string2, format default adalah |
TO_TIMESTAMP(string1[, string2]) | Mengurai string stempel waktu string1 menjadi tipe TIMESTAMP tanpa zona waktu menggunakan string format string2. Catatan Jika Anda tidak menentukan string2, format default adalah |
TO_TIMESTAMP_LTZ(string1[, string2][, string3]) | Mengurai string stempel waktu string1 menjadi tipe TIMESTAMP_LTZ di zona waktu string3 menggunakan string format string2. Catatan
|
TO_TIMESTAMP_LTZ(bigint[, integer]) | Mengonversi parameter pertama (stempel waktu) ke tipe TIMESTAMP_LTZ dengan presisi yang ditentukan oleh parameter kedua. Catatan Parameter kedua harus bernilai 0 atau 3. |
FROM_UNIXTIME(numeric[, string]) | Mengonversi parameter pertama (detik sejak 1970-01-01 00:00:00 UTC) ke stempel waktu. Mengembalikan hasilnya sebagai string dalam format yang ditentukan oleh parameter kedua. Catatan Jika Anda tidak menentukan string, format default adalah |
UNIX_TIMESTAMP() | Mengembalikan Stempel waktu UNIX saat ini dalam satuan detik. |
UNIX_TIMESTAMP(string1[, string2]) | Mengonversi string datetime string1 ke format string2. |
Saat mengevaluasi ekspresi proyeksi dan filter, setiap subekspresi mengembalikan titik waktu yang sama. Misalnya, NOW() AS t1, NOW() AS t2, NOW() AS t3 selalu mengembalikan stempel waktu yang sama untuk t1, t2, dan t3, terlepas dari urutan evaluasi atau waktu eksekusi.
Fungsi string
Function | Description |
string1 || string2 | Mengembalikan gabungan dari string1 dan string2. Catatan Operator ini bukan operator OR logika. |
CHAR_LENGTH(string) | Mengembalikan jumlah karakter dalam string. |
UPPER(string) | Mengembalikan string dalam huruf kapital. |
LOWER(string) | Mengembalikan string dalam huruf kecil. |
TRIM(string1) | Anda dapat menghapus spasi awal dan akhir dari string. |
REGEXP_REPLACE(string1, string2, string3) | Mengganti semua substring dalam string1 yang cocok dengan pola string2 dengan string3. Contoh, |
SUBSTRING(string FROM integer1 [ FOR integer2 ]) | Mengembalikan substring dari string yang dimulai pada posisi integer1 dan berakhir pada posisi integer2. Catatan Jika Anda menghilangkan |
CONCAT(string1, string2,…) | Mengembalikan string baru yang dibentuk dengan menggabungkan string1, string2, dan seterusnya. Contoh, |
Fungsi konversi tipe
Gunakan sintaks CAST(<expression> AS <type>) untuk konversi tipe eksplisit. Konversi berikut didukung:
Source Type | Target Type | Description |
Any | VARCHAR Penting Anda tidak dapat menggunakan | Bidang dengan tipe apa pun dapat dikonversi ke string. |
NUMERIC STRING | BOOLEAN | Setiap literal string yang bukan '0' atau 'FALSE' dikonversi menjadi 'TRUE'. |
NUMERIC STRING | TINYINT | Hasilnya dipotong ke rentang -128 hingga 127. |
NUMERIC STRING | SMALLINT | Hasilnya dipotong ke rentang -32768 hingga 32767. |
NUMERIC STRING | INTEGER | Hasilnya dipotong ke rentang -2147483648 hingga 2147483647. |
NUMERIC STRING | BIGINT | Hasilnya dipotong ke rentang -9223372036854775808 hingga 9223372036854775807. |
NUMERIC STRING | FLOAT | |
NUMERIC | DOUBLE | |
NUMERIC | DECIMAL | |
STRING TIMESTAMP_TZ TIMESTAMP_LTZ | TIMESTAMP | String harus dalam format ISO_LOCAL_DATE_TIME yang valid. |
Fungsi perbandingan
Kecuali dinyatakan lain, fungsi bawaan berikut mengembalikan NULL jika ada parameter input yang bernilai NULL.
Function | Description |
value1 = value2 | Mengembalikan TRUE jika value1 sama dengan value2; jika tidak, mengembalikan FALSE. |
value1 <> value2 | Mengembalikan TRUE jika value1 tidak sama dengan value2; jika tidak, mengembalikan FALSE. |
value1 > value2 | Mengembalikan TRUE jika value1 lebih besar dari value2; jika tidak, mengembalikan FALSE. |
value1 >= value2 | Mengembalikan TRUE jika value1 lebih besar dari atau sama dengan value2; jika tidak, mengembalikan FALSE. |
value1 < value2 | Mengembalikan TRUE jika value1 lebih kecil dari value2; jika tidak, mengembalikan FALSE. |
value1 <= value2 | Mengembalikan TRUE jika value1 lebih kecil dari atau sama dengan value2; jika tidak, mengembalikan FALSE. |
value IS NULL | Mengembalikan TRUE jika value bernilai NULL; jika tidak, mengembalikan FALSE. |
value IS NOT NULL | Mengembalikan TRUE jika value tidak bernilai NULL; jika tidak, mengembalikan FALSE. |
value1 BETWEEN value2 AND value3 | Mengembalikan TRUE jika value1 berada di antara value2 dan value3 (inklusif); jika tidak, mengembalikan FALSE. |
value1 NOT BETWEEN value2 AND value3 | Mengembalikan TRUE jika value1 tidak berada di antara value2 dan value3 (inklusif); jika tidak, mengembalikan FALSE. |
string1 LIKE string2 | Mengembalikan TRUE jika string1 cocok dengan pola yang ditentukan oleh string2; jika tidak, mengembalikan FALSE. |
string1 NOT LIKE string2 | Mengembalikan TRUE jika string1 tidak cocok dengan pola yang ditentukan oleh string2; jika tidak, mengembalikan FALSE. |
value1 IN (value2 [, value3]* ) | Mengembalikan TRUE jika value1 ada dalam daftar [value2, value3, ...]; jika tidak, mengembalikan FALSE. |
value1 NOT IN (value2 [, value3]* ) | Mengembalikan TRUE jika value1 tidak ada dalam daftar [value2, value3, ...]; jika tidak, mengembalikan FALSE. |
Fungsi logika
Function | Description |
boolean1 OR boolean2 | Mengembalikan TRUE jika boolean1 atau boolean2 bernilai TRUE. |
boolean1 AND boolean2 | Mengembalikan TRUE jika boolean1 dan boolean2 keduanya bernilai TRUE. |
NOT boolean | Mengembalikan FALSE jika boolean bernilai TRUE. Mengembalikan TRUE jika boolean bernilai FALSE. |
boolean IS FALSE | Mengembalikan FALSE jika boolean bernilai TRUE. Mengembalikan TRUE jika boolean bernilai FALSE. |
boolean IS NOT FALSE | Mengembalikan TRUE jika boolean bernilai TRUE. Mengembalikan FALSE jika boolean bernilai FALSE. |
boolean IS TRUE | Mengembalikan TRUE jika boolean bernilai TRUE. Mengembalikan FALSE jika boolean bernilai FALSE. |
boolean IS NOT TRUE | Mengembalikan FALSE jika boolean bernilai TRUE. Mengembalikan TRUE jika boolean bernilai FALSE. |
Fungsi kondisional
Function | Description |
CASE value WHEN value1_1 [, value1_2]* THEN RESULT1 (WHEN value2_1 [, value2_2 ]* THEN result_2)* (ELSE result_z) END | Memeriksa apakah value sama dengan setiap nilai dalam klausa WHEN, secara berurutan. Mengembalikan RESULT dari klausa pertama yang cocok. Jika tidak ada klausa yang cocok, mengembalikan nilai dari klausa ELSE. Jika tidak ada klausa ELSE, mengembalikan NULL. |
CASE WHEN condition1 THEN result1 (WHEN condition2 THEN result2)* (ELSE result_z) END | Memeriksa apakah setiap kondisi dalam klausa WHEN bernilai true, secara berurutan. Mengembalikan RESULT dari kondisi pertama yang bernilai true. Jika tidak ada kondisi yang bernilai true, mengembalikan nilai dari klausa ELSE. Jika tidak ada klausa ELSE, mengembalikan NULL. |
COALESCE(value1 [, value2]*) | Mengembalikan nilai non-NULL pertama dalam daftar [value1, value2, ...]. Jika semua nilai bernilai NULL, mengembalikan NULL. |
IF(condition, true_value, false_value) | Mengembalikan true_value jika condition bernilai true; jika tidak, mengembalikan false_value. |
Fungsi Variant
Anda dapat menggunakan fungsi Variant dalam Pekerjaan Ingesti Data mulai dari Ververica Runtime (VVR) 11.6.
Function | Description |
PARSE_JSON(json_string[, allow_duplicate_keys]) | Mengurai string JSON menjadi Variant. Melemparkan error jika string JSON tidak valid. Untuk mengembalikan NULL alih-alih melemparkan error, gunakan fungsi Jika string JSON input berisi kunci duplikat, parser menyimpan bidang terakhir dengan kunci yang sama ketika allowDuplicateKeys bernilai true. Ketika allowDuplicateKeys bernilai false, parser melemparkan error. Secara default, allowDuplicateKeys bernilai false. |
TRY_PARSE_JSON(json_string[, allow_duplicate_keys]) | Mengurai string JSON menjadi Variant. Mengembalikan NULL jika string JSON tidak valid. Untuk melemparkan error alih-alih mengembalikan NULL, gunakan fungsi Jika string JSON input berisi kunci duplikat, parser menyimpan bidang terakhir dengan kunci yang sama ketika allowDuplicateKeys bernilai true. Ketika allowDuplicateKeys bernilai false, parser melemparkan error. Secara default, allowDuplicateKeys bernilai false. |
Fungsi hash
Anda dapat menggunakan fungsi hash dalam Pekerjaan Ingesti Data mulai dari Ververica Runtime (VVR) 11.6.
Function | Description |
MD5(string) | Mengembalikan Hash MD5 dari string sebagai string heksadesimal 32 karakter. Mengembalikan |
SHA1(string) | Mengembalikan hash SHA-1 dari string sebagai string heksadesimal 40 karakter. Mengembalikan |
SHA224(string) | Mengembalikan hash SHA-224 dari string sebagai string heksadesimal 56 karakter. Mengembalikan |
SHA256(string) | Mengembalikan Hash SHA-256 dari string sebagai string heksadesimal 64 karakter. Mengembalikan |
SHA384(string) | Mengembalikan hash SHA-384 dari string sebagai string heksadesimal 96 karakter. Mengembalikan |
SHA512(string) | Mengembalikan hash SHA-512 dari string sebagai string heksadesimal 128 karakter. Mengembalikan |
SHA2(string, hashLength) | Mengembalikan hash menggunakan fungsi keluarga SHA-2 (SHA-224, SHA-256, SHA-384, atau SHA-512). Parameter pertama string adalah string input. Parameter kedua hashLength menentukan panjang bit hasil (224, 256, 384, atau 512). Mengembalikan |
Akses tipe data bersarang
Anda dapat menggunakan operator [] untuk mengakses elemen tertentu dalam bidang data bersarang seperti ARRAY, MAP, dan VARIANT. Fitur ini tersedia mulai dari Ververica Runtime (VVR) 11.6.
Metode akses
Asumsikan sebuah bidang bersarang bernama nest_col. Metode akses bergantung pada format data internalnya:
Format array (ARRAY/VARIANT)
Deskripsi: Gunakannest_col[integer]untuk mengambil elemen pada indeks yang ditentukan (pengindeksan dimulai dari 1).Contoh: Jika
nest_coladalah[{"id": 1, "name": "Project A"}, {"id": 2, "name": "Project B"}].Tindakan: Jalankan
nest_col[1]. Hasil:{"id": 1, "name": "Project A"}.Format tabel hash (MAP/VARIANT)
Deskripsi: Gunakan
nest_col[string]untuk mengambil nilai untuk kunci yang ditentukan.Contoh: Jika
nest_coladalah{"id": 1, "name": "Project A"}.Tindakan: Jalankan
nest_col['id']. Hasil:1.
Untuk data bersarang kompleks, ulangi operator [] untuk mengakses elemen yang sangat bersarang.
Contoh: Jika nest_col adalah [{"id": 1, "name": "Project A"}, {"id": 2, "name": "Project B"}].
Tindakan: Jalankan nest_col[1]['id']. Hasil: 1.
Tipe pengembalian
Tipe pengembalian dari operator [] bergantung pada tipe internal dari bidang bersarang aslinya:
Tipe bidang asli adalah
ARRAY[T], dengan tipe internalT.
Menggunakannest_col[integer]mengembalikan nilai bertipeT.Bidang asli bertipe
MAP<K, V>, dengan kunci bertipeKdan nilai bertipeT.Gunakan
nest_col[string]untuk mengambil elemen berdasarkan kuncinya. Tipe pengembaliannya adalahV.Tipe bidang asli adalah
VARIANT.Tipe pengembalian saat mengakses elemen menggunakan
nest_col[integer]ataunest_col[string]selaluVARIANT.