Realtime Compute for Apache Flink mendukung tiga kategori fungsi bawaan: fungsi skalar, Fungsi bernilai tabel, dan Fungsi agregat. Jika fungsi bawaan tidak mencakup kasus penggunaan Anda, gunakan user-defined functions (UDFs) sebagai gantinya.
Tabel berikut mencantumkan semua fungsi bawaan yang tersedia di Realtime Compute for Apache Flink berdasarkan Apache Flink 1.15. Fungsi yang tersedia bervariasi tergantung versi Apache Flink — lihat dokumentasi resmi untuk 1.12, 1.13, 1.14, 1.15, 1.16, dan 1.17. Ververica Runtime (VVR) 3.0.0 juga menambahkan fungsi bawaan tambahan di luar yang tersedia di Apache Flink 1.12 — lihat Scalar functions, Table-valued functions, dan Aggregate functions.
Batasan
VVR 11.1 dan versi lebih baru mendukung pemanggilan fungsi bawaan dalam Pekerjaan Table API menggunakan teks SQL.
Scalar functions
Fungsi perbandingan
| Function | Description |
|---|---|
| value1 = value2 | Mengembalikan TRUE jika value1 sama dengan value2. |
| value1 \<\> value2 | Mengembalikan TRUE jika value1 tidak sama dengan value2. |
| value1 \> value2 | Mengembalikan TRUE jika value1 lebih besar dari value2. |
| value1 \>= value2 | Mengembalikan TRUE jika value1 lebih besar dari atau sama dengan value2. |
| value1 \< value2 | Mengembalikan TRUE jika value1 kurang dari value2. |
| value1 \<= value2 | Mengembalikan TRUE jika value1 kurang dari atau sama dengan value2. |
| value IS NULL | Mengembalikan TRUE jika value adalah NULL. |
| value IS NOT NULL | Mengembalikan TRUE jika value bukan NULL. |
| value1 IS DISTINCT FROM value2 | Mengembalikan TRUE jika value1 dan value2 berbeda dalam tipe data atau nilainya. Nilai NULL diperlakukan sebagai sama. |
| value1 IS NOT DISTINCT FROM value2 | Mengembalikan TRUE jika value1 dan value2 memiliki tipe data dan nilai yang sama. Nilai NULL diperlakukan sebagai sama. |
| value1 BETWEEN \[ASYMMETRIC | SYMMETRIC\] value2 AND value3 | Secara default (atau dengan ASYMMETRIC), mengembalikan TRUE jika value1 berada di antara value2 dan value3 (inklusif). |
| value1 NOT BETWEEN \[ASYMMETRIC | SYMMETRIC\] value2 AND value3 | Secara default (atau dengan ASYMMETRIC), mengembalikan TRUE jika value1 kurang dari value2 atau lebih besar dari value3. |
| string1 LIKE string2 \[ESCAPE char\] | Mengembalikan TRUE jika string1 cocok dengan pola string2. |
| string1 NOT LIKE string2 \[ESCAPE char\] | Mengembalikan TRUE jika string1 tidak cocok dengan pola string2. |
| string1 SIMILAR TO string2 \[ESCAPE char\] | Mengembalikan TRUE jika string1 cocok dengan ekspresi reguler SQL string2. |
| string1 NOT SIMILAR TO string2 \[ESCAPE char\] | Mengembalikan TRUE jika string1 tidak cocok dengan ekspresi reguler SQL string2. |
| value1 IN (value2 \[, value3\]\*) | Mengembalikan TRUE jika value1 ada dalam daftar tersebut. |
| value1 NOT IN (value2 \[, value3\]\*) | Mengembalikan TRUE jika value1 tidak ada dalam daftar tersebut. |
| EXISTS (sub-query) | Mengembalikan TRUE jika subquery mengembalikan setidaknya satu baris. |
| value IN (sub-query) | Mengembalikan TRUE jika value sama dengan baris dalam set hasil subquery. |
| value NOT IN (sub-query) | Mengembalikan TRUE jika value tidak ada dalam baris apa pun yang dikembalikan oleh subquery. |
Fungsi logis
| Function | Description |
|---|---|
| BITAND | Melakukan operasi bitwise AND. |
| BITNOT | Melakukan operasi bitwise NOT. |
| BITOR | Melakukan operasi bitwise OR. |
| BITXOR | Melakukan operasi bitwise XOR. |
| boolean1 OR boolean2 | Mengembalikan TRUE jika boolean1 atau boolean2 adalah TRUE. |
| boolean1 AND boolean2 | Mengembalikan TRUE jika baik boolean1 maupun boolean2 adalah TRUE. |
| NOT boolean | Mengembalikan TRUE jika boolean adalah FALSE; mengembalikan FALSE jika boolean adalah TRUE; mengembalikan UNKNOWN jika boolean adalah UNKNOWN. |
| boolean IS FALSE | Mengembalikan TRUE jika boolean adalah FALSE; mengembalikan FALSE jika boolean adalah TRUE atau UNKNOWN. |
| boolean IS NOT FALSE | Mengembalikan TRUE jika boolean adalah TRUE atau UNKNOWN; mengembalikan FALSE jika boolean adalah FALSE. |
| boolean IS TRUE | Mengembalikan TRUE jika boolean adalah TRUE; mengembalikan FALSE jika boolean adalah FALSE atau UNKNOWN. |
| boolean IS NOT TRUE | Mengembalikan TRUE jika boolean adalah FALSE atau UNKNOWN; mengembalikan FALSE jika boolean adalah TRUE. |
| boolean IS UNKNOWN | Mengembalikan TRUE jika boolean adalah UNKNOWN; mengembalikan FALSE jika boolean adalah TRUE atau FALSE. |
| boolean IS NOT UNKNOWN | Mengembalikan TRUE jika boolean adalah TRUE atau FALSE; mengembalikan FALSE jika boolean adalah UNKNOWN. |
Fungsi aritmetika
| Function | Description |
|---|---|
| + numeric | Mengembalikan nilai numerik. |
| - numeric | Mengembalikan negasi dari numeric. |
| numeric1 + numeric2 | Mengembalikan jumlah dari numeric1 dan numeric2. |
| numeric1 - numeric2 | Mengembalikan selisih dari numeric1 dan numeric2. |
| numeric1 \* numeric2 | Mengembalikan hasil kali dari numeric1 dan numeric2. |
| numeric1 / numeric2 | Mengembalikan hasil bagi dari numeric1 dibagi numeric2. |
| numeric1 % numeric2 | Mengembalikan sisa dari numeric1 dibagi numeric2. |
| POWER(numeric1, numeric2) | Mengembalikan numeric1 dipangkatkan dengan numeric2. |
| ABS(numeric) | Mengembalikan nilai absolut dari numeric. |
| SQRT(numeric) | Mengembalikan akar kuadrat dari numeric. |
| LN(numeric) | Mengembalikan logaritma natural (basis e) dari numeric. |
| LOG10(numeric) | Mengembalikan logaritma basis-10 dari numeric. |
| LOG2(numeric) | Mengembalikan logaritma basis-2 dari numeric. |
| LOG(numeric2) | LOG(numeric1, numeric2) | Dengan satu argumen, mengembalikan logaritma natural dari numeric2. Dengan dua argumen, mengembalikan logaritma basis-numeric1 dari numeric2. Memerlukan numeric2 > 0 dan numeric1 > 1. |
| EXP(numeric) | Mengembalikan e dipangkatkan dengan numeric. |
| CEIL(numeric) | CEILING(numeric) | Membulatkan numeric ke atas ke bilangan bulat terdekat. |
| FLOOR(numeric) | Membulatkan numeric ke bawah ke bilangan bulat terdekat. |
| SIN(numeric) | Mengembalikan sinus dari numeric. |
| SINH(numeric) | Mengembalikan sinus hiperbolik dari numeric. Mengembalikan DOUBLE. |
| COS(numeric) | Mengembalikan kosinus dari numeric. |
| TAN(numeric) | Mengembalikan tangen dari numeric. |
| TANH(numeric) | Mengembalikan tangen hiperbolik dari numeric. Mengembalikan DOUBLE. |
| COT(numeric) | Mengembalikan kotangen dari numeric. |
| ASIN(numeric) | Mengembalikan arcsinus dari numeric. |
| ACOS(numeric) | Mengembalikan arccosinus dari numeric. |
| ATAN(numeric) | Mengembalikan arctangen dari numeric. |
| ATAN2(numeric1, numeric2) | Mengembalikan arctangen dari koordinat (numeric1, numeric2). |
| COSH(numeric) | Mengembalikan kosinus hiperbolik dari numeric. Mengembalikan DOUBLE. |
| DEGREES(numeric) | Mengonversi radian ke derajat. |
| RADIANS(numeric) | Mengonversi derajat ke radian. |
| SIGN(numeric) | Mengembalikan tanda dari numeric. |
| ROUND(numeric, INT) | Membulatkan numeric ke INT tempat desimal. |
| PI() | Mengembalikan nilai yang mendekati π. |
| E() | Mengembalikan nilai yang mendekati e. |
| RAND() | Mengembalikan bilangan double pseudorandom dalam [0.0, 1.0). |
| RAND(INT) | Mengembalikan bilangan double pseudorandom dalam [0.0, 1.0) dengan seed INT. |
| RAND_INTEGER(INT) | Mengembalikan bilangan bulat pseudorandom dalam [0, INT). |
| RAND_INTEGER(INT1, INT2) | Mengembalikan bilangan bulat pseudorandom dalam [0, INT2) dengan seed INT1. |
| UUID() | Mengembalikan string UUID pseudorandom (RFC 4122 Tipe 4). |
| BIN(INT) | Mengembalikan representasi string biner dari INT. |
| HEX(numeric) | HEX(string) | Mengembalikan representasi string heksadesimal dari angka atau string. |
| TRUNCATE(numeric1, integer2) | Memotong numeric1 hingga integer2 tempat desimal. |
| UNHEX(expr) | Mengonversi string heksadesimal ke BINARY. |
| PERCENTILE(expr, percentage\[, frequency\]) | Mengembalikan nilai persentil eksak dari expr pada persentase yang ditentukan. |
Fungsi string
| Function | Description |
|---|---|
| string1 || string2 | Mengembalikan penggabungan string1 dan string2. |
| CHAR_LENGTH(string) | CHARACTER_LENGTH(string) | Mengembalikan jumlah karakter dalam string. |
| UPPER(string) | Mengembalikan string dalam huruf kapital. |
| LOWER(string) | Mengembalikan string dalam huruf kecil. |
| POSITION(string1 IN string2) | Mengembalikan posisi (berbasis 1) kemunculan pertama string1 dalam string2. Mengembalikan 0 jika tidak ditemukan. |
| TRIM(\[BOTH | LEADING | TRAILING\] string1 FROM string2) | Menghapus kemunculan awal, akhir, atau keduanya dari string1 dalam string2. Misalnya, TRIM(TRAILING 'fe' FROM 'abcdef') mengembalikan 'abcd'. |
| LTRIM(string) | Menghapus spasi awal dari string. |
| RTRIM(string) | Menghapus spasi akhir dari string. |
| REPEAT(string, int) | Mengembalikan string yang diulang sebanyak int kali. |
| REGEXP_REPLACE | Mengganti kemunculan pola dalam string dan mengembalikan hasilnya. |
| OVERLAY(string1 PLACING string2 FROM integer1 \[FOR integer2\]) | Mengganti integer2 karakter dalam string1 mulai dari integer1 dengan string2. Nilai default integer2 adalah panjang string2. |
| SUBSTRING(string FROM integer1 \[FOR integer2\]) | Mengembalikan substring dari string mulai dari integer1. Jika integer2 ditentukan, membatasi panjang menjadi integer2 karakter. |
| REPLACE(string1, string2, string3) | Mengganti semua kemunculan non-overlapping dari string2 dalam string1 dengan string3. |
| REGEXP_EXTRACT(string1, string2\[, integer\]) | Membagi string1 menggunakan ekspresi reguler string2 dan mengembalikan substring pada posisi integer. |
| INITCAP(string) | Mengubah huruf pertama setiap kata menjadi kapital dan sisanya menjadi huruf kecil. |
| CONCAT(string1, string2, ...) | Menggabungkan beberapa string. Mengembalikan NULL jika ada input yang NULL. |
| CONCAT_WS(string1, string2, string3, ...) | Menggabungkan string2, string3, ... dengan pemisah string1. |
| LPAD(string1, integer, string2) | Menambahkan string2 di sebelah kiri string1 hingga mencapai panjang integer. |
| RPAD(string1, integer, string2) | Menambahkan string2 di sebelah kanan string1 hingga mencapai panjang integer. |
| FROM_BASE64(string) | Mendekode string yang diencode Base64. |
| TO_BASE64(string) | Mengencode string menggunakan Base64. |
| ASCII(string) | Mengembalikan kode ASCII dari karakter pertama dalam string. |
| CHR(integer) | Mengembalikan karakter ASCII yang sesuai dengan integer. |
| DECODE(binary, string) | Mendekode binary menggunakan encoding yang ditentukan (US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, atau UTF-16). |
| ENCODE(string1, string2) | Mengencode string1 menggunakan encoding yang ditentukan oleh string2 (US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, atau UTF-16). |
| INSTR(string1, string2) | Mengembalikan posisi kemunculan pertama string2 dalam string1. |
| LEFT(string, integer) | Mengembalikan integer karakter paling kiri dari string. |
| RIGHT(string, integer) | Mengembalikan integer karakter paling kanan dari string. |
| LOCATE(string1, string2\[, integer\]) | Mengembalikan posisi kemunculan pertama string1 dalam string2, dimulai dari integer. |
| PARSE_URL | Mengurai bagian tertentu dari URL dan mengembalikan nilainya. |
| REGEXP | Mencari pola ekspresi reguler dalam string dan mengembalikan boolean. |
| REGEXP_SUBSTR(str, regex) | Mengembalikan substring pertama dalam str yang cocok dengan regex. |
| REGEXP_INSTR(str, regex) | Mengembalikan posisi substring pertama dalam str yang cocok dengan regex. |
| REGEXP_COUNT(str, regex) | Mengembalikan jumlah kali str cocok dengan regex. |
| REGEXP_EXTRACT_ALL(str, regex\[, extractIndex\]) | Mengekstraksi semua substring dalam str yang cocok dengan regex dan sesuai dengan grup extractIndex. |
| REVERSE(string) | Mengembalikan string dalam urutan terbalik. |
| SPLIT_INDEX | Membagi string berdasarkan pembatas dan mengembalikan elemen pada posisi yang ditentukan. |
| STR_TO_MAP(string1\[, string2, string3\]) | Membagi string1 menjadi pasangan kunci-nilai menggunakan pembatas dan mengembalikan map. |
| [SUBSTR(string\[, integer1\[, integer2\]\])](https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/functions/systemfunctions/#string-functions) | Mengembalikan substring dari string mulai dari integer1 dengan panjang integer2. |
| PRINTF(format\[, obj\]\*) | Mengembalikan string yang diformat menggunakan format gaya printf. |
| TRANSLATE(expr, fromStr, toStr) | Mengganti setiap karakter dalam fromStr dengan karakter yang sesuai dalam toStr. |
| ELT(index, expr\[, exprs\]\*) | Mengembalikan ekspresi pada posisi index (berbasis 1). |
| BTRIM(str\[, trimStr\]) | Menghapus karakter awal dan akhir dalam trimStr dari str. Default ke whitespace. |
| STARTSWITH(expr, startExpr) | Mengembalikan TRUE jika expr dimulai dengan startExpr. Mengembalikan TRUE jika startExpr kosong. |
| ENDSWITH(expr, endExpr) | Mengembalikan TRUE jika expr diakhiri dengan endExpr. Mengembalikan TRUE jika endExpr kosong. |
Fungsi waktu
| Function | Description |
|---|---|
| DATE string | Mengembalikan nilai DATE SQL yang diurai dari string dalam format yyyy-MM-dd. |
| DATEDIFF | Menghitung selisih antara dua nilai tanggal. |
| DATE_ADD | Mengembalikan tanggal yang merupakan jumlah hari tertentu setelah tanggal yang diberikan. |
| DATE_SUB | Mengembalikan tanggal yang merupakan jumlah hari tertentu sebelum tanggal yang diberikan. |
| TIME string | Mengembalikan nilai TIME SQL yang diurai dari string dalam format HH:mm:ss. |
| TIMESTAMP string | Mengembalikan nilai TIMESTAMP SQL yang diurai dari string dalam format yyyy-MM-dd HH:mm:ss[.SSS]. |
| INTERVAL string range | Mengurai interval dalam milidetik dari format dd hh:mm:ss.fff atau dalam bulan dari format yyyy-mm. |
| LOCALTIME | Mengembalikan waktu lokal saat ini sebagai SQL TIME(0). |
| LOCALTIMESTAMP | Mengembalikan timestamp lokal saat ini sebagai SQL TIMESTAMP(3). |
| CURRENT_TIME | Mengembalikan waktu lokal saat ini sebagai SQL TIME. Setara dengan LOCALTIME. |
| CURRENT_DATE | Mengembalikan tanggal lokal saat ini sebagai SQL DATE. |
| CURRENT_TIMESTAMP | Mengembalikan timestamp lokal saat ini sebagai SQL TIMESTAMP. |
| NOW() | Mengembalikan timestamp lokal saat ini sebagai SQL TIMESTAMP. Setara dengan CURRENT_TIMESTAMP. |
| CURRENT_ROW_TIMESTAMP() | Mengembalikan timestamp lokal saat ini sebagai SQL TIMESTAMP. |
| EXTRACT(timeintervalunit FROM temporal) | Mengekstraksi nilai LONG untuk timeintervalunit yang ditentukan dari temporal. |
| YEAR(date) | Mengembalikan komponen tahun dari nilai DATE SQL. |
| QUARTER(date) | Mengembalikan komponen kuartal dari nilai DATE SQL. |
| MONTH(date) | Mengembalikan komponen bulan dari nilai DATE SQL. |
| WEEK(date) | Mengembalikan nomor minggu-dalam-tahun untuk nilai DATE SQL. |
| DAYOFYEAR(date) | Mengembalikan nomor hari-dalam-tahun untuk nilai DATE SQL. |
| DAYOFMONTH(date) | Mengembalikan nomor hari-dalam-bulan untuk nilai DATE SQL. |
| HOUR(timestamp) | Mengembalikan komponen jam dari nilai TIMESTAMP SQL. |
| MINUTE(timestamp) | Mengembalikan komponen menit dari nilai TIMESTAMP SQL. |
| SECOND(timestamp) | Mengembalikan komponen detik dari nilai TIMESTAMP SQL. |
| FLOOR(timepoint TO timeintervalunit) | Membulatkan timepoint ke bawah ke timeintervalunit terdekat. |
| CEIL(timepoint TO timeintervalunit) | Membulatkan timepoint ke atas ke timeintervalunit terdekat. |
| (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) | Mengembalikan TRUE jika dua interval waktu saling tumpang tindih. |
| DATE_FORMAT | Memformat nilai tanggal STRING menggunakan pola yang ditentukan. |
| DATE_FORMAT_TZ | Memformat nilai TIMESTAMP sebagai STRING dalam zona waktu dan format yang ditentukan. |
| TIMESTAMPADD(timeintervalunit, interval, timepoint) | Menambahkan interval ke timepoint dan mengembalikan timepoint baru. |
| TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | Mengembalikan interval waktu antara timepoint1 dan timepoint2. |
| CONVERT_TZ(string1, string2, string3) | Mengonversi string datetime1 dari zona waktu string2 ke zona waktu string3. Mengharapkan format yyyy-MM-dd HH:mm:ss. |
| FROM_UNIXTIME | Mengembalikan nilai tanggal VARCHAR dari timestamp Unix. |
| UNIX_TIMESTAMP | Mengonversi nilai tanggal ke timestamp Unix. |
| TO_DATE | Mengonversi nilai tanggal INT atau VARCHAR ke tipe data DATE. |
| TO_TIMESTAMP_LTZ(numeric, precision) | Mengonversi timestamp Unix ke TIMESTAMP_LTZ (milidetik atau detik). |
| TO_TIMESTAMP(string1\[, string2\]) | Mengonversi string1 dalam UTC+0 ke timestamp. Format default string2 adalah yyyy-MM-dd HH:mm:ss. |
| TO_TIMESTAMP_TZ | Mengonversi nilai tanggal VARCHAR ke TIMESTAMP dalam zona waktu yang ditentukan. |
| CURRENT_WATERMARK(rowtime) | Mengembalikan watermark saat ini untuk kolom rowtime. |
Fungsi kondisional
| Function | Description |
|---|---|
| CASE value WHEN value1\_1 \[, value1\_2\]\* THEN result1 (WHEN value2\_1 \[, value2\_2\]\* THEN result2)\* (ELSE result\_z) END | Mengembalikan resultX jika value cocok dengan nilai apa pun dalam daftar valueX. |
| CASE WHEN condition1 THEN result1 (WHEN condition2 THEN result2)\* (ELSE result\_z) END | Mengembalikan resultX untuk conditionX pertama yang bernilai TRUE. |
| NULLIF(value1, value2) | Mengembalikan NULL jika value1 sama dengan value2; jika tidak, mengembalikan value1. |
| COALESCE(value1, value2\[, value3\]\*) | Mengembalikan nilai pertama yang bukan NULL di antara argumen-argumen tersebut. |
| IF(condition, true\_value, false\_value) | Mengembalikan true\_value jika condition adalah TRUE; jika tidak, mengembalikan false\_value. |
| IFNULL(input, null\_replacement) | Mengembalikan null\_replacement jika input adalah NULL; jika tidak, mengembalikan input. |
| IS_ALPHA(string) | Mengembalikan TRUE jika semua karakter dalam string adalah huruf. |
| IS_DECIMAL(string) | Mengembalikan TRUE jika string dapat diurai sebagai angka yang valid. |
| IS_DIGIT(string) | Mengembalikan TRUE jika semua karakter dalam string adalah angka. |
| GREATEST(value1\[, value2\]\*) | Mengembalikan nilai maksimum di antara argumen-argumen tersebut. Mengembalikan NULL jika ada input yang NULL. |
| LEAST(value1\[, value2\]\*) | Mengembalikan nilai minimum di antara argumen-argumen tersebut. Mengembalikan NULL jika ada input yang NULL. |
Fungsi konversi tipe data
| Function | Description |
|---|---|
| CONV | Mengonversi nilai numerik atau karakter antar basis. |
| CAST(value AS type) | Mengonversi value ke tipe yang ditentukan. |
| TYPEOF(input) | TYPEOF(input, force\_serializable) | Mengembalikan representasi string dari tipe data input. |
Fungsi koleksi
| Function | Description |
|---|---|
| CARDINALITY(array) | Mengembalikan jumlah elemen dalam array. |
| array\[INT\] | Mengembalikan elemen pada posisi INT dalam array. |
| ELEMENT(array) | Mengembalikan satu-satunya elemen array jika kardinalitasnya 1. |
| CARDINALITY(map) | Mengembalikan jumlah entri dalam map. |
| map\[value\] | Mengembalikan nilai yang terkait dengan kunci yang ditentukan dalam map. |
Fungsi JSON
| Function | Description |
|---|---|
| IS JSON \[{ VALUE | SCALAR | ARRAY | OBJECT }\] | Mengembalikan TRUE jika input adalah string JSON yang valid. |
| JSON_EXISTS(jsonValue, path \[{ TRUE | FALSE | UNKNOWN | ERROR } ON ERROR\]) | Mengembalikan TRUE jika string JSON memenuhi kondisi jalur yang ditentukan. |
| JSON_STRING(value) | Meng-serialize value menjadi string JSON. |
| JSON_VALUE | Mengekstraksi nilai skalar pada jalur yang ditentukan dari string JSON. |
| JSON_QUERY(jsonValue, path \[wrapper\] \[ON EMPTY\] \[ON ERROR\]) | Mengekstraksi nilai JSON dari string JSON. |
| [JSON_OBJECT(\[\[KEY\] key VALUE value\]\* \[{ NULL | ABSENT } ON NULL\])](https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/functions/systemfunctions/#json-functions) | Membuat objek JSON dari pasangan kunci-nilai. |
| JSON_OBJECTAGG(\[KEY\] key VALUE value \[{ NULL | ABSENT } ON NULL\]) | Meng-agregasi ekspresi kunci-nilai menjadi objek JSON. |
| JSON_ARRAY(\[value\]\* \[{ NULL | ABSENT } ON NULL\]) | Membuat array JSON dari daftar nilai. |
| JSON_ARRAYAGG(items \[{ NULL | ABSENT } ON NULL\]) | Meng-agregasi item menjadi string array JSON. |
| JSON_QUOTE | Membungkus string dalam tanda kutip ganda sebagai nilai JSON. |
| JSON_UNQUOTE | Menghapus tanda kutip JSON dari nilai. |
Fungsi konstruksi nilai
| Function | Description |
|---|---|
| (value1 \[, value2\]\*) | Mengembalikan baris yang dibangun dari nilai-nilai yang diberikan. |
| [ARRAY\[value1 \[, value2\]\*\]](https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/functions/systemfunctions/#value-construction-functions) | Mengembalikan array yang dibangun dari nilai-nilai yang diberikan. |
| [MAP\[value1, value2 \[, value3, value4\]\*\]](https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/functions/systemfunctions/#value-construction-functions) | Mengembalikan map yang dibangun dari pasangan kunci-nilai yang diberikan. |
Fungsi pengambilan nilai
| Function | Description |
|---|---|
| tableName.compositeType.field | Mengekstraksi nilai bidang dari tipe komposit seperti Tuple atau POJO. |
| tableName.compositeType.\* | Memperluas tipe komposit seperti Tuple atau POJO menjadi bidang-bidang terpisah. |
Fungsi pengelompokan
| Function | Description |
|---|---|
| GROUP_ID() | Mengembalikan bilangan bulat yang secara unik mengidentifikasi kombinasi kunci pengelompokan. |
| GROUPING(expression1 \[, expression2\]\*) | GROUPING_ID(expression1 \[, expression2\]\*) | Mengembalikan vektor bit yang merepresentasikan status pengelompokan dari ekspresi-ekspresi yang diberikan. |
Fungsi hash
| Function | Description |
|---|---|
| MD5(string) | Mengembalikan Hash MD5 dari string sebagai string heksadesimal 32 karakter. |
| SHA1(string) | Mengembalikan hash SHA-1 dari string sebagai string heksadesimal 40 karakter. |
| SHA224(string) | Mengembalikan hash SHA-224 dari string sebagai string heksadesimal 56 karakter. |
| SHA256(string) | Mengembalikan Hash SHA-256 dari string sebagai string heksadesimal 64 karakter. |
| SHA384(string) | Mengembalikan hash SHA-384 dari string sebagai string heksadesimal 96 karakter. |
| SHA512(string) | Mengembalikan hash SHA-512 dari string sebagai string heksadesimal 128 karakter. |
| SHA2(string, hashLength) | Mengembalikan hash menggunakan SHA-224, SHA-256, SHA-384, atau SHA-512, tergantung pada hashLength. |
| MURMUR_HASH | Menghitung hash Murmur 32-bit dari input. |
| MURMUR_HASH_64 | Menghitung hash Murmur 64-bit dari input menggunakan algoritma Murmur 128. |
Scalar functions lainnya
| Function | Description |
|---|---|
| ISNAN | Mengembalikan TRUE jika bilangan titik mengambang yang ditentukan adalah NaN (setara dengan Double.isNaN() atau Float.isNaN() dalam Java). |
| KEYVALUE | Membagi string menjadi pasangan kunci-nilai menggunakan split1 sebagai pembatas pasangan dan split2 sebagai pembatas kunci-nilai, lalu mengembalikan nilai untuk kunci yang ditentukan. |
Table-valued functions
| Function | Description |
|---|---|
| GENERATE_SERIES | Menghasilkan rangkaian nilai mengikuti pola dari, dari+1, dari+2 ... sampai-1. |
| JSON_TUPLE | Mengekstraksi nilai pada setiap jalur yang ditentukan dari string JSON. |
| MULTI_KEYVALUE | Membagi string menjadi pasangan kunci-nilai menggunakan split1 sebagai pembatas pasangan dan split2 sebagai pembatas kunci-nilai, lalu mengembalikan nilai untuk kunci yang ditentukan. |
| STRING_SPLIT | Membagi string menjadi substring menggunakan pembatas yang ditentukan dan mengembalikannya sebagai daftar. |
| FROM_CHANGELOG(input => TABLE t [, ...]) |
Mengonversi aliran append-only dengan kode operasi menjadi aliran changelog yang mungkin berisi pembaruan. Untuk daftar parameter lengkap, semantik, dan penggunaan, lihat Changelog Conversion. Catatan
Didukung hanya di VVR 11.9 dan versi lebih baru. |
| TO_CHANGELOG(input => TABLE t [, ...]) |
Mengonversi aliran changelog menjadi aliran append-only dengan kode operasi eksplisit. Untuk daftar parameter lengkap, semantik, dan penggunaan, lihat Changelog Conversion. Catatan
Didukung hanya di VVR 11.9 dan versi lebih baru. |
Aggregate functions
Mulai dari VVR 11.6, fungsi varians dan deviasi standar menggunakan algoritma yang ditingkatkan untuk akurasi perhitungan yang lebih baik. Perubahan ini menyebabkan ketidakcocokan state — Pekerjaan yang menggunakan fungsi-fungsi ini memerlukan restart tanpa status. Untuk mempertahankan perilaku sebelumnya, atur table.exec.legacy-stddev-behaviour ke true. Fungsi yang terpengaruh: STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP.
| Function | Description |
|---|---|
| COUNT(\[ALL\] expression | DISTINCT expression1 \[, expression2\]\*) | Mengembalikan jumlah baris input yang bukan NULL untuk expression (ALL secara default). |
| COUNT(\*) | COUNT(1) | Mengembalikan jumlah total baris input. |
| AVG(\[ALL | DISTINCT\] expression) | Mengembalikan rata-rata expression di seluruh baris input (ALL secara default). |
| SUM(\[ALL | DISTINCT\] expression) | Mengembalikan jumlah expression di seluruh baris input (ALL secara default). |
| MAX(\[ALL | DISTINCT\] expression) | Mengembalikan nilai maksimum dari ekspresi di seluruh baris input (secara default menggunakan ALL). |
| MIN(\[ALL | DISTINCT\] expression) | Mengembalikan nilai minimum expression di seluruh baris input (ALL secara default). |
| STDDEV_POP(\[ALL | DISTINCT\] expression) | Mengembalikan simpangan baku populasi dari expression (ALL secara default). |
| STDDEV_SAMP(\[ALL | DISTINCT\] expression) | Mengembalikan deviasi standar sampel dari expression (ALL secara default). |
| VAR_POP(\[ALL | DISTINCT\] expression) | Mengembalikan varians populasi dari expression (ALL secara default). |
| VAR_SAMP(\[ALL | DISTINCT\] expression) | Mengembalikan varians sampel dari expression (ALL secara default). |
| COLLECT(\[ALL | DISTINCT\] expression) | Mengumpulkan nilai expression di seluruh baris input ke dalam multiset (ALL secara default). |
| VARIANCE(\[ALL | DISTINCT\] expression) | Setara dengan VAR_SAMP(). |
| RANK() | Mengembalikan peringkat nilai dalam kelompok nilai. |
| DENSE_RANK() | Mengembalikan peringkat padat dari nilai, bertambah 1 untuk setiap nilai berbeda. |
| ROW_NUMBER() | Mengembalikan nomor baris berurutan dalam partisi jendela, dimulai dari 1. |
| LEAD(expression \[, offset\] \[, default\]) | Mengembalikan nilai expression dari baris offset posisi setelah baris saat ini. Tidak didukung dalam mode streaming. |
| LAG(expression \[, offset\] \[, default\]) | Mengembalikan nilai expression dari baris offset posisi sebelum baris saat ini. |
| LISTAGG(expression \[, separator\]) | Menggabungkan nilai expression string, dipisahkan oleh separator. |
| APPROX_COUNT_DISTINCT | Mengembalikan perkiraan jumlah nilai unik. Gunakan sebagai ganti COUNT(DISTINCT) untuk meningkatkan performa Pekerjaan. |
| FIRST_VALUE | Mengembalikan Catatan pertama yang bukan NULL dalam aliran data. |
| LAST_VALUE | Mengembalikan Catatan terakhir yang bukan NULL dalam aliran data. |