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 へ] をクリックします。
左側のナビゲーションウィンドウで、
をクリックして同期タスクページを開きます。作成したリアルタイム完全データベース同期タスクを見つけ、[操作] 列で をクリックして、同期タスク設定ページを開きます。
ステップ 2:ターゲットテーブルへの関数処理列の追加
関数式の結果は、ターゲットテーブルの列に書き込まれます。まず、ターゲットテーブルスキーマにフィールドを追加する必要があります。
リアルタイムタスク構成ページで、「次へ」をクリックします。[ターゲットテーブルマッピング] セクションで、[マッピングの更新] をクリックします。
関数列を追加するターゲットテーブルを見つけます。[ターゲットテーブル名] 列で、
ボタンをクリックして、ターゲットテーブルのスキーマ構成ページを開きます。
[フィールド] セクションで、[フィールドの追加] をクリックします。フィールドを設定した後、[マッピングを適用して更新] をクリックします。

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

ステップ 3:関数式の定義
[ターゲットテーブルフィールドの割り当て] 列で、[設定] をクリックしてフィールド割り当てページを開きます。

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