All Products
Search
Document Center

Realtime Compute for Apache Flink:Fungsi Bawaan Flink CDC

Last Updated:Mar 10, 2026

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 TIME(0).

LOCALTIMESTAMP

Mengembalikan stempel waktu lokal di zona waktu saat ini. Tipe pengembalian adalah TIMESTAMP(3).

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 TIMESTAMP_LTZ(3).

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
  1. String format kompatibel dengan Java SimpleDateFormat.

  2. Format string output adalah yyyy-MM-dd HH:mm:ss.

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 yyyy-MM-dd.

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 yyyy-MM-ddHH:mm:ss.

TO_TIMESTAMP_LTZ(string1[, string2][, string3])

Mengurai string stempel waktu string1 menjadi tipe TIMESTAMP_LTZ di zona waktu string3 menggunakan string format string2.

Catatan
  1. Jika Anda tidak menentukan string2, format default adalah yyyy-MM-dd HH:mm:ss.SSS.

  2. Jika Anda tidak menentukan string3, zona waktu default adalah UTC.

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 yyyy-MM-ddHH:mm:ss.

UNIX_TIMESTAMP()

Mengembalikan Stempel waktu UNIX saat ini dalam satuan detik.

UNIX_TIMESTAMP(string1[, string2])

Mengonversi string datetime string1 ke format string2.

Catatan

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, REGEXP_REPLACE('foobar', 'oo|ar', '__') mengembalikan f__b__.

SUBSTRING(string FROM integer1 [ FOR integer2 ])

Mengembalikan substring dari string yang dimulai pada posisi integer1 dan berakhir pada posisi integer2.

Catatan

Jika Anda menghilangkan FOR integer2, substring tersebut akan berlanjut hingga akhir string.

CONCAT(string1, string2,…)

Mengembalikan string baru yang dibentuk dengan menggabungkan string1, string2, dan seterusnya.

Contoh, CONCAT('AA', 'BB', 'CC') mengembalikan AABBCC.

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 STRING sebagai tipe target. Gunakan tipe setara VARCHAR sebagai gantinya.

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

Catatan

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

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

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 NULL jika string bernilai NULL.

SHA1(string)

Mengembalikan hash SHA-1 dari string sebagai string heksadesimal 40 karakter. Mengembalikan NULL jika string bernilai NULL.

SHA224(string)

Mengembalikan hash SHA-224 dari string sebagai string heksadesimal 56 karakter. Mengembalikan NULL jika string bernilai NULL.

SHA256(string)

Mengembalikan Hash SHA-256 dari string sebagai string heksadesimal 64 karakter. Mengembalikan NULL jika string bernilai NULL.

SHA384(string)

Mengembalikan hash SHA-384 dari string sebagai string heksadesimal 96 karakter. Mengembalikan NULL jika string bernilai NULL.

SHA512(string)

Mengembalikan hash SHA-512 dari string sebagai string heksadesimal 128 karakter. Mengembalikan NULL jika string bernilai NULL.

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 NULL jika string atau hashLength bernilai NULL.

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:

  1. Format array (ARRAY/VARIANT)
    Deskripsi: Gunakan nest_col[integer] untuk mengambil elemen pada indeks yang ditentukan (pengindeksan dimulai dari 1).

    Contoh: Jika nest_col adalah [{"id": 1, "name": "Project A"}, {"id": 2, "name": "Project B"}].

    Tindakan: Jalankan nest_col[1]. Hasil: {"id": 1, "name": "Project A"}.

  2. Format tabel hash (MAP/VARIANT)

    Deskripsi: Gunakan nest_col[string] untuk mengambil nilai untuk kunci yang ditentukan.

    Contoh: Jika nest_col adalah {"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:

  1. Tipe bidang asli adalah ARRAY[T], dengan tipe internal T.
    Menggunakan nest_col[integer] mengembalikan nilai bertipe T.

  2. Bidang asli bertipe MAP<K, V>, dengan kunci bertipe K dan nilai bertipe T.

    Gunakan nest_col[string] untuk mengambil elemen berdasarkan kuncinya. Tipe pengembaliannya adalah V.

  3. Tipe bidang asli adalah VARIANT.

    Tipe pengembalian saat mengakses elemen menggunakan nest_col[integer] atau nest_col[string] selalu VARIANT.