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

Realtime Compute for Apache Flink:Flink CDC ビルトイン関数

最終更新日:Nov 21, 2025

このトピックでは、Flink CDC データインジェストジョブの transform モジュール内の式で使用できるビルトイン関数について説明します。

ビルトイン関数

Flink CDC データインジェストジョブは、transform モジュール内のプロジェクション式およびフィルター式で使用するための豊富なビルトイン関数セットを提供します。

算術関数

関数

説明

numeric1 + numeric2

numeric1numeric2 の合計を返します。

numeric1 - numeric2

numeric1 から numeric2 を引いた結果を返します。

numeric1 * numeric2

numeric1numeric2 の積を返します。

numeric1 / numeric2

numeric1numeric2 で割った結果を返します。

numeric1 % numeric2

numeric1numeric2 で割った余りを返します。

ABS(numeric)

numeric の絶対値を返します。

CEIL(numeric)

numeric を最も近い整数に切り上げます。

FLOOR(numeric)

numeric を最も近い整数に切り下げます。

ROUND(numeric, int)

numeric を小数点以下 int 桁に丸めます。

UUID()

汎用一意識別子 (UUID) を文字列として生成します (例: "3d3c68f7-f608-473f-b60c-b0c44ad4cc4e")。

UUID は、RFC 4122 タイプ 4 の疑似ランダムメソッドを使用して生成されます。

時間関数

関数

説明

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 と互換性があります。

TIMESTAMPADD(timeintervalunit, interval, timepoint)

指定された時間 intervaltimepoint に追加します。

timeintervalunitSECONDMINUTEHOURDAYMONTH、または YEAR にすることができます。

TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2)

指定された timepointunittimepoint1timepoint2 の差を計算します。

timepointunitSECONDMINUTEHOURDAYMONTH、または YEAR にすることができます。

TO_DATE(string1[, string2])

string2 で指定されたフォーマットを使用して、日付文字列 string1DATE 型に変換します。

説明

フォーマット文字列 string2 が指定されていない場合、デフォルトのフォーマット 'yyyy-MM-dd' が使用されます。

TO_TIMESTAMP(string1[, string2])

string2 で指定されたフォーマットを使用して、タイムスタンプ文字列 string1TIMESTAMP 型 (タイムゾーン情報なし) に変換します。

説明

フォーマット文字列 string2 が指定されていない場合、デフォルトのフォーマット 'yyyy-MM-dd HH:mm:ss' が使用されます。

FROM_UNIXTIME(numeric[, string])

1970-01-01 00:00:00 UTC から経過した秒数を表す最初の引数を、2 番目の引数で指定されたフォーマットを使用して、フォーマットされたタイムスタンプ文字列に変換します。

説明

フォーマット文字列が指定されていない場合、デフォルトのフォーマット 'yyyy-MM-dd HH:mm:ss' が使用されます。

UNIX_TIMESTAMP()

現在の UNIX タイムスタンプを秒単位で返します。

UNIX_TIMESTAMP(string1[, string2])

日時文字列 string1 を、string2 で指定されたフォーマットを使用して UNIX タイムスタンプ (秒単位) に変換します。string2 が指定されていない場合、デフォルトのフォーマット 'yyyy-MM-dd HH:mm:ss' が使用されます。

説明

プロジェクション式およびフィルター式内で時間関数を呼び出す全ての部分式は、同じ時間値を共有します。たとえば、NOW() AS t1, NOW() AS t2, NOW() AS t3 では、評価時間や順序に関係なく、t1t2t3 の値は同一になります。

文字列関数

関数

説明

string1 || string2

string1string2 を連結します。

説明

このオペレーターは論理 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 ])

インデックス integer1 から始まり、長さが integer2string の部分文字列を返します。

説明

FOR integer2 句が指定されていない場合、部分文字列は文字列の末尾まで拡張されます。

CONCAT(string1, string2,…)

2 つ以上の文字列を連結します。

たとえば、CONCAT('AA', 'BB', 'CC')AABBCC と評価されます。

型キャスト関数

明示的な型キャストには CAST(<expression> AS <type>) 構文を使用します。現在、以下の変換がサポートされています:

ソースの型

ターゲットの型

説明

任意

VARCHAR

重要

現在、ターゲットの型として STRING を使用することはできません。代わりに同等の VARCHAR 型を使用してください。

任意のデータの型を文字列に変換します。

NUMERIC

STRING

BOOLEAN

ゼロ以外の数値リテラル、または 'FALSE' 以外の文字列リテラルを TRUE に変換します。

NUMERIC

STRING

TINYINT

結果を -128 から 127 の範囲に収まるように切り捨てます。

NUMERIC

STRING

SMALLINT

結果を -32768 から 32767 の範囲に収まるように切り捨てます。

NUMERIC

STRING

INTEGER

結果を -2147483648 から 2147483647 の範囲に収まるように切り捨てます。

NUMERIC

STRING

BIGINT

結果を -9223372036854775808 から 9223372036854775807 の範囲に収まるように切り捨てます。

NUMERIC

STRING

FLOAT

NUMERIC

DOUBLE

NUMERIC

DECIMAL

STRING

TIMESTAMP_TZ

TIMESTAMP_LTZ

TIMESTAMP

文字列は有効な ISO_LOCAL_DATE_TIME フォーマットである必要があります。

比較関数

説明

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

関数

説明

value1 = value2

value1value2 と等しい場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 <> value2

value1value2 と等しくない場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 > value2

value1value2 より大きい場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 >= value2

value1value2 以上である場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 < value2

value1value2 より小さい場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 <= value2

value1value2 以下である場合は TRUE を返し、それ以外の場合は FALSE を返します。

value IS NULL

value が NULL の場合は TRUE を返し、それ以外の場合は FALSE を返します。

value IS NOT NULL

value が NULL でない場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 BETWEEN value2 AND value3

value1value2value3 の間にある場合は TRUE を返し、それ以外の場合は FALSE を返します。

value1 NOT BETWEEN value2 AND value3

value1value2value3 の間にない場合は TRUE を返し、それ以外の場合は FALSE を返します。

string1 LIKE string2

string1string2 で定義されたパターンに一致する場合は TRUE を返し、それ以外の場合は FALSE を返します。

string1 NOT LIKE string2

string1string2 で定義されたパターンに一致しない場合は 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

boolean1boolean2 の両方が TRUE の場合に TRUE を返します。

NOT boolean

ブール値を反転させます。

boolean IS FALSE

boolean が FALSE の場合は TRUE を返し、それ以外の場合は FALSE を返します。

boolean IS NOT FALSE

boolean が FALSE でない場合は TRUE を返し、それ以外の場合は FALSE を返します。

boolean IS TRUE

boolean が TRUE の場合は TRUE を返し、それ以外の場合は FALSE を返します。

boolean IS NOT TRUE

boolean が TRUE でない場合は TRUE を返し、それ以外の場合は FALSE を返します。

条件関数

関数

説明

CASE value WHEN value1_1 [, value1_2]* THEN RESULT1 (WHEN value2_1 [, value2_2 ]* THEN result_2)* (ELSE result_z) END

WHEN 句で与えられた値と value が等しいかを順次チェックし、最初に一致した句の result を返します。

どの句の条件も満たされない場合、ELSE 句で指定された値を返します。ELSE 句が指定されていない場合は NULL を返します。

CASE WHEN condition1 THEN result1 (WHEN condition2 THEN result2)* (ELSE result_z) END

各 WHEN 句の条件を順次評価し、条件が真である最初の WHEN 句から result を返します。

どの句の条件も満たされない場合、ELSE 句で指定された値を返します。ELSE 句が指定されていない場合は NULL を返します。

COALESCE(value1 [, value2]*)

リスト [value1, value2, ...] の中で最初の NULL でない値を返します。すべての値が NULL の場合は NULL を返します。

IF(condition, true_value, false_value)

condition が真の場合、true_value を返し、それ以外の場合は false_value を返します。