このトピックでは、Realtime Compute for Apache Flink でサポートされているすべてのビルトイン関数について説明します。
サポートされている関数
Ververica Runtime (VVR) 3.0.0 を使用する Realtime Compute for Apache Flink では、Apache Flink バージョン 1.12 に基づいて追加のビルトイン関数がサポートされています。詳細については、「スカラー関数」、「テーブル値関数」、および「集計関数」をご参照ください。次の表に、Apache Flink 1.15 に基づいて Realtime Compute for Apache Flink でサポートされているすべてのビルトイン関数を示します。
サポートされている関数は、Apache Flink のバージョンによって異なる場合があります。詳細については、「Flink V1.12 ビルトイン関数」、「Flink V1.13 ビルトイン関数」、「Flink V1.14 ビルトイン関数」、「Flink V1.15 ビルトイン関数」、「Flink V1.16 ビルトイン関数」、および「Flink V1.17 ビルトイン関数」をご参照ください。
ビルトイン関数がニーズを満たさない場合は、ユーザー定義関数 (UDF) を使用できます。詳細については、「概要」をご参照ください。
使用上の注意
VVR 11.1 以降、Table API クエリでビルトイン関数がサポートされています。
スカラー関数
カテゴリ | 関数 | 説明 |
比較関数 | value1 が value2 と等しい場合は true を返します。 | |
value1 が value2 と等しくない場合は true を返します。 | ||
value1 が value2 より大きい場合は true を返します。 | ||
value1 が value2 以上である場合は true を返します。 | ||
value1 が value2 より小さい場合は true を返します。 | ||
value1 が value2 以下である場合は true を返します。 | ||
値が NULL の場合は true を返します。 | ||
値が NULL でない場合は true を返します。 | ||
value1 と value2 のデータの型または値が異なる場合は true を返します。すべての NULL 値は等しいと見なされます。 | ||
value1 と value2 のデータの型と値が同じ場合は true を返します。すべての NULL 値は等しいと見なされます。 | ||
デフォルトで、または ASYMMETRIC キーワードが使用されている場合、次の条件が満たされると true を返します: value1 が value2 以上で、かつ value3 以下である。 | ||
value1 NOT BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3 | デフォルトで、または ASYMMETRIC キーワードが使用されている場合、次の条件が満たされると true を返します: value1 が value2 より小さいか、または value3 より大きい。 | |
string1 が string2 と一致する場合は true を返します。 | ||
string1 が string2 と一致しない場合は true を返します。 | ||
string1 が SQL 正規表現 string2 と一致する場合は true を返します。 | ||
string1 が SQL 正規表現 string2 と一致しない場合は true を返します。 | ||
value1 が値のリスト (value2, value3, …) に存在する場合は true を返します。 | ||
value1 が値のリスト (value2, value3, …) に存在しない場合は true を返します。 | ||
サブクエリに対して少なくとも 1 行のデータが返された場合は true を返します。 | ||
値がサブクエリの結果セットの 1 行のデータと等しい場合は true を返します。 | ||
値がサブクエリによって返されたデータの行に含まれていない場合は true を返します。 | ||
論理関数 | ビット単位の AND 演算を実行します。 | |
ビット単位の NOT 演算を実行します。 | ||
ビット単位の OR 演算を実行します。 | ||
ビット単位の XOR 演算を実行します。 | ||
boolean1 または boolean2 が true の場合は true を返します。 | ||
boolean1 と boolean2 が true の場合は true を返します。 | ||
boolean が false の場合は true を返します。boolean が true の場合は false を返します。boolean が不明な場合は不明を返します。 | ||
boolean が false の場合は true を返します。boolean が true または不明の場合は false を返します。 | ||
boolean が true または不明の場合は true を返します。boolean が false の場合は false を返します。 | ||
boolean が true の場合は true を返します。boolean が false または不明の場合は false を返します。 | ||
boolean が false または不明の場合は true を返します。boolean が true の場合は false を返します。 | ||
boolean が不明な場合は true を返します。boolean が true または false の場合は false を返します。 | ||
boolean が true または false の場合は true を返します。boolean が不明な場合は false を返します。 | ||
算術関数 | 数値を返します。 | |
数値とは逆の値を返します。 | ||
numeric1 と numeric2 の合計を返します。 | ||
numeric1 と numeric2 の差を返します。 | ||
numeric1 に numeric2 を掛けた積を返します。 | ||
numeric1 を numeric2 で割った商を返します。 | ||
numeric1 を numeric2 で割った余りを返します。 | ||
numeric1 の numeric2 乗の値を返します。 | ||
数値の絶対値を返します。 | ||
数値の平方根を返します。 | ||
基数 e を持つ数値の自然対数を返します。 | ||
基数 10 を持つ数値の自然対数を返します。 | ||
基数 2 を持つ数値の自然対数を返します。 | ||
入力パラメーターが 1 つ呼び出された場合は、numeric2 の自然対数を返します。2 つの入力パラメーターが呼び出された場合は、基数 numeric1 を持つ numeric2 の自然対数を返します。numeric2 の値は 0 より大きく、numeric1 の値は 1 より大きい必要があります。 | ||
e の numeric 乗の結果を返します。 | ||
数値を切り上げ、numeric 以上の最小の整数を返します。 | ||
数値を切り捨て、numeric 以下の最大の整数を返します。 | ||
数値のサインを返します。 | ||
数値のハイパーボリックサインを返します。戻り値は DOUBLE データ型です。 | ||
数値のコサインを返します。 | ||
数値のタンジェント値を返します。 | ||
数値のハイパーボリックタンジェント値を返します。戻り値は DOUBLE データ型です。 | ||
数値のコタンジェントを返します。 | ||
数値のアークサインを返します。 | ||
数値のアークコサインを返します。 | ||
数値のアークタンジェントを返します。 | ||
座標 (numeric1, numeric2) のアークタンジェントを返します。 | ||
数値のハイパーボリックコサインを返します。戻り値は DOUBLE データ型です。 | ||
ラジアン数値の度数を返します。 | ||
度数数値のラジアンを返します。 | ||
数値の符号を返します。 | ||
数値に対して INT の小数点以下の桁数に四捨五入された値を返します。 | ||
円周率に非常に近い値を返します。 | ||
e に非常に近い値を返します。 | ||
[0.0, 1.0) の範囲で疑似乱数の倍精度値を返します。 | ||
初期シード INT を使用して、[0.0, 1.0) の範囲で疑似乱数の倍精度値を返します。 | ||
[0, INT) の範囲で疑似乱数の整数を返します。 | ||
初期シード INT1 を使用して、[0, INT2) の範囲で疑似乱数の整数を返します。 | ||
RFC 4122 Type 4 に基づいて、汎用一意識別子 (UUID) 文字列を返します。UUID 文字列は疑似ランダムに生成されます。 | ||
INTEGER データ型の文字列をバイナリ形式で返します。 | ||
整数の NUMERIC 値または文字列を 16 進数形式で返します。 | ||
integer2 で指定された小数点以下の桁数に切り捨てられた数値を返します。 | ||
16 進数文字列式を BINARY に変換します。 | ||
指定されたパーセンテージで expr の正確なパーセンタイル値を返します。 | ||
文字列関数 | string1 と string2 の連結を返します。 | |
文字列の文字数を返します。 | ||
大文字の文字列を返します。 | ||
小文字の文字列を返します。 | ||
string2 内で string1 が最初に現れる位置を返します。位置は 1 から始まります。string1 が string2 に存在しない場合は 0 を返します。 | ||
string2 から string1 で始まる、終わる、または始まって終わる文字列を削除し、結果を返します。 この関数は、TRAILING パラメーターにない文字が存在するまで、文字列の末尾にあるすべての文字を削除します。たとえば、TRIM(TRAILING 'fe' from 'abcdef') は abcd を返します。 | ||
文字列の左側のスペースを削除します。 | ||
文字列の右側のスペースを削除します。 | ||
指定された文字列を int で指定された回数繰り返す文字列を返します。 | ||
指定された文字列を目的の文字列に置き換え、新しい文字列を返します。 | ||
OVERLAY(string1 PLACING string2 FROM integer1 [ FOR integer2 ]) | string1 内の integer1 で指定された位置から合計 integer2 文字を string2 に置き換え、新しい文字列を返します。デフォルトでは、integer2 は string2 の長さを指定します。 | |
文字列内の integer1 で指定された位置から始まり、integer2 で指定された長さを持つ部分文字列を返します。デフォルトでは、integer2 は位置 integer1 から文字列の末尾までの長さを指定します。 | ||
string1 内の string2 のすべての出現箇所を string3 に置き換え、新しい文字列を返します。string2 と string3 は重複しません。 | ||
string2 で指定された正規表現に基づいて string1 を分割し、integer で指定された位置の文字列を返します。 | ||
文字列を指定された形式の文字列に変換します。この形式では、各単語の最初の文字が大文字になり、各単語の他の文字は小文字になります。文字列内の各単語は、英数字のシーケンスを表します。 | ||
複数の文字列を連結し、新しい文字列を返します。入力パラメーターが NULL に設定されている場合は、NULL が返されます。 | ||
string1 で指定された区切り文字で string2, string3, … を連結した文字列を返します。 | ||
string1 を string2 で左詰めして、integer で指定された長さにします。 | ||
string1 を string2 で右詰めして、integer で指定された長さにします。 | ||
Base64 アルゴリズムを使用して string1 をデコードします。 | ||
Base64 アルゴリズムを使用して string1 をエンコードします。 | ||
文字列の最初の文字の ASCII コードを返します。 | ||
integer で指定された値と等価なバイナリ値を持つ ASCII 文字を返します。 | ||
US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16 などの指定されたエンコード形式で文字列をデコードします。 | ||
US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16 などの指定されたエンコード形式で文字列をエンコードします。 | ||
string1 内で string2 が最初に現れる位置を返します。 | ||
文字列から integer の長さの左端の文字を返します。 | ||
文字列から integer の長さの右端の文字を返します。 | ||
integer で指定された位置の後ろで、string2 内で string1 が最初に現れる位置を返します。 | ||
URL の特定の部分を解析し、取得した値を返します。 | ||
正規表現を使用して指定された文字列を検索し、検索結果に基づいてブール値を返します。 | ||
| ||
| ||
| ||
| ||
逆順の文字列を返します。 | ||
指定されたデリミタに基づいて文字列をいくつかのセグメントに分割し、指定された位置のフィールドを返します。 | ||
デリミタを使用して string1 をキーと値のペアに分割し、マップを返します。 | ||
文字列内の integer1 で指定された位置から始まる部分文字列を返します。部分文字列の長さは integer2 で指定されます。 | ||
printf スタイルのフォーマット文字列からフォーマットされた文字列を返します。 | ||
| ||
| ||
| ||
| ||
| ||
時間関数 | yyyy-MM-dd 形式の文字列から解析された SQL の日付値を返します。 | |
2 つの日付値の差を計算します。 | ||
指定された日付から指定された日数後の日付値を返します。 | ||
指定された日付から指定された日数前の日付値を返します。 | ||
HH:mm:ss 形式の文字列から解析された SQL の時間値を返します。 | ||
yyyy-MM-dd HH:mm:ss[.SSS] 形式の文字列から解析された SQL のタイムスタンプを返します。 | ||
dd hh:mm:ss.fff 形式の文字列から SQL のミリ秒単位の間隔を解析するか、yyyy-mm 形式の文字列から SQL の月単位の間隔を解析します。 | ||
ローカルタイムゾーンで現在の SQL 時間を返します。戻り値は TIME(0) 型です。 | ||
ローカルタイムゾーンで現在の SQL 時間を返します。戻り値は TIMESTAMP(3) 型です。 | ||
ローカルタイムゾーンで現在の SQL 時間を返します。この関数は LOCAL_TIME 関数と等価です。 | ||
ローカルタイムゾーンで現在の SQL 日付を返します。 | ||
ローカルタイムゾーンで現在の SQL タイムスタンプを返します。 | ||
ローカルタイムゾーンで現在の SQL タイムスタンプを返します。この関数は CURRENT_TIMESTAMP 関数と等価です。 | ||
ローカルタイムゾーンで現在の SQL タイムスタンプを返します。 | ||
temporal の timeintervalunit 部分から抽出された LONG データ型の値を返します。 | ||
SQL の日付値が属する年を返します。 | ||
SQL の日付値が属する四半期を返します。 | ||
SQL の日付値が属する月を返します。 | ||
SQL の日付値が属する年の週のシーケンス番号を返します。 | ||
SQL の日付値が属する年の日のシーケンス番号を返します。 | ||
SQL の日付値が属する月の日のシーケンス番号を返します。 | ||
SQL のタイムスタンプの時コンポーネントを返します。 | ||
SQL のタイムスタンプの分コンポーネントを返します。 | ||
SQL のタイムスタンプの秒コンポーネントを返します。 | ||
時点を timeintervalunit で指定された時間単位に切り捨てた値を返します。 | ||
時点を timeintervalunit で指定された時間単位に切り上げた値を返します。 | ||
(timepoint1, temporal1) と (timepoint2, temporal2) で定義された 2 つの時間間隔が重複する場合に true を返します。 | ||
STRING データ型の日付値を指定されたフォーマットに変換します。 | ||
TIMESTAMP データ型のデータを、指定されたタイムゾーンに基づいて指定されたフォーマットの文字列に変換します。 | ||
指定された時点に期間を追加して、新しい時点を返します。期間は timeintervalunit に interval を掛けたものと等価です。 | ||
timepoint1 と timepoint2 の間の時間間隔を返します。 | ||
日時文字列 string1 をタイムゾーン string2 からタイムゾーン string3 の値に変換します。日時文字列 string1 は、デフォルトの ISO タイムスタンプ形式 yyyy-MM-dd HH:mm:ss です。 | ||
VARCHAR データ型の日付値を返します。 | ||
日付値を UNIX タイムスタンプに変換します。 | ||
INT または VARCHAR データ型の日付値を DATE データ型に変換します。 | ||
時間を TIMESTAMP_LTZ データ型の値に変換します。時間は UNIX タイムスタンプです。単位: ミリ秒または秒。 | ||
UTC+0 タイムゾーンで string2 の形式の string1 をタイムスタンプに変換します。デフォルトでは、string2 で指定された形式は yyyy-MM-dd HH:mm:ss です。 | ||
VARCHAR データ型の日付値を、指定されたタイムゾーンに基づいて TIMESTAMP データ型に変換します。 | ||
rowtime で指定された特定の時間列プロパティの現在のウォーターマークを返します。 | ||
条件付き関数 | 最初の値が値のリスト (valueX_1, valueX_2, …) に含まれている場合、resultX を返します。 | |
CASE WHEN condition1 THEN result1 (WHEN condition2 THEN result2)* (ELSE result_z) END | 最初の条件 X が満たされたときに resultX を返します。 | |
value1 が value2 と等しい場合は NULL を返します。value1 が value2 と等しくない場合は value1 を返します。 | ||
value1, value2, … から最初の NULL でない値を返します。 | ||
条件が満たされた場合は true_value を返します。条件が満たされない場合は false_value を返します。 | ||
入力パラメーターが NULL の場合は null_replacement を返します。入力パラメーターが NULL でない場合は入力パラメーターを返します。 | ||
文字列のすべての文字が文字である場合は true を返します。文字列のいずれかの文字が文字でない場合は false を返します。 | ||
文字列が有効な数値に解析できる場合は true を返します。文字列が有効な数値に解析できない場合は false を返します。 | ||
文字列のすべての文字が数字である場合は true を返します。文字列のいずれかの文字が数字でない場合は false を返します。 | ||
入力パラメーターの最大値を返します。入力パラメーターが NULL に設定されている場合は NULL を返します。 | ||
入力パラメーターの最小値を返します。入力パラメーターが NULL に設定されている場合は NULL を返します。 | ||
データ型変換関数 | 数値または文字に対して基数変換を実行します。 | |
type に変換された新しい値を返します。 | ||
入力式のデータ型の文字列表現を返します。 | ||
コレクション関数 | 配列内の要素の数を返します。 | |
配列内の INT で指定された位置にある要素を返します。 | ||
カーディナリティが 1 の配列の唯一の要素を返します。 | ||
マップ内のエントリ数を返します。 | ||
マップ内の指定されたキーに対応する値を返します。 | ||
JSON 関数 | 指定された文字列が有効な JSON 文字列であるかどうかを判断します。 | |
JSON_EXISTS(jsonValue, path [ { TRUE | FALSE | UNKNOWN | ERROR } ON ERROR ]) | JSON 文字列が指定されたパス検索条件を満たすかどうかを判断します。 | |
値をシリアル化された値を含む JSON 文字列にシリアル化します。 | ||
JSON 文字列から指定されたパスの式を抽出します。 | ||
JSON 文字列から JSON 値を抽出します。 | ||
JSON_OBJECT([[KEY] key VALUE value]* [ { NULL | ABSENT } ON NULL ]) | キーと値のペアのリストから JSON オブジェクトを生成します。 | |
JSON_OBJECTAGG([KEY] key VALUE value [ { NULL | ABSENT } ON NULL ]) | キーと値の式を JSON オブジェクトに集約します。 | |
値のリストから JSON 配列を生成します。 | ||
項目を配列に集約して JSON オブジェクトを生成します。 | ||
文字列を二重引用符で囲んで JSON 値として引用します。 | ||
JSON 値の引用符を外します。 | ||
値構築関数 | -- implicit constructor with parenthesis (value1 [, value2]*) | 値のリスト (value1, value2, …) から作成されたデータの行を返します。 |
値のリスト (value1, value2, …) から作成された配列を返します。 | ||
キーと値のペアのリスト ((value1, value2), (value3, value4), …) から作成されたマップを返します。 | ||
値取得関数 | 名前によって、Tuple や POJO などの Flink の複合データ型のフィールドの値を抽出します。 | |
Tuple や POJO などの Flink の複合データ型のサブタイプを個別のフィールドに変換します。 | ||
グループ化関数 | グループ化キーの組み合わせを一意に識別する整数を返します。 | |
GROUPING(expression1 [, expression2]* ) | GROUPING_ID(expression1 [, expression2]* ) | 指定されたグループ化式のビットベクターを返します。 | |
ハッシュ関数 | 32 桁の 16 進数文字列の形式で、文字列の MD5 ハッシュ値を返します。 | |
40 桁の 16 進数文字列の形式で、文字列の SHA-1 ハッシュ値を返します。 | ||
56 桁の 16 進数文字列の形式で、文字列の SHA-224 ハッシュ値を返します。 | ||
64 桁の 16 進数文字列の形式で、文字列の SHA-256 ハッシュ値を返します。 | ||
96 桁の 16 進数文字列の形式で、文字列の SHA-384 ハッシュ値を返します。 | ||
128 桁の 16 進数文字列の形式で、文字列の SHA-512 ハッシュ値を返します。 | ||
SHA-224、SHA-256、SHA-384、SHA-512 などのハッシュ関数を使用してハッシュ値を返します。 | ||
hash32x86 メソッドを使用して、パラメーターの 32 ビットハッシュ値を指定します。 | ||
hash128x64 メソッドを使用して、パラメーターの 64 ビットハッシュ値を指定します。 | ||
その他の関数 | 指定された浮動小数点数が NAN (非数) であるかどうかを確認します。この関数は、Java の Double.isNan() または Float.isNan() 関数に似ています。 | |
split1 で指定されたデリミタに基づいて文字列をキーと値のペアに分割し、split2 で指定されたデリミタに基づいてキーと値のペアを分割し、キーに対応する値を返します。 |
テーブル値関数
関数 | 説明 |
from, from+1, from+2 ... to-1 のルールに基づいて一連のパディングデータを生成します。 | |
JSON 文字列から各パス文字列で表される値を取得します。 | |
split1 で指定されたキーと値のペアのデリミタに基づいて文字列をキーと値のペアに分割し、split2 で指定されたデリミタに基づいてキーと値のペアを分割し、key_name1 と key_name2 の値を返します。 | |
指定されたデリミタに基づいて文字列を部分文字列に分割し、部分文字列のリストを返します。 |
集計関数
関数 | 説明 |
COUNT([ ALL ] expression | DISTINCT expression1 [, expression2]*) | デフォルトで、または ALL キーワードが使用されている場合、NULL でない式の入力行数を返します。 |
入力行数を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式の平均値を計算します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式の合計を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式の最大値を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式の最小値を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式の母集団標準偏差を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式のサンプルの標準偏差を返します。 | |
デフォルトで、または ALL キーワードが使用された場合、すべての入力行における式のサンプルの標準偏差を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行の式のサンプル分散を返します。 | |
デフォルトで、または ALL キーワードが使用されている場合、すべての入力行にわたる複数の式を返します。 | |
この関数は VAR_SAMP() 関数と等価です。 | |
値のグループ内の値のランクを返します。 | |
値のグループ内の値のランクを返します。結果は 1 と以前に割り当てられたランク値の合計です。 | |
ウィンドウパーティション内の行のシーケンスに基づいて行のシーケンス番号を計算します。行番号は 1 から始まります。 | |
ウィンドウ内の現在の行に続くオフセット行のデータで式値を返します。 説明 LEAD 関数は、デプロイメントがストリーミングモードの場合はサポートされません。 | |
ウィンドウ内の現在の行に先行するオフセット行のデータで式値を返します。 | |
文字列式の値を連結し、値をデリミタで区切ります。 | |
デプロイメントのパフォーマンスを向上させます。 | |
データストリームの最初の NULL でないレコードを返します。 | |
データストリームの最後の NULL でないレコードを返します。 |