フィールド編集と値の割り当ては、DataWorks の Data Integration における単一テーブルのリアルタイム同期タスク向けのデータ処理コンポーネントです。このコンポーネントをタスクに追加すると、同期中にフィールドを追加し、値を割り当て、デスティネーションに書き込むことができます。
前提条件
データソースを作成します。詳細については、「データソース管理」をご参照ください。
Data Integration タスクを作成します。詳細については、「単一テーブルのリアルタイム同期タスクの設定」をご参照ください。
説明単一テーブルのリアルタイム Data Integration タスクでは、ソースコンポーネントとデスティネーションコンポーネントの間にデータ処理コンポーネントを追加できます。詳細については、「サポートされているデータソースと同期ソリューション」をご参照ください。
同期中のフィールド追加
単一テーブルのリアルタイム同期タスクで、データ処理 スイッチをオンにします。
[+ノードを追加] をクリックし、フィールドの編集と値の割り当て コンポーネントを追加します。
フィールド編集と値の割り当てコンポーネントを設定します。下流コンポーネントに出力する祖先フィールドを選択し、必要なフィールドを追加して、新しい各フィールドに値を割り当てます。各列と値の割り当て方法の詳細については、「フィールド設定」をご参照ください。
[ソース] と [フィールド編集と値の割り当て] を設定した後、データ出力プレビュー をクリックして現在のノードの出力データを表示し、要件を満たしているか確認します。
フィールドマッピングで、新しい各フィールドとデスティネーションテーブルのフィールドのマッピングを設定します。
重要新しく追加されたフィールドは、フィールドマッピングでデスティネーションテーブルのフィールドへのマッピングを設定した後にのみ、デスティネーションテーブルに書き込むことができます。
フィールド設定
フィールド編集と値の割り当てコンポーネントは、祖先コンポーネントが出力するフィールドと、手動で追加するフィールドの 2 種類のフィールドを処理します。
祖先フィールド:祖先コンポーネントがフィールド編集と値の割り当てコンポーネントに出力するフィールドです。以下の列で、これらのフィールドを説明します。
フィールド名:祖先コンポーネントが出力するフィールドの名前。
タイプ:祖先コンポーネントが出力するデータ型。
値:祖先コンポーネントに既に存在するフィールドの場合、値は祖先の出力です。新しいフィールドの場合、定数、変数、関数の 3 つの値割り当て方法を利用できます。
操作:祖先が出力したフィールドについて、下流コンポーネントにフィールドを出力するかどうかを指定します。
[カスタムフィールド]:フィールド編集と値の割り当てページの左下にある フィールドの追加 をクリックして、新しいフィールドを追加します。以下のいずれかの方法を使用して、新しいフィールドに値を割り当てます。
[定数]:手動で入力した定数テキストを指定された データ型 に変換し、新しいフィールドに割り当てます。
[変数]:同期の実行時に、組み込み変数の値を新しいフィールドに割り当てます。選択できる変数については、「サポートされる変数」をご参照ください。
[関数]:同期の実行時に関数計算を実行し、その結果を新しいフィールドに割り当てます。関数の処理中に例外が発生した場合、そのレコードはダーティデータとして扱われ、同期タスクのダーティデータ統計にカウントされます。その後、ダーティデータ許容設定に基づいて、タスクが異常終了するかどうかが決定されます。選択できる関数については、「サポートされる関数」をご参照ください。
例
この例では、祖先の Kafka コンポーネントは _key_ (STRING)、_value_ (STRING)、_partition_ (LONG)、_offset_ (LONG)、_timestamp_ (LONG)、および _headers_ (STRING) フィールドを出力します。これらのフィールドはすべて、下流コンポーネントへの出力対象として選択されています。カスタムフィールドでは、add_col フィールドが追加され、データ型は STRING、値の割り当て方法は定数、値は 1 に設定されています。
サポートされる変数
変数の値割り当て方法を選択して、同期タスクが実行時に解決する値で新しいフィールドを埋めます。次の表に、サポートされている組み込み変数を示します。
システムの特性の違いにより、一部のソースとデスティネーションでは、次の表のすべての変数がサポートされていない場合があります。
カテゴリ | 変数 | 説明 |
ソース | PROCESS_TIME | 同期タスクがレコードを処理する時刻。値は 13 桁のミリ秒タイムスタンプです。 |
ソース | DATASOURCE_NAME_SRC | ソースデータソースの名前。 |
ソース | DB_NAME_SRC | ソースデータベースの名前。 |
ソース | SCHEMA_NAME_SRC | ソーススキーマの名前。 |
ソース | TABLE_NAME_SRC | ソーステーブルの名前。 |
ソース | TOPIC_NAME_SRC | ソースのトピック名。 |
デスティネーション | TABLE_NAME_DEST | デスティネーションテーブルの名前。 |
デスティネーション | TOPIC_NAME_DEST | デスティネーションのトピック名。 |
デスティネーション | SCHEMA_NAME_DEST | デスティネーションスキーマの名前。 |
デスティネーション | DB_NAME_DEST | デスティネーションデータベースの名前。 |
デスティネーション | DATASOURCE_NAME_DEST | デスティネーションデータソースの名前。 |
サポートされる関数
関数の値割り当て方法を選択して、同期の実行時に新しいフィールドの値を計算します。以下の関数がサポートされています。
これらの関数が使用する時刻形式 (例: yyyy-MM-dd HH:mm:ss:SSS ZZ) において、yyyy は年、MM は月、dd は日、HH は 24 時間表記の時、mm は分、ss は秒、SSS はミリ秒、ZZ はタイムゾーンを示します。
DATE_FORMAT
タイムスタンプを特定の形式の時刻文字列に変換します。
パラメーター | 説明 |
パラメーター 1 | 数値型の祖先フィールド。10 桁の UNIX タイムスタンプまたは 13 桁のミリ秒タイムスタンプのいずれかです。 |
パラメーター 2 | タイムスタンプのタイプ。 |
パラメーター 3 | 変換に使用されるタイムゾーン。 |
パラメーター 4 | 変換先の日付文字列の形式。例: |
TO_TIMESTAMP
時刻文字列を 10 桁または 13 桁のタイムスタンプに変換します。
パラメーター | 説明 |
パラメーター 1 | 特定の形式の時刻文字列を含むテキスト型の祖先フィールド。 |
パラメーター 2 | 変換先のタイムスタンプのタイプ。 |
パラメーター 3 | 変換に使用されるタイムゾーン。 |
パラメーター 4 | 時刻文字列の形式。例: |
SUBSTRING
文字列から部分文字列を取得します。
パラメーター | 説明 |
パラメーター 1 | テキスト型の祖先フィールド。 |
パラメーター 2 | 部分文字列の開始位置。部分文字列には、開始位置の文字が含まれます。最小開始位置は 0 です。 |
パラメーター 3 | 部分文字列の長さ。長さが 0 以下の場合、関数は開始位置から文字列の末尾までの部分文字列を返します。 |