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

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

最終更新日:Jun 21, 2026

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:タイムスタンプのタイプ。10 桁の UNIX タイムスタンプの場合は "unix" を、13 桁のミリ秒タイムスタンプの場合は "millis" を使用します。

  • パラメーター 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:出力タイムスタンプのタイプ。10 桁の UNIX タイムスタンプの場合は "unix" を、13 桁のミリ秒タイムスタンプの場合は "millis" を使用します。

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に移動] をクリックします。

  2. 左側のメニューで、 image をクリックして同期タスクページに移動します。

  3. 目的のデータベース全体のリアルタイム同期タスクを見つけ、「操作」列でMore > Editを選択して同期タスク設定ページを開きます。

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

データを書き込む前に、関数処理列をターゲットテーブルのスキーマに追加する必要があります。

  1. データベース全体のリアルタイムタスクの設定ページで、「次へ」をクリックします。Target Table Mapping セクションで、Refresh Mapping をクリックします。

  2. 関数処理列を追加する対象のテーブルを見つけ、Destination Table Name 列の image アイコンをクリックして、テーブルスキーマ設定ページに移動します。

  3. Field セクションで Add Fields をクリックします。フィールドを設定した後、Apply and Refresh Mapping をクリックします。

    また、一括操作でTarget Table Structure - Batch Modify and Add Fieldsを選択して、複数の宛先テーブルに関数で処理された列を追加することもできます。

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

  1. Value assignment 列で Configure をクリックすると、フィールド割り当てページが開きます。

  2. Destination Table Field セクションで、追加した関数で処理された列を探し、Assignment MethodFunction に設定します。次に、Assign 列に関数式を入力します。詳細については、「サポートされている関数と構文」をご参照ください。

    [割り当て方法] パラメーターには、[手動割り当て][変数を選択][関数] の 3 つのオプションがあります。値を割り当てることができるのは、ソーステーブルに存在しないフィールドのみです。それ以外の場合、ソーステーブルの同じ名前のフィールドの値が使用されます。