すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Flink CDC 組み込み関数

最終更新日:May 22, 2026

これらの組み込み関数を、Flink CDC データインジェストジョブの変換モジュールにおける式で使用します。

組み込み関数

Flink CDC は、変換モジュール内のプロジェクション式およびフィルター式で直接使用できる組み込み関数を提供します。

算術関数

関数 説明
numeric1 + numeric2 numeric1 と numeric2 の合計を返します。
numeric1 - numeric2 numeric1 から numeric2 を引いた結果を返します。
numeric1 * numeric2 numeric1 に numeric2 を掛けた結果を返します。
numeric1 / numeric2 numeric1 を numeric2 で割った結果を返します。
numeric1 % numeric2 numeric1 を numeric2 で割った余りを返します。
ABS(numeric) numeric の絶対値を返します。
CEIL(numeric) numeric 以上の最小の整数を返します。
FLOOR(numeric) numeric 以下の最大の整数を返します。
ROUND(numeric, int) 数値を小数点以下 n 桁に丸めた値を返します。
UUID() 3d3c68f7-f608-473f-b60c-b0c44ad4cc4e のようなグローバル一意識別子 (UUID) 文字列を生成します。 RFC 4122 タイプ 4 を使用して、疑似乱数 UUID を生成します。

時間関数

関数 説明
LOCALTIME 現在のタイムゾーンのローカルタイムを返します。戻り値の型:TIME(0)
LOCALTIMESTAMP 現在のタイムゾーンのローカルタイムスタンプを返します。戻り値の型:TIMESTAMP(3)
CURRENT_TIME 現在のタイムゾーンのローカルタイムを返します。LOCALTIME と同等です。
CURRENT_DATE 現在のタイムゾーンのローカル日付を返します。
CURRENT_TIMESTAMP 現在のタイムゾーンのローカルタイムスタンプを返します。戻り値の型:TIMESTAMP_LTZ(3)
NOW() 現在のタイムゾーンのローカルタイムスタンプを返します。CURRENT_TIMESTAMP と同等です。
DATE_FORMAT(timestamp, string) 指定されたフォーマット文字列を使用して、入力タイムスタンプをフォーマットします。フォーマット文字列は Java の SimpleDateFormat と互換性があります。
DATE_FORMAT_TZ(timestamp, string) 指定されたタイムゾーンで入力タイムスタンプを文字列としてフォーマットします。フォーマット文字列は Java の SimpleDateFormat と互換性があります。出力形式:yyyy-MM-dd HH:mm:ss
DATE_FORMAT_TZ(timestamp, string1[, string2]) 入力タイムスタンプを、タイムゾーン string2 で、string1 の書式に従って文字列に変換します。フォーマット文字列は Java の SimpleDateFormat と互換性があります。
TIMESTAMPADD(timeintervalunit, interval, timepoint) timepoint に interval (timeintervalunit 単位) を加えた後のタイムポイントを返します。timeintervalunit の有効な値:SECONDMINUTEHOURDAYMONTHYEAR
DATE_ADD(timestamp, integer, string) timestamp を string で指定されたタイムゾーンのローカルタイムに変換し、integer で指定された日数を加算します。結果を yyyy-MM-dd 形式の文字列として返します。
TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) timepoint1 と timepoint2 の差を timepointunit 単位で返します。timepointunit の有効な値:SECONDMINUTEHOURDAYMONTHYEAR
TO_DATE(string1[, string2]) フォーマット文字列 string2 を使用して、日付文字列 string1 を DATE 型に解析します。デフォルトのフォーマット:yyyy-MM-dd。アップストリームデータが MySQL の DATETIME (yyyy-MM-dd HH:mm:ss) のような異なる形式を使用している場合は、実際の形式で string2 を明示的に指定する必要があります。そうでない場合、解析は失敗し、1970-01-01 のような不正な結果を返します。
TO_TIMESTAMP(string1[, string2]) フォーマット文字列 string2 を使用して、タイムスタンプ文字列 string1 をタイムゾーンなしの TIMESTAMP 型に解析します。デフォルトのフォーマット:yyyy-MM-dd HH:mm:ss
TO_TIMESTAMP_LTZ(string1[, string2][, string3]) 書式文字列 string2 とタイムゾーン string3 を使用して、タイムスタンプ文字列 string1 を TIMESTAMP_LTZ 型に解析します。デフォルトのフォーマット:yyyy-MM-dd HH:mm:ss.SSS。デフォルトのタイムゾーン:UTC
TO_TIMESTAMP_LTZ(bigint[, integer]) タイムスタンプ (bigint) を、integer で指定された精度の TIMESTAMP_LTZ 型に変換します。integer は 0 または 3 である必要があります。
FROM_UNIXTIME(numeric[, string]) numeric (1970-01-01 00:00:00 UTC からの秒数) を、string で指定された形式のタイムスタンプ文字列に変換します。デフォルトのフォーマット:yyyy-MM-dd HH:mm:ss
UNIX_TIMESTAMP() 現在の UNIX タイムスタンプを秒単位で返します。
UNIX_TIMESTAMP(string1[, string2]) フォーマット文字列 string2 を使用して日時文字列 string1 を解析し、対応する UNIX タイムスタンプを秒単位で返します。
説明

プロジェクション式とフィルター式を評価する際、各部分式は同じ時点を返します。たとえば、NOW() AS t1, NOW() AS t2, NOW() AS t3 は、評価の順序やタイミングに関係なく、t1t2t3 に対して常に同じタイムスタンプを返します。

文字列関数

関数 説明
string1 || string2 string1 と string2 の連結を返します。注:これは文字列連結演算子であり、論理和 (OR) 演算子ではありません。
CHAR_LENGTH(string) string 内の文字数を返します。
UPPER(string) string を大文字で返します。
LOWER(string) string を小文字で返します。
TRIM(string1) string1 の先頭と末尾の空白を削除します。
REGEXP_REPLACE(string1, string2, string3) string1 内で正規表現 string2 に一致するすべての部分文字列を string3 に置き換えます。たとえば、REGEXP_REPLACE('foobar', 'oo|ar', '__')f__b__ を返します。
SUBSTRING(string FROM integer1 [FOR integer2]) string の位置 integer1 から始まる、長さ integer2 の部分文字列を返します。FOR integer2 が省略された場合、部分文字列は string の末尾まで続きます。
CONCAT(string1, string2, ...) string1、string2 などを連結した文字列を返します。たとえば、CONCAT('AA', 'BB', 'CC')AABBCC を返します。

型変換関数

明示的な型変換には CAST(<expression> AS <type>) 構文を使用します。

重要

文字列のターゲット型として VARCHAR を使用してください。 STRING は有効なターゲット型ではありません。

ソース型 ターゲット型 説明
任意 VARCHAR 任意の型のフィールドを文字列に変換できます。
NUMERICSTRING BOOLEAN '0' または 'FALSE' 以外の文字列リテラルは、'TRUE' に変換されます。
NUMERICSTRING TINYINT 結果は -128 から 127 の範囲に切り捨てられます。
NUMERICSTRING SMALLINT 結果は -32768 から 32767 の範囲に切り捨てられます。
NUMERICSTRING INTEGER 結果は -2147483648 から 2147483647 の範囲に切り捨てられます。
NUMERICSTRING BIGINT 結果は -9223372036854775808 から 9223372036854775807 の範囲に切り捨てられます。
NUMERICSTRING FLOAT
NUMERIC DOUBLE
NUMERIC DECIMAL
STRINGTIMESTAMP_TZTIMESTAMP_LTZ TIMESTAMP 文字列は有効な ISO_LOCAL_DATE_TIME 形式である必要があります。

比較関数

説明

特に記載がない限り、これらの関数はいずれかの入力パラメーターが NULL の場合に NULL を返します。

関数 説明
value1 = value2 value1 が value2 と等しい場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 <> value2 value1 が value2 と等しくない場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 > value2 value1 が value2 より大きい場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 >= value2 value1 が value2 以上の場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 < value2 value1 が value2 より小さい場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 <= value2 value1 が value2 以下の場合は TRUE を返します。それ以外の場合は FALSE を返します。
value IS NULL value が NULL の場合は TRUE を返します。それ以外の場合は FALSE を返します。
value IS NOT NULL value が NULL でない場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 BETWEEN value2 AND value3 value1 が value2 と value3 の間 (両端を含む) にある場合は TRUE を返します。それ以外の場合は FALSE を返します。たとえば、12 BETWEEN 10 AND 15 は TRUE を返し、12 BETWEEN 15 AND 20 は FALSE を返します。
value1 NOT BETWEEN value2 AND value3 value1 が value2 と value3 の間 (両端を含む) にない場合は TRUE を返します。それ以外の場合は FALSE を返します。
string1 LIKE string2 string1 が string2 で定義されたパターンに一致する場合は TRUE を返します。それ以外の場合は FALSE を返します。
string1 NOT LIKE string2 string1 が string2 で定義されたパターンに一致しない場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 IN (value2 [, value3]*) value1 がリスト [value2, value3, ...] 内に存在する場合は TRUE を返します。それ以外の場合は FALSE を返します。
value1 NOT IN (value2 [, value3]*) value1 がリスト [value2, value3, ...] 内に存在しない場合は TRUE を返します。それ以外の場合は FALSE を返します。

論理関数

関数 説明
boolean1 OR boolean2 boolean1 または boolean2 が TRUE の場合は TRUE を返します。
boolean1 AND boolean2 boolean1 と boolean2 の両方が TRUE の場合は TRUE を返します。
NOT boolean boolean が TRUE の場合は FALSE を、FALSE の場合は TRUE を返します。boolean が NULL の場合、結果は NULL です。
boolean IS FALSE boolean が FALSE の場合は TRUE を、TRUE または NULL の場合は FALSE を返します。
boolean IS NOT FALSE boolean が TRUE または NULL の場合は TRUE を、FALSE の場合は FALSE を返します。
boolean IS TRUE boolean が TRUE の場合は TRUE を、FALSE または NULL の場合は FALSE を返します。
boolean IS NOT TRUE boolean が FALSE または NULL の場合は TRUE を、TRUE の場合は FALSE を返します。

条件関数

関数 説明
CASE value WHEN value1_1 [, value1_2]* THEN result1 (WHEN value2_1 [, value2_2]* THEN result2)* (ELSE result_z) END WHEN 句の各値を順番にチェックし、value と等しいかどうかを判定します。最初に一致した句の結果を返します。一致する句がない場合は、ELSE の値を返します。ELSE 句がない場合は、NULL を返します。
CASE WHEN condition1 THEN result1 (WHEN condition2 THEN result2)* (ELSE result_z) END WHEN 句の各条件を順番にチェックします。最初に true になった条件の結果を返します。どの条件も true でない場合は、ELSE の値を返します。ELSE 句がない場合は、NULL を返します。
COALESCE(value1 [, value2]*) リスト [value1, value2, ...] 内の最初の NULL でない値を返します。すべての値が NULL の場合は NULL を返します。
IF(condition, true_value, false_value) condition が true の場合は true_value を返します。それ以外の場合は false_value を返します。

JSON 関数

VARIANT 型および関連関数は、Ververica Runtime (VVR) 11.6 以降のデータインジェストジョブで利用できます。

関数 説明
PARSE_JSON(json_string[, allow_duplicate_keys]) JSON 文字列を解析して VARIANT に変換します。JSON 文字列が無効な場合はエラーをスローします。代わりに NULL を返すには、TRY_PARSE_JSONallowDuplicateKeys = false を使用します。入力に重複キーが含まれている場合、allowDuplicateKeys が であれば、パーサーは同じキーを持つ最後のフィールドを保持します。 の場合はエラーをスローします。デフォルト:。
TRY_PARSE_JSON(json_string[, allow_duplicate_keys]) JSON 文字列を解析して VARIANT に変換します。JSON 文字列が無効な場合は NULL を返します。代わりにエラーをスローするには、PARSE_JSONallowDuplicateKeys = false を使用します。入力に重複キーが含まれている場合、allowDuplicateKeys が であれば、パーサーは同じキーを持つ最後のフィールドを保持します。 の場合はエラーをスローします。デフォルト:。

JSON_EXISTS(json_string, json_path)

JSON 文字列内に指定されたパスが存在するかどうかを確認します。例:

JSON_EXISTS(json,'$.passenger_name')

パスは次の記号をサポートしています:

  • $: ルートオブジェクト。

  • []: 配列のインデックス。

  • *: 配列ワイルドカード。

  • .: 子要素アクセサー。

説明

Ververica Runtime (VVR) 11.7 以降でのみサポートされています。

JSON_VALUE(json_string, json_path)

JSON 文字列から、指定されたパスにあるオブジェクトを抽出します。スカラー値とオブジェクト値の両方をサポートします。

説明

Ververica Runtime (VVR) 11.7 以降でのみサポートされています。

ハッシュ関数

ハッシュ関数は、Ververica Runtime (VVR) 11.6 以降のデータインジェストジョブで利用できます。すべてのハッシュ関数は、入力文字列が NULL の場合、NULL を返します。

関数 説明
MD5(string) string の MD5 ハッシュを 32 文字の 16 進数文字列として返します。
SHA1(string) string の SHA-1 ハッシュを 40 文字の 16 進数文字列として返します。
SHA224(string) string の SHA-224 ハッシュを 56 文字の 16 進数文字列として返します。
SHA256(string) string の SHA-256 ハッシュを 64 文字の 16 進数文字列として返します。
SHA384(string) string の SHA-384 ハッシュを 96 文字の 16 進数文字列として返します。
SHA512(string) string の SHA-512 ハッシュを 128 文字の 16 進数文字列として返します。
SHA2(string, hashLength) SHA-2 ファミリー関数を使用してハッシュを返します。hashLength は結果のビット長 (224256384、または 512) を指定します。string または hashLength が NULL の場合は NULL を返します。

ネストされたデータ型へのアクセス

[] 演算子を使用して、ARRAYMAP、または VARIANT 型のネストされたフィールド内の要素にアクセスします。この機能は、Ververica Runtime (VVR) 11.6 以降で利用できます。

アクセス方法

nest_col という名前のフィールドを使用します。

配列形式 (ARRAY または VARIANT 配列)

nest_col[integer] を使用して、指定されたインデックスの要素を取得します。配列のインデックスは 1 から始まります。

例:nest_col[{"id": 1, "name": "Project A"}, {"id": 2, "name": "Project B"}] の場合、nest_col[1]{"id": 1, "name": "Project A"} を返します。

ハッシュテーブル形式 (MAP または VARIANT オブジェクト)

nest_col[string] を使用して、指定されたキーの値を取得します。

例:nest_col{"id": 1, "name": "Project A"} の場合、nest_col['id']1 を返します。

深くネストされたフィールド

[] 演算子を連結して、深くネストされた要素にアクセスします。

例:nest_col[{"id": 1, "name": "Project A"}, {"id": 2, "name": "Project B"}] の場合、nest_col[1]['id']1 を返します。

戻り値の型

[] の戻り値の型は、元のフィールドの型によって異なります:

元のフィールドの型 アクセス構文 戻り値の型
ARRAY[T] nest_col[integer] T
MAP<K, V> nest_col[string] V
VARIANT nest_col[integer] または nest_col[string] VARIANT