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

DataWorks:関数式を使用したターゲットテーブルフィールドへの値の割り当て

最終更新日:Dec 20, 2025

DataWorks の Data Integration では、リアルタイム完全データベース同期タスクにおいて、関数式を使用してターゲットテーブルのフィールドに値を割り当てることができます。

制限事項

関数式を使用してターゲットテーブルのフィールドに値を割り当てることができるのは、ソースとして MySQL または PolarDB を、宛先として MaxCompute または Hologres を使用するリアルタイム完全データベース同期タスクのみです。

サポートされる関数と構文

サポートされる関数

関数名

説明

パラメーター

式の例

CONCAT

文字列を連結します。

  • パラメーター 1...n:別のフィールドの値 (#{col})、組み込み変数、または文字列リテラル ("string")。このパラメーターはオプションです。パラメーターの数に制限はありません。

concat(#{name},${table_name_src},"_01")

DATE_FORMAT

タイムスタンプを特定のフォーマットの時刻文字列に変換します。

  • パラメーター 1:数値型の先祖テーブルフィールド。値は 10 桁の UNIX タイムスタンプまたは 13 桁のミリ秒タイムスタンプです。

  • パラメーター 2:タイムスタンプのタイプ。有効値:unix (10 桁の UNIX タイムスタンプ) と millis (13 桁のミリ秒タイムスタンプ)。

  • パラメーター 3:変換に使用されるタイムゾーン。

  • パラメーター 4:宛先の日付文字列のフォーマット。例:yyyy-MM-dd HH:mm:ss:SSS ZZyyyy は年、MM は月、dd は日、HH は 24 時間形式の時間、mm は分、ss は秒、SSS はミリ秒、ZZ はタイムゾーンを示します。

date_format(#{timestamp},"millis","Asia/Shanghai","yyyy-MM-dd HH:mm:ss.SSS ZZ")

TO_TIMESTAMP

時刻文字列を 10 桁または 13 桁のタイムスタンプに変換します。

  • パラメーター 1:テキスト型の先祖テーブルフィールド。値は特定のフォーマットの時刻文字列です。

  • パラメーター 2:時刻文字列のフォーマット。例:yyyy-MM-dd HH:mm:ss:SSS ZZyyyy は年、MM は月、dd は日、HH は 24 時間形式の時間、mm は分、ss は秒、SSS はミリ秒、ZZ はタイムゾーンを示します。

  • パラメーター 3:変換に使用されるタイムゾーン。

  • パラメーター 4:宛先のタイムスタンプのタイプ。有効値:unix (10 桁の UNIX タイムスタンプ) と millis (13 桁のミリ秒タイムスタンプ)。

to_timestamp(#{create_time},"yyyy-MM-dd HH:mm:ss","Asia/Shanghai","millis")

DATE_CONVERT

特定のタイムゾーンにある特定のフォーマットの時刻文字列を、別のタイムゾーンにある別のフォーマットの時刻文字列に変換します。

  • パラメーター 1:テキスト型の先祖テーブルフィールド。値は特定のフォーマットの時刻文字列です。

  • パラメーター 2:先祖テーブルフィールドの時刻文字列のフォーマット。例:yyyy-MM-dd HH:mm:ss:SSS ZZyyyy は年、MM は月、dd は日、HH は 24 時間形式の時間、mm は分、ss は秒、SSS はミリ秒、ZZ はタイムゾーンを示します。

  • パラメーター 3:変換元のタイムゾーン。

  • パラメーター 4:宛先の日付文字列のフォーマット。例:yyyy-MM-dd HH:mm:ss:SSS ZZyyyy は年、MM は月、dd は日、HH は 24 時間形式の時間、mm は分、ss は秒、SSS はミリ秒、ZZ はタイムゾーンを示します。

  • パラメーター 5:変換先のタイムゾーン。

date_convert(#{create_time},"yyyy-MM-dd HH:mm:ss","Asia/Shanghai","yyyyMMdd","UTC")

SUBSTRING

文字列の部分文字列を返します。

  • パラメーター 1:テキスト型の先祖テーブルフィールド。

  • パラメーター 2:部分文字列の開始位置。部分文字列には開始位置の文字が含まれます。最小開始位置は 0 です。

  • パラメーター 3:(オプション) 部分文字列の長さ。長さが 0 以下の場合、開始位置から文字列の末尾までの部分文字列が返されます。

substring(#{name},0,2)

LOWER

文字列を小文字に変換します。

  • パラメーター 1:テキスト型の先祖テーブルフィールドまたは組み込み変数。

lower(#{name})

UPPER

文字列を大文字に変換します。

  • パラメーター 1:テキスト型の先祖テーブルフィールドまたは組み込み変数。

upper(#{name})

サポートされる構文

  • 関数呼び出し式のみがサポートされます。式は、関数名、括弧、およびパラメーターで構成されます。他のタイプの式はサポートされていません。例:DATE_FORMAT(#{create_time},"millis","Asia/Shanghai","yyyyMMdd")

  • 関数式のパラメーターは、二重引用符 ("") を使用して文字列定数を参照できます。例:CONCAT("hello","world")

  • 関数式のパラメーターは、数値を使用して数値定数を参照できます。例:SUBSTRING(#{col1},0,10)

  • 関数パラメーターは、ネストされた関数呼び出しをサポートします。例:CONCAT(SUBSTRING(#{col1},0,10),"test")

  • 関数式のパラメーターは、#{} を使用して先祖ノードの出力列の値を参照できます。

  • 関数パラメーターは、${} を使用して組み込み変数を参照できます。サポートされている組み込み変数は、各チャンネルの追加列で使用できるものと同じです。例:CONCAT(SUBSTRING(#{col1},0,10),${DATASOURCE_NAME_SRC})

  • 関数名と組み込み変数名では、大文字と小文字は区別されません。

前提条件

  • ソースが MySQL または PolarDB、宛先が MaxCompute または Hologres である データソース構成が完了していること。

  • リアルタイム完全データベース同期タスクが作成されていること。

操作手順

ステップ 1:リアルタイムタスク設定ページへの移動

  1. DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、Data Integration > Data Integration を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[Data Integration へ] をクリックします。

  2. 左側のナビゲーションウィンドウで、image をクリックして同期タスクページを開きます。

  3. 作成したリアルタイム完全データベース同期タスクを見つけ、[操作] 列で その他 > 編集 をクリックして、同期タスク設定ページを開きます。

ステップ 2:ターゲットテーブルへの関数処理列の追加

関数式の結果は、ターゲットテーブルの列に書き込まれます。まず、ターゲットテーブルスキーマにフィールドを追加する必要があります。

  1. リアルタイムタスク構成ページで、「次へ」をクリックします。[ターゲットテーブルマッピング] セクションで、[マッピングの更新] をクリックします。

  2. 関数列を追加するターゲットテーブルを見つけます。[ターゲットテーブル名] 列で、image ボタンをクリックして、ターゲットテーブルのスキーマ構成ページを開きます。

    image

  3. [フィールド] セクションで、[フィールドの追加] をクリックします。フィールドを設定した後、[マッピングを適用して更新] をクリックします。

    image

    また、[一括操作] の [ターゲットテーブルスキーマ - フィールドの一括変更と追加] オプションを使用して、複数のターゲットテーブルに関数列を追加することもできます。

    image

ステップ 3:関数式の定義

  1. [ターゲットテーブルフィールドの割り当て] 列で、[設定] をクリックしてフィールド割り当てページを開きます。

    image

  2. [ターゲットテーブルのフィールド] セクションで、追加した関数列を見つけます。[割り当て方法][関数] に設定します。次に、[割り当て] 列に関数を入力します。詳細については、「サポートされている関数と構文」をご参照ください。

    image