全部產品
Search
文件中心

DataWorks:使用函數運算式為目標表欄位賦值

更新時間:Aug 12, 2025

DataWorksData Integration在整庫即時同步任務中,支援通過函數運算式為目標表欄位賦值。

使用限制

當前僅資料來源為MySQLPolarDB,資料去向為MaxComputeHologres整庫即時同步任務,支援在目標表欄位賦值時使用函數運算式定義賦值。

支援的函數和文法

支援的函數

函數名稱

說明

參數

運算式樣本

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(SUSTRING(#{col1},0,10),"test")

  • 函數運算式的參數支援使用#{}引用上遊節點輸出資料行值。

  • 函數運算式的參數支援使用${}引用內建變數,支援的內建變數類型與各通道附加列設定可選的內建變數類型相同,例如:CONCAT(SUSTRING(#{col1},0,10),${DATASOURCE_NAME_SRC})

  • 函數名和內建變數名大小寫不敏感。

前提條件

操作步驟

一、進入整庫即時任務編輯頁

  1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的Data Integration > Data Integration,在下拉框中選擇對應工作空間後單擊進入Data Integration

  2. 在左側導覽列單擊image,進入同步任務頁面。

  3. 找到已建立的整庫即時同步任務,單擊操作列的更多 > 編輯,進入同步任務編輯頁。

二、在目標表添加函數處理列

添加的函數處理需要寫入到目標表的列中,您可以先編輯目標表結構添加欄位。

  1. 在整庫即時任務編輯頁,單擊下一步,找到目標表映射地區,單擊重新整理映射

  2. 找到需要增加函數處理列的目標表,單擊目標表名image按鈕進入目標表結構編輯頁面。

    image

  3. 欄位地區單擊添加欄位,配置完成後單擊應用並重新整理映射

    image

    您也可通過大量操作中的目標表結構-批量修改和新增欄位選項,對多個目標表添加函數處理列。

    image

三、定義函數運算式

  1. 目標表欄位賦值列單擊配置,進入欄位賦值頁面。

    image

  2. 目標表欄位地區找到已添加的函數處理列,選擇賦值方式函數。然後在賦值列填寫函數內容。支援的函數和文法,請參見支援的函數和文法

    image