このトピックでは、Flink CDC データインジェストジョブの transform モジュール内の式で使用できるビルトイン関数について説明します。
ビルトイン関数
Flink CDC データインジェストジョブは、transform モジュール内のプロジェクション式およびフィルター式で使用するための豊富なビルトイン関数セットを提供します。
算術関数
関数 | 説明 |
numeric1 + numeric2 |
|
numeric1 - numeric2 |
|
numeric1 * numeric2 |
|
numeric1 / numeric2 |
|
numeric1 % numeric2 |
|
ABS(numeric) |
|
CEIL(numeric) |
|
FLOOR(numeric) |
|
ROUND(numeric, int) |
|
UUID() | 汎用一意識別子 (UUID) を文字列として生成します (例: "3d3c68f7-f608-473f-b60c-b0c44ad4cc4e")。 UUID は、RFC 4122 タイプ 4 の疑似ランダムメソッドを使用して生成されます。 |
時間関数
関数 | 説明 |
LOCALTIME | 現在のタイムゾーンのローカルタイムを返します。戻り値の型は |
LOCALTIMESTAMP | 現在のタイムゾーンのローカルタイムスタンプを返します。戻り値の型は |
CURRENT_TIME |
|
CURRENT_DATE | 現在のタイムゾーンのローカル日付を返します。 |
CURRENT_TIMESTAMP | 現在のタイムゾーンのローカルタイムスタンプを返します。戻り値の型は |
NOW() |
|
DATE_FORMAT(timestamp, string) | 指定されたフォーマット文字列に従って入力タイムスタンプをフォーマットします。 説明 フォーマット文字列は Java の |
TIMESTAMPADD(timeintervalunit, interval, timepoint) | 指定された時間
|
TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) | 指定された
|
TO_DATE(string1[, string2]) |
説明 フォーマット文字列 |
TO_TIMESTAMP(string1[, string2]) |
説明 フォーマット文字列 |
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]) | 日時文字列 |
プロジェクション式およびフィルター式内で時間関数を呼び出す全ての部分式は、同じ時間値を共有します。たとえば、NOW() AS t1, NOW() AS t2, NOW() AS t3 では、評価時間や順序に関係なく、t1、t2、t3 の値は同一になります。
文字列関数
関数 | 説明 |
string1 || string2 |
説明 このオペレーターは論理 OR オペレーターとは異なります。 |
CHAR_LENGTH(string) |
|
UPPER(string) |
|
LOWER(string) |
|
TRIM(string1) |
|
REGEXP_REPLACE(string1, string2, string3) |
たとえば、 |
SUBSTRING(string FROM integer1 [ FOR integer2 ]) | インデックス 説明
|
CONCAT(string1, string2,…) | 2 つ以上の文字列を連結します。 たとえば、 |
型キャスト関数
明示的な型キャストには CAST(<expression> AS <type>) 構文を使用します。現在、以下の変換がサポートされています:
ソースの型 | ターゲットの型 | 説明 |
任意 |
重要 現在、ターゲットの型として | 任意のデータの型を文字列に変換します。 |
|
| ゼロ以外の数値リテラル、または 'FALSE' 以外の文字列リテラルを TRUE に変換します。 |
|
| 結果を -128 から 127 の範囲に収まるように切り捨てます。 |
|
| 結果を -32768 から 32767 の範囲に収まるように切り捨てます。 |
|
| 結果を -2147483648 から 2147483647 の範囲に収まるように切り捨てます。 |
|
| 結果を -9223372036854775808 から 9223372036854775807 の範囲に収まるように切り捨てます。 |
|
| |
|
| |
|
| |
|
| 文字列は有効な ISO_LOCAL_DATE_TIME フォーマットである必要があります。 |
比較関数
特に指定がない限り、いずれかの入力パラメーターが NULL の場合、これらの関数は NULL を返します。
関数 | 説明 |
|
|
value1 <> value2 |
|
value1 > value2 |
|
value1 >= value2 |
|
value1 < value2 |
|
value1 <= value2 |
|
value IS NULL |
|
value IS NOT NULL |
|
value1 BETWEEN value2 AND value3 |
|
value1 NOT BETWEEN value2 AND value3 |
|
string1 LIKE string2 |
|
string1 NOT LIKE string2 |
|
value1 IN (value2 [, value3]* ) |
|
value1 NOT IN (value2 [, value3]* ) |
|
論理関数
関数 | 説明 |
|
|
|
|
NOT boolean | ブール値を反転させます。 |
boolean IS FALSE |
|
boolean IS NOT FALSE |
|
boolean IS TRUE |
|
boolean IS NOT TRUE |
|
条件関数
関数 | 説明 |
CASE value WHEN value1_1 [, value1_2]* THEN RESULT1 (WHEN value2_1 [, value2_2 ]* THEN result_2)* (ELSE result_z) END | WHEN 句で与えられた値と どの句の条件も満たされない場合、ELSE 句で指定された値を返します。ELSE 句が指定されていない場合は NULL を返します。 |
CASE WHEN condition1 THEN result1 (WHEN condition2 THEN result2)* (ELSE result_z) END | 各 WHEN 句の条件を順次評価し、条件が真である最初の どの句の条件も満たされない場合、ELSE 句で指定された値を返します。ELSE 句が指定されていない場合は NULL を返します。 |
COALESCE(value1 [, value2]*) | リスト |
IF(condition, true_value, false_value) |
|