このトピックでは、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 です。 | ||
ラジアン numeric の角度を返します。 | ||
数値の弧度を返します。 | ||
数値の符号を返します。 | ||
数値を INT 小数点以下に四捨五入した値を返します。 | ||
円周率に非常に近い値を返します。 | ||
e に非常に近い値を返します。 | ||
[0.0, 1.0) の範囲の擬似乱数倍精度値を返します。 | ||
INT を初期シード値として、[0.0, 1.0) の範囲の擬似乱数倍精度値を返します。 | ||
[0, INT) の範囲の擬似乱整数を返します。 | ||
INT1 を初期シードとして、[0, INT2) の範囲の擬似乱整数を返します。 | ||
RFC 4122 タイプ 4 に基づく汎用一意識別子(UUID)文字列を返します。 UUID 文字列は擬似乱数で生成されます。 | ||
INTEGER データ型の文字列をバイナリ形式で返します。 | ||
整数型の NUMERIC 値、または16進数フォーマットの文字列を返します。 | ||
integer2 で指定された小数点以下の桁数に切り捨てられた数値を返します。 | ||
指定されたパーセンテージにおける expr の正確なパーセンタイル値を返します。 | ||
文字列関数 | string1 と string2 を連結したものを返します。 | |
文字列の文字数を返します。 | ||
文字列を大文字で返します。 | ||
小文字の文字列を返します。 | ||
string2 内の string1 の最初の出現位置を返します。位置は 1 から始まります。 string1 が string2 内に存在しない場合は 0 を返します。 | ||
string2 から、string1 で開始、終了、または開始と終了する文字列を削除し、結果を返します。 この関数は、TRAILING パラメーターにない文字が存在するまで、文字列の末尾にあるすべての文字を削除します。たとえば、TRIM(TRAILING 'fe' from 'abcdef') は abcd を返します。 | ||
文字列の左側のスペースを削除します。 | ||
文字列の右側のスペースを削除します。 | ||
指定された文字列を int で指定された回数だけ繰り返す文字列を返します。 | ||
詳細については、「WordPress REST API」をご参照ください。 | ||
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 の右側を、integer で指定された長さになるまで string2 で埋めます。 | ||
Base64 アルゴリズムを使用して string1 をデコードします。 | ||
Base64 アルゴリズムを使用して string1 をエンコードします。 | ||
文字列の最初の文字の ASCII コードを返します。 | ||
整数で指定された値に相当するバイナリ値を持つ 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 で指定されます。 | ||
時間関数 | yyyy-MM-dd フォーマットの文字列から解析された SQL の日付値を返します。 | |
2 つの日付値の差を計算します。 | ||
指定された日数後の日付値を返します。 | ||
指定された日付より指定された日数だけ前の日付値を返します。 | ||
HH:mm:ss フォーマットの文字列から解析された SQL の時間値を返します。 | ||
yyyy-MM-dd HH:mm:ss[.SSS] フォーマットの文字列から解析された SQL のタイムスタンプを返します。 | ||
SQL において、ミリ秒単位のインターバルを dd hh:mm:ss.fff フォーマットの文字列から解析するか、または月単位のインターバルを yyyy-mm フォーマットの文字列から解析します。 | ||
ローカル タイムゾーンの SQL で現在の時刻を返します。戻り値の型は TIME(0) です。 | ||
ローカル タイムゾーンの現在の時刻を SQL で返します。戻り値の型は TIMESTAMP(3) です。 | ||
ローカル タイムゾーンの SQL で現在の時刻を返します。この関数は LOCAL_TIME 関数と同じです。 | ||
ローカル タイムゾーンの SQL で現在の日付を返します。 | ||
ローカル タイム ゾーンの SQL で現在のタイムスタンプを返します。 | ||
ローカル タイム ゾーンの SQL で現在のタイムスタンプを返します。この関数は CURRENT_TIMESTAMP 関数と同じです。 | ||
ローカル タイム ゾーンの SQL で現在のタイムスタンプを返します。 | ||
temporal の timeinteravlunit 部分から抽出された LONG データ型の値を返します。 | ||
SQL の日付値が含まれる年を返します。 | ||
SQL の日付値が含まれる四半期を返します。 | ||
SQL の日付値が属する月を返します。 | ||
SQL の日付値が含まれる年の週のシーケンス番号を返します。 | ||
SQL の日付値が含まれる年の通算日数を返します。 | ||
SQL の日付値が該当する月の何日目かを返します。 | ||
SQL でタイムスタンプの時成分を返します。 | ||
SQL でタイムスタンプの分の構成要素を返します。 | ||
SQL でタイムスタンプの秒コンポーネントを返します。 | ||
timeintervalunit で指定された時間単位に切り捨てられた時点の値を返します。 | ||
timeintervalunit で指定された時間単位に切り上げた時点の値を返します。 | ||
(timepoint1, temporal1) と (timepoint2, temporal2) で定義された 2 つの時間間隔が重複する場合、true を返します。 | ||
STRING データ型の値を指定されたフォーマットに変換します。 | ||
TIMESTAMP データ型のデータを、指定されたタイムゾーンに基づいて指定されたフォーマットの文字列に変換します。 | ||
指定された時点に期間を追加することで、新しい時点を返します。この期間は、timeintervalunit に interval を乗じた値に相当します。 | ||
timepoint1 と timepoint2 の間の時間間隔を返します。 | ||
日時文字列 1 をタイムゾーン文字列 2 からタイムゾーン文字列 3 の値に変換します。日時文字列 1 は、デフォルトの 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 で指定された時間列プロパティの現在のウォーターマークを返します。 | ||
条件付き関数 | CASE 値 WHEN 値1_1 [, 値1_2]* THEN 結果1 (WHEN 値2_1 [, 値2_2]* THEN 結果2)* (ELSE 結果Z) END | 最初の時間値が値のリスト(valueX_1、valueX_2、…)に含まれている場合、resultX を返します。 |
最初の条件 X が満たされた場合、resultX を返します。 | ||
value1 が value2 と等しい場合は NULL を返します。 value1 が value2 と等しくない場合は value1 を返します。 | ||
value1、value2… から最初の NULL でない値を返します。 | ||
条件が満たされた場合は true_value を返します。条件が満たされない場合は false_value を返します。 | ||
入力パラメーターが NULL の場合は、null_replacement を返します。 入力パラメーターが NULL でない場合は、入力パラメーターを返します。 | ||
文字列内のすべての文字が英字の場合、true を返します。文字列内のいずれかの文字が英字でない場合、false を返します。 | ||
文字列が有効な数値に解析できる場合は true を返します。文字列が有効な数値に解析できない場合は false を返します。 | ||
注: このチュートリアルでは、基本的な例を示しています。より高度な使用方法については、公式ドキュメントを参照してください。 | ||
入力パラメーターの最大値を返します。入力パラメーターが NULL に設定されている場合は、NULL を返します。 | ||
詳細については、「WordPress の移動」をご参照ください。 | ||
データ型変換関数 | 数値または文字に対して基本的な変換を実行します。 | |
注: このチュートリアルでは、基本的な知識があることを前提としています。詳細については、「JavaScript のドキュメント」をご参照ください。 | ||
入力式のデータ型の文字列表現を返します。 | ||
コレクション関数 | 配列内の要素数を返します。 | |
配列内の INT で指定された位置にある要素を返します。 | ||
カーディナリティが 1 の配列の唯一の要素を返します。 | ||
マップ内のエントリ数を返します。 | ||
マップ内の指定されたキーに対応する値を返します。 | ||
JSON 関数 | 指定された文字列が有効な JSON 文字列かどうかを判断します。 | |
JSON_EXISTS(jsonValue, パス [ { TRUE | FALSE | UNKNOWN | ERROR } ON ERROR ]) | JSON 文字列が指定されたパス検索条件を満たしているかどうかを判断します。 | |
値を、シリアル化された値を含む JSON 文字列にシリアル化します。 | ||
JSON 文字列から、指定されたパスの式を抽出します。 | ||
JSON 文字列から JSON 値を抽出します。 | ||
JSON_OBJECT([[キー] key 値 value]* [ { NULL | ABSENT } ON NULL ]) | キーと値のペアのリストから JSON オブジェクトを生成します。 | |
JSON_OBJECTAGG ([KEY] キー VALUE 値 [{ NULL | ABSENT } ON NULL ]) | キーと値の式を JSON オブジェクトに集約します。 | |
値のリストから JSON 配列を生成します。 | ||
アイテムを配列に集約することで JSON オブジェクトを生成します。 | ||
値構築関数 | 値のリスト (value1、value2、…) から作成されたデータの行を返します。 | |
値 (value1、value2、…) のリストから作成された配列を返します。 | ||
キーと値のペア((値1, 値2), (値3, 値4), …)のリストから作成されたマップを返します。 | ||
値取得関数 | Tuple や POJO など、Flink の複合データ型のフィールドの値を名前で抽出します。 | |
Flink の複合データ型 (Tuple や POJO など) のサブタイプを個別のフィールドに変換します。 | ||
グループ化関数 | グループ化キーの組み合わせを一意に識別する整数を返します。 | |
指定されたグループ化式のビットベクターを返します。 | ||
ハッシュ関数 | 文字列の MD5 ハッシュ値を 32 桁の 16 進数の文字列形式で返します。 | |
文字列の SHA-1 ハッシュ値を 40 桁の 16 進数の文字列形式で返します。 | ||
文字列の SHA-224 ハッシュ値を 56 桁の16進数の文字列形式で返します。 | ||
文字列の SHA-256 ハッシュ値を 64 桁の 16 進数の文字列形式で返します。 | ||
文字列の SHA-384 ハッシュ値を 96 桁の16進数の文字列形式で返します。 | ||
文字列の SHA-512 ハッシュ値を 128 桁の 16 進数の文字列形式で返します。 | ||
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 の値を返します。 | |
指定されたデリミタに基づいて文字列を部分文字列に分割し、部分文字列のリストを返します。 |
集計関数
関数 | 説明 |
デフォルトでは、または ALL キーワードが使用されている場合、NULL でない式の入力行数を返します。 | |
入力行数を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の平均値を計算します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の合計を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の最大値を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の最小値を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の母集団標準偏差を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の標本標準偏差を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の標本標準偏差を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の式の標本分散を返します。 | |
デフォルトでは、または ALL キーワードが使用されている場合、すべての入力行の複数の式を返します。 | |
この関数は VAR_SAMP() 関数と同じです。 | |
値のグループにおける値のランクを返します。 | |
値のグループにおける値のランクを返します。結果は 1 と前に割り当てられたランク値の合計です。 | |
ウィンドウパーティションの行のシーケンスに基づいて、行のシーケンス番号を計算します。行番号は 1 から始まります。 | |
ウィンドウ内の現在の行に続くデータのオフセット行にある式の値を返します。 説明 デプロイメントがストリーミングモードの場合、LEAD 関数はサポートされていません。 | |
ウィンドウ内の現在の行の前にあるデータのオフセット行にある式の値を返します。 | |
文字列式の値を連結し、デリミタで値を区切ります。 | |
デプロイメントのパフォーマンスを向上させます。 | |
データストリームの最初の NULL でないレコードを返します。 | |
データストリームの最後の NULL でないレコードを返します。 |