メイン コンテンツをスキップする 補完的コンテンツへスキップ

tHMapの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているtHMapを設定するために使われます。

標準tHMapコンポーネントは、変換処理ファミリーに属しています。

このコンポーネントは、Talend Data Management PlatformTalend Big Data PlatformTalend Real-Time Big Data PlatformTalend Data Services PlatformTalend MDM PlatformおよびTalend Data Fabricで使用できます。

基本設定

[Open Map Editor] (マップエディターを開く)

[...]ボタンをクリックして[Structure Generate/Select] (ストラクチャーの生成/選択)ウィザードを開きます。

まず、作成するマップのタイプを選択できます。
  • 標準マップ: xQueryに基づいてファンクションを使ってマッピングを実行するマップ
  • DSQLマップ: マップはData Shaping Query Languageを使ってマッピングを実行します。
[Don't ask me again] (今後は確認しない)チェックボックスを選択すると、この選択を保存できます。これらのマップの詳細は、マップを使って作業をご覧ください。
情報メモ注: このオプションは、Talendが提供するR2023-10以降のStudioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

ここでは、スキーマを基に階層マッパーストラクチャーを自動生成したり、 既存の階層マッパーストラクチャーを選択したりできます。マップの入出力側双方でこの操作を実行してください。以下に、出力ストラクチャーのオプションを示します。

  • [Generate hierarchial mapper structure based on the schema] (スキーマを基に階層マッパー構造を生成する)オプション: 複数の出力接続をtHMapに接続する場合、マッパー構造が出力接続を基に生成されたことを伝える確認メッセージがページに表示されます。
  • [Select an existing hierarchical mapper structure] (既存の階層マッパー構造を選択)オプション: ペイロードベースの接続である複数の出力をtHMapに接続できます。単一のペイロードタイプの接続がある場合は、[Allow support for multiple output connections] (複数の出力接続のサポートを許可する)チェックボックスをオンにできます。生成された出力マップは既存のペイロードストラクチャーから継承されます。

使用可能な複数の接続がStudio Talendによって検出されると、ウィンドウには両方の出力ストラクチャーオプションが表示され、複数の出力接続のサポート用のチェックボックスは表示されません。

入力接続または出力接続のいずれもない場合は、[Sructure Selection] (ストラクチャーの選択)ページが表示されます。

マップをスキーマ接続で同期化

次のいずれかの変更後にマップの入力ストラクチャーと出力ストラクチャーを自動的に再生成する場合は、このチェックボックスを選択します。
  • 接続メタデータを変更
  • 入力接続または出力接続を追加
  • 入力接続または出力接続を削除
接続が有効化されても無効化されても、変化は検出されません。
このチェックボックスを選択すると、マップを変更後にコンポーネントから開いた時に、このマップが自動的に同期されます。同期されない場合は、同期するかどうかを尋ねるダイアログが表示されます。
情報メモ注: 複数の接続を持つストラクチャーの場合、コンポーネント設定ウィザードで生成されたものと同じ形式のストラクチャーでなければマップを同期させることはできません。たとえば、複数の出力を持つフラット化マップを自動的に同期させることはできません。

Map Path

実行するマップを指定します。

上記のウィザードを使ってマップが自動的に作成された場合、このパスは自動的に設定されます。

既存のマップを使用する場合は、[Map Path] (マップパス)フィールドの横の[...]ボタンをクリックして、使用するマップを選択できるダイアログボックスを開きます。次に、[Open Map Editor] (マップエディターを開く)の横の[...]ボタンをクリックして、選択したマップの作業を行います。このマップはあらかじめ Mapping パースペクティブで作成しておく必要があります。

Read Input As (入力の読み取り...)

希望する入力データの読み取り方法に合ったラジオボタンをオンにします。マップによっては、オプションの一部しか利用できません。

  • Data Integration columns (データ統合カラム) (デフォルト): Talend Data Integrationメタデータで作業をしている場合は、このオプションを使用します。

  • Single Column (単一カラム): Talend Data Mapperメタデータで作業をしている場合は、このオプションを使用します。

出力の書き込み...

希望する出力データの書き込み方法に合ったラジオボタンをオンにします。マップによっては、オプションの一部しか利用できません。

  • Data Integration columns (データ統合カラム) (デフォルト): Talend Data Integrationメタデータで作業をしている場合は、このオプションを使用します。

  • [String (single column)] (文字列(単一カラム)): 出力カラムのデータをStringにしたい場合はこのオプションを使用します。

  • [Byte array (single column)] (バイト配列(単一カラム)): 出力カラムのデータをByte arrayにしたい場合はこのオプションを使用します。

  • [InputStream (single column)] (InputStream (単一カラム)): Talend Data Mapperメタデータで作業を行っていて、入力データがストリームの場合は、このオプションを使用します。

  • [Document (single column)] (ドキュメント(単一カラム)); 出力カラムのデータをDocumentにしたい場合はこのオプションを使用します。

詳細設定

マップ変数

このフィールドには、マップへのパスを含んだコンテキスト変数を入力します。たとえば、context.mymapfileと入力した場合、mymapfileは実行時にさまざまなマップファイルを参照できます。毎回新しいジョブを作成せずに複数のマップを使用したい場合に、このオプションが便利です。

[Context] (コンテキスト)ビューの値は相対パスにする必要があります。たとえば、mapAというマップがフォルダーMaps/FolderAにある場合、コンテキスト変数には値“FolderA/mapA.xml”を含める必要があります。.xml拡張子の有無に関係なくパスをファイルに書き込めます。

コンテキスト変数によって参照される可能性のあるマップはすべて同じプロジェクト内に置く必要があります。それによってジョブのビルド時に候補マップがすべて含まれ、実行時にマップを切り替えることができるようになります。

コンテキスト変数での作業の詳細は、Studio Talendユーザーガイドでコンテキストと変数を使用をご覧ください。

交互のコンテキストマップ

実行時に[Map Variable] (マップ変数)に追加したコンテキスト変数が参照できるマップを1つ以上ドロップダウンリストから選択します。

選択された代替マップは、元のマップと同じマップタイプ(標準またはDSQL)であることが必要です。

ジョブの構築時、選択した代替コンテキストマップが1つ以上含まれます。代替コンテキストマップの使用に関するシナリオ例については、tHMapでマップ変数と代替マップを指定をご覧ください。

Map each row (disable virtual component) (各行をマップする(仮想コンポーネントを無効化))

tHMapで入力を単一出力行として処理する場合は、このチェックボックスを選択します。オンにすると、tHMapが入力行を下流に送る前にバッファーするのを防ぐことができます。

tSAPIDocReceiverコンポーネントに待ち受けを永続的に行うように指示すると、行が全く送信されなくなるので、たとえば、tHMapコンポーネントと併せてtSAPIDocReceiverを入力コンポーネントとして、スキーマ認識コンポーネントを出力コンポーネントとして使用する場合、このオプションが役立ちます。

継続的に入力を受信できるよう開いたままにしておける入力コンポーネント(tRestRequest)と共にtHMapを使用する場合は、このオプションを選択する必要があります。これによってtHMapは、受信される入力を直接処理できるようになります。

[Emit empty payload] (空のペイロードを発行) このチェックボックスを選択して、出力データがない場合は、出力接続内に空の行を送信します。これは、入力がないまたはマップで入力全体が除外される場合にできます。このチェックボックスがオフになっていると、出力接続に行が送信されません。

このオプションは、[Map each row] (各行をマップ)チェックボックスがオフになっている時のみ適用されます。

[Use old Eclipse runtime] (古いEclipseランタイムを使用)

古いEclipseランタイムをジョブに含める場合は、このチェックボックスを選択します。
情報メモ注: このオプションは、Talendが提供するR2024-03以降のStudio Talendマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

Exception Threshold (例外しきい値)

Talend Data Mapper[OK]、重大度値([Info] (情報)[Warning] (警告)[Error] (エラー)[Fatal] (致命的)のいずれか)と共に実行ステータスを返します。例外しきい値を設定することにより、例外を返す重大度レベルを指定でき、デフォルト値であるFatal (致命的)以外の場合に、ダウンストリームのコンポーネントがエラーを検出できます。

ドロップダウンリストから、マップの実行中に例外を返す重大度レベルを選択します。

  • [Fatal] (致命的) (デフォルト): 致命的なエラーが発生すると例外がスローされます。

  • [Error] (エラー): エラー(またはそれ以上のレベル)が発生した場合に例外を返します。

  • [Warning] (警告): 警告(またはそれ以上のレベル)が発生した場合に例外を返します。

マップの問題を診断しやすくなるよう、Studio Talendでマップをテストした時に警告以上のレベルで発生したエラーは、[Exception Threshold] (例外しきい値)の設定に関係なくコンソールウィンドウに出力されます。

[tStatCatcher Statistics] (tStatCatcher統計)

このチェックボックスを選択すると、ジョブレベルおよび各コンポーネントレベルでジョブ処理メタデータが収集されます。

グローバル変数

グローバル変数

ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。

MapExecutionStatus: org.talend.transform.runtime.common.MapExecutionStatusクラスのオブジェクトを返します

EXECUTION_SEVERITY: [Overall Severity] (全体的な重大度)の数値。これはAfter変数で、整数を返します。

Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。

フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。

変数の詳細は、コンテキストと変数を使用をご覧ください。

使用方法

使用ルール

tHMapは、多種多様なソースからの複雑なデータマップが必要なジョブに使われます。

入力接続と出力接続はTalend Data Mapperメタデータ、Talend Data Integrationメタデータ、またはこれら2つの組み合わせを使用できます。各接続は相互から独立しています。

接続ごとに初めてマップエディターを開くと、Talend Data Integrationコンポーネントのスキーマを基にTalend Data Mapperストラクチャーの定義が生成されます。または、Talend Data Mapperメタデータを使用している場合は、既存のTalend Data Mapperストラクチャーを選択できます。その後、選択または生成されたストラクチャーでマップが作成されます。

このコンポーネントは、複数の方法で使用できます。

  • Talend Data Mapperメタデータを基にTalend Data Mapperを操作できます。その場合、コンポーネント(tFileInputRawtFileOutputRawなど)はデータを単一行の単一カラムで渡します。

    使用方法は、Talend Data Mapperメタデータの使用をご覧ください。

  • Talend Data Integrationメタデータを操作できます。その場合、入力および出力コンポーネントをtHMapに接続してから、マップパスを指定せずにマップエディターを開きます。

    使用方法は、Talend Data Integrationメタデータの使用をご覧ください。

  • Talend Data MapperメタデータとTalend Data Integrationメタデータを組み合わせて使用できます。

    使用方法は、データ統合スキーマから複合コンテンツスキーマへの変換をご覧ください。

  • rawファイル入力とスキーマベースの入力接続をtHMapへの入力として使用できるようになりました。

    この使用方法の例は、tHMapと複数のスキーマ入力を使った出力の生成tHMapと複数のペイロード入力を使った出力の生成をご覧ください。

  • Studio Talendで作成したデータベースを使用してこれらのテーブルをtHMapへの入力として接続できます。非推奨であるDatabaseLookup機能を使用するジョブがある場合は、DatabaseLookupからtHMapへの移行でtHMapへの移行手順をご覧ください。
  • tHMapを複数のデータベース出力接続に接続することもできます。過去にIOデータベース機能を使って作成したジョブを移行する場合は、IOデータベース機能をtHMapマルチ出力データベース接続に移行をご覧ください。
  • rawファイル、スキーマベースの接続、ペイロードベースの接続を使ってtHMapを複数の出力接続に接続できます。
  • エラー処理に、tHMapコンポーネントを使ってエラー状態に対処する方法を示します。

  • 単一接続のtHMapの場合、[Generate from Schema] (スキーマから生成)(スキーマベース)と[Select From Existing Structure] (既存のストラクチャーから選択) (ペイロードタイプ)のオプションでは[Wrap Structure] (ストラクチャーの折り返し)オプション(tHMapによる複数の入力/出力のサポートが可能)がデフォルトでオフになっています。

高度な使用事例
  • thMapの出力ストラクチャーでは、Talend Data MapperWriteURLファンクションを使用することもできます。tHMapの出力ストラクチャーにTalend Data Integrationメタデータまたはコンポーネントへの接続とWriteURLファンクションの両方が含まれている場合、WriteURLの値が優先されます。Talend Data Integrationメタデータまたはコンポーネントは、tHMapからデータを一切受信しません。
  • tHMapを使用して、生成されたTalend Data Mapperマップを[Test Run] (テスト実行)モードでテストできます。

    この機能を使用するには、これらのプロパティと互換性があるCSV形式の入力ドキュメントが必要です。
    • デフォルトの区切り文字はコンマ(,)です。
    • システムのデフォルトの改行文字は改行として使用されます。
    • 入力ファイルにはヘッダー行がありません。
    • 出力ファイルにヘッダー行はありません。

    [Show Document] (ドキュメントの表示) > [Select Sample Input Document] (サンプル入力ドキュメントの選択) > [Select Resource/Import Document] (リソースの選択/ドキュメントのインポート)で入力ドキュメントを指定します。

    変換を実行するには、[Test Run] (テスト実行)をクリックします。実行後、生成された出力ドキュメントがCSV形式になります。[Save to File] (ファイルに保存)をクリックしてファイルを保存できます。この機能を設定する場合は、テストの環境設定をご覧ください。

    情報メモヒント: マップ内に複数の入力と出力がある場合は、各行または各ReadURLマップエレメントの入力ドキュメントを指定します。実行するには、[Test Run to External Output] (外部出力にテスト実行)オプションを使って、マップの出力ストラクチャー内のWriteURLごとにファイルURLを指定します。
制限事項
  • 複数の入力接続または出力接続のあるtHMapを作成した場合は、新しいスキーマベースの入力接続または出力接続しか追加できません。
  • 単一カラムを持つ新しい接続を追加する場合、その接続をペイロードストラクチャーと関連付けることはできません。このマップ再生成メカニズムは、新しい接続に対して単一エレメントレコードしか生成しません。
  • 古いEclipseベースのランタイムの場合、tHMapが含まれているジョブをOSGiバンドルとしてデプロイすることはできません。
Talend Runtimeとの使用 データマッピングコンポーネントが含まれているジョブやルートをTalend Runtimeと共にデプロイしたい場合は、まずTalend Data Mapper機能をインストールする必要があります。詳細は、Talend Runtimeと共にTalend Data Mapperを使用をご覧ください。
情報メモ注:
  • Talend Data Mapperを使った変換の実行方法については、このドキュメンテーションをご覧ください。

  • Map、CSV、Avro、XML、Cobol以外の表記を使用する場合、Eclipseベースの古いRuntimeでこのコンポーネントを実行すると一時フォルダーが作成され、Runtimeを停止しても自動的に削除されなくなることがあります。Talend Data Mapperを頻繁に実行する場合、これらのファイルが増大し、最終的にはディスクが満杯になってエラーが生じる可能性があります。このエラーが発生すると、ランタイムに失敗します。このような状況を避けるため、定期的にクリーニングを行ってください。詳細は、一時フォルダーや一時ファイルをクリーンアップをご覧ください。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。