DataWorks の Data Integration では、データベース全体のリアルタイム同期タスクにおいて、関数式を使用してターゲットテーブルのフィールドに値を割り当てることができます。
制限
関数式を使用してターゲットテーブルのフィールド割り当てを定義できるのは、ソースとして MySQL または PolarDB を、ターゲットとして MaxCompute または Hologres を使用する データベース全体のリアルタイム同期 タスクのみです。
サポートされる関数と構文
サポートされる関数
|
関数名 |
説明 |
パラメーター |
式の例 |
|
CONCAT |
文字列を連結します。 |
|
|
|
DATE_FORMAT |
タイムスタンプを特定の形式の時刻文字列に変換します。 |
|
|
|
TO_TIMESTAMP |
時刻文字列を 10 桁または 13 桁のタイムスタンプに変換します。 |
|
|
|
DATE_CONVERT |
ある形式とタイムゾーンの時刻文字列を、別の形式とタイムゾーンに変換します。 |
|
|
|
SUBSTRING |
文字列から部分文字列を抽出します。 |
|
|
|
LOWER |
文字列を小文字に変換します。 |
|
|
|
UPPER |
文字列を大文字に変換します。 |
|
|
サポートされる構文
-
関数呼び出し式のみがサポートされます。式は、関数名、括弧、およびパラメーターで構成されます。他の種類の式はサポートされていません。例:
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})。 -
関数名と組み込み変数名では、大文字と小文字は区別されません。
前提条件
手順
ステップ 1:データベース全体のリアルタイム同期タスクの編集ページへの移動
-
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[Data Integration] をクリックします。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[Data Integrationに移動] をクリックします。
-
左側のメニューで、
をクリックして同期タスクページに移動します。 -
目的のデータベース全体のリアルタイム同期タスクを見つけ、「操作」列でを選択して同期タスク設定ページを開きます。
ステップ 2:ターゲットテーブルへの関数処理列の追加
データを書き込む前に、関数処理列をターゲットテーブルのスキーマに追加する必要があります。
-
データベース全体のリアルタイムタスクの設定ページで、「次へ」をクリックします。Target Table Mapping セクションで、Refresh Mapping をクリックします。
-
関数処理列を追加する対象のテーブルを見つけ、Destination Table Name 列の
アイコンをクリックして、テーブルスキーマ設定ページに移動します。 -
Field セクションで Add Fields をクリックします。フィールドを設定した後、Apply and Refresh Mapping をクリックします。
また、一括操作でTarget Table Structure - Batch Modify and Add Fieldsを選択して、複数の宛先テーブルに関数で処理された列を追加することもできます。
ステップ 3:関数式の定義
-
Value assignment 列で Configure をクリックすると、フィールド割り当てページが開きます。
-
Destination Table Field セクションで、追加した関数で処理された列を探し、Assignment Method を Function に設定します。次に、Assign 列に関数式を入力します。詳細については、「サポートされている関数と構文」をご参照ください。
[割り当て方法] パラメーターには、[手動割り当て]、[変数を選択]、[関数] の 3 つのオプションがあります。値を割り当てることができるのは、ソーステーブルに存在しないフィールドのみです。それ以外の場合、ソーステーブルの同じ名前のフィールドの値が使用されます。