# tHMap

情報メモ注: デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。使用するためには、機能マネージャー使って[Data Mapper &gt; Talend Data Mapper]機能をインストールする必要があります。 詳細は、[機能マネージャーを使って機能をインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/install-features-to-talend-studio)をご覧ください。

[Mapping] (マッピング)パースペクティブにあるTalend Data Mapperの機能を利用して、異なる入力と出力の間で変換(マップと呼ばれる)を行います。

tHMapは、幅広いソース範囲のデータを幅広い宛先範囲に変換します。それには複数の入力と複数の出力のサポートが含まれます。複数の入力を使用する場合は、Talend Data Mapper I/Oファンクションを使用する必要があります。詳細は、[入出力の式](https://help.qlik.com/talend/r/ja-JP/8.0/data-mapper-user-guide/input-output-expressions)をご覧ください。

## tHMapの標準プロパティ

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

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

このコンポーネントは、Talend Data Management Platform、Talend Big Data Platform、Talend Real-Time Big Data Platform、Talend Data Services Platform、Talend Data Fabricで利用できます。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Open Map Editor] (マップエディターを開く) | [...]ボタンをクリックして[Structure Generate/Select] (ストラクチャーの生成/選択)ウィザードを開きます。<br><br>まず、作成するマップのタイプを選択できます。<br><br><ul> <li><span>標準マップ</span>: xQueryに基づいてファンクションを使ってマッピングを実行するマップ</li> <li><span>DSQLマップ</span>: マップは<span>Data Shaping Query Language</span>を使ってマッピングを実行します。</li> </ul><br><br>[Don't ask me again] (今後は確認しない)チェックボックスをオンにすると、この選択を保存できます。これらのマップの詳細は、[マップを使って作業](https://help.qlik.com/talend/r/ja-JP/8.0/data-mapper-user-guide/working-with-maps)をご覧ください。<br><br>情報メモ注: このオプションは、Talendが提供するR2023-10以降のStudioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。<br><br>ここでは、スキーマを基に階層マッパーストラクチャーを自動生成したり、 既存の階層マッパーストラクチャーを選択したりできます。マップの入出力側双方でこの操作を実行してください。以下に、出力構造のオプションを示します。<br><br><ul> <li> <span>[Generate hierarchial mapper structure based on the schema] (スキーマを基に階層マッパー構造を生成する)</span>オプション: 複数の出力接続をtHMapに接続する場合、マッパー構造が出力接続を基に生成されたことを伝える確認メッセージがページに表示されます。</li> <li> <span>[Select an existing hierarchical mapper structure] (既存の階層マッパー構造を選択)</span>オプション: ペイロードベースの接続である複数の出力をtHMapに接続できます。単一のペイロードタイプの接続がある場合は、<span>[Allow support for multiple output connections] (複数の出力接続のサポートを許可)</span>チェックボックスをオンにできます。生成された出力マップは既存のペイロード構造から継承されます。</li> </ul><br><br>使用可能な複数の接続がTalend Studioによって検出されると、ウィンドウには両方の出力ストラクチャーオプションが表示され、複数の出力接続のサポート用のチェックボックスは表示されません。<br><br>入力接続または出力接続のいずれもない場合は、[Sructure Selection] (構造の選択)ページが表示されます。 |
| マップをスキーマ接続で同期化 | 次のいずれかの変更後にマップの入力ストラクチャーと出力ストラクチャーを自動的に再生成する場合は、このチェックボックスをオンにします。<br><br><ul> <li>接続メタデータを変更</li> <li>入力接続または出力接続を追加</li> <li>入力接続または出力接続を削除</li> </ul><br><br><br>接続が有効化されても無効化されても、変化は検出されません。<br><br>このチェックボックスをオンにすると、マップを変更後にコンポーネントから開いた時に、このマップが自動的に同期されます。同期されない場合は、同期するかどうかを尋ねるダイアログが表示されます。<br><br>情報メモ注: 複数の接続を持つストラクチャーの場合、コンポーネント設定ウィザードで生成されたものと同じ形式のストラクチャーでなければマップを同期させることはできません。たとえば、複数の出力を持つフラット化マップを自動的に同期させることはできません。 |
| Map Path | 実行するマップを指定します。<br><br>上記のウィザードを使ってマップが自動的に作成された場合、このパスは自動的に設定されます。<br><br>既存のマップを使用する場合は、[Map Path] (マップパス)フィールドの横の[...]ボタンをクリックして、使用するマップを選択できるダイアログボックスを開きます。次に、[Open Map Editor] (マップエディターを開く)の横の[...]ボタンをクリックして、選択したマップの作業を行います。このマップはあらかじめ Mapping パースペクティブで作成しておく必要があります。 |
| Read Input As (入力の読み取り...) | 希望する入力データの読み取り方法に合ったラジオボタンをオンにします。マップによっては、オプションの一部しか利用できません。<br><br><ul> <li> <p> <span>Data Integration columns (データ統合カラム)</span> (デフォルト): <span>Talend Data Integration</span>メタデータで作業をしている場合は、このオプションを使用します。</p> </li> <li> <p> <span>Single Column (単一カラム)</span>: <span>Talend Data Mapper</span>メタデータで作業をしている場合は、このオプションを使用します。</p> </li> </ul> |
| 出力の書き込み... | 希望する出力データの書き込み方法に合ったラジオボタンをオンにします。マップによっては、オプションの一部しか利用できません。<br><br><ul> <li> <p> <span>Data Integration columns (データ統合カラム)</span> (デフォルト): <span>Talend Data Integration</span>メタデータで作業をしている場合は、このオプションを使用します。</p> </li> <li> <p> <span>[String (single column)] (文字列(単一カラム))</span>: 出力カラムのデータを<span>String</span>にしたい場合はこのオプションを使用します。</p> </li> <li> <p> <span>[Byte array (single column)] (バイト配列(単一カラム))</span>: 出力カラムのデータを<span>Byte array</span>にしたい場合はこのオプションを使用します。</p> </li> <li> <p> <span>[InputStream (single column)] (InputStream (単一カラム))</span>: <span>Talend Data Mapper</span>メタデータで作業を行っていて、入力データがストリームの場合は、このオプションを使用します。</p> </li> <li> <p> <span>[Document (single column)] (ドキュメント(単一カラム))</span>; 出力カラムのデータを<span>Document</span>にしたい場合はこのオプションを使用します。</p> </li> </ul> |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| マップ変数 | このフィールドには、マップへのパスが含まれているコンテキスト変数かグローバル変数を入力します。たとえば、*context.mymapfile*と入力した場合、*mymapfile*は実行時にさまざまなマップファイルを参照できます。毎回新しいジョブを作成せずに複数のマップを使用したい場合に、このオプションが便利です。<br><br>変数の値は相対パスであることが必要です。たとえば、*mapA*というマップがフォルダー*Maps/FolderA*にある場合、変数には値*“FolderA/mapA.xml”*を含める必要があります。.xml拡張子の有無に関係なくパスをファイルに書き込めます。<br><br>変数によって参照される可能性のあるマップは、すべて同じプロジェクト内に置く必要があります。それによってジョブのビルド時に候補マップがすべて含まれ、実行時にマップを切り替えることができるようになります。<br><br>コンテキスト変数での作業の詳細は、Talend Studioユーザーガイドで[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |
| 交互のコンテキストマップ | 実行時に[Map Variable] (マップ変数)に追加したコンテキスト変数が参照できるマップを1つ以上ドロップダウンリストから選択します。<br><br>選択された代替マップは、元のマップと同じマップタイプ(標準またはDSQL)であることが必要です。<br><br>ジョブの構築時、選択した代替コンテキストマップが1つ以上含まれます。代替コンテキストマップの使用に関するシナリオ例については、[tHMapでマップ変数と代替マップを指定](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/specifying-map-variable-and-alternate-map-in-thmap)をご覧ください。 |
| Map each row (disable virtual component) (各行をマップする(仮想コンポーネントを無効化)) | tHMapで入力を単一出力行として処理する場合は、このチェックボックスをオンにします。オンにすると、tHMapが入力行を下流に送る前にバッファーするのを防ぐことができます。<br><br>tSAPIDocReceiverコンポーネントに待ち受けを永続的に行うように指示すると、行が全く送信されなくなるので、たとえば、tHMapコンポーネントと併せてtSAPIDocReceiverを入力コンポーネントとして、スキーマ認識コンポーネントを出力コンポーネントとして使用する場合、このオプションが役立ちます。<br><br>継続的に入力を受信できるよう開いたままにしておける入力コンポーネント(tRestRequest)と共にtHMapを使用する場合は、このオプションを選択する必要があります。これによってtHMapは、受信される入力を直接処理できるようになります。 |
| [Emit empty payload] (空のペイロードを発行) | このチェックボックスをオンにして、出力データがない場合は、出力接続内に空の行を送信します。これは、入力がないまたはマップで入力全体が除外される場合にできます。このチェックボックスがオフになっていると、出力接続に行が送信されません。<br><br>このオプションは、[Map each row] (各行をマップ)チェックボックスがオフになっている時のみ適用されます。 |
| [Use old Eclipse runtime] (古いEclipseランタイムを使用) (非推奨) | 古いEclipseランタイムをジョブに含める場合は、このチェックボックスをオンにします。<br><br>情報メモ注: このオプションは、Talendが提供するR2024-03以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。<br><br>情報メモ注: Talend Studio 8.0 R2025-04以降、[Use old Eclipse runtime] (古いEclipseランタイムを使用) (非推奨)パラメーターは削除されています。 |
| Exception Threshold (例外しきい値) | Talend Data Mapperは[OK]、重大度値([Info] (情報)、[Warning] (警告)、[Error] (エラー)、[Fatal] (致命的)のいずれか)と共に実行ステータスを返します。例外しきい値を設定することにより、例外を返す重大度レベルを指定でき、デフォルト値であるFatal (致命的)以外の場合に、ダウンストリームのコンポーネントがエラーを検出できます。<br><br>ドロップダウンリストから、マップの実行中に例外を返す重大度レベルを選択します。<br><br><ul> <li> <p> <span>[Fatal] (致命的)</span> (デフォルト): 致命的なエラーが発生すると例外がスローされます。 </p> </li> <li> <p> <span>[Error] (エラー)</span>: エラー(またはそれ以上のレベル)が発生した場合に例外を返します。</p> </li> <li> <p> <span>[Warning] (警告)</span>: 警告(またはそれ以上のレベル)が発生した場合に例外を返します。 </p> </li> </ul><br><br>マップの問題を診断しやすくなるよう、Talend Studioでマップをテストした時に警告以上のレベルで発生したエラーは、[Exception Threshold] (例外しきい値)の設定に関係なくコンソールウィンドウに出力されます。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、ジョブレベルおよび各コンポーネントレベルでジョブ処理メタデータが収集されます。 |

## [Global Variables] (グローバル変数)

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>MapExecutionStatus: org.talend.transform.runtime.common.MapExecutionStatusクラスのオブジェクトを返します<br><br>EXECUTION\_SEVERITY: *[Overall Severity] (全体的な重大度)*の数値。これはAfter変数で、整数を返します。<br><br>Flow変数はコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| 使用ルール | tHMapは、多種多様なソースからの複雑なデータマップが必要なジョブに使われます。<br><br>入力接続と出力接続はTalend Data Mapperメタデータ、Talend Data Integrationメタデータ、またはこれら2つの組み合わせを使用できます。各接続は相互から独立しています。<br><br>接続ごとに初めてマップエディターを開くと、Talend Data Integrationコンポーネントのスキーマを基にTalend Data Mapperストラクチャーの定義が生成されます。または、Talend Data Mapperメタデータを使用している場合は、既存のTalend Data Mapperストラクチャーを選択できます。その後、選択または生成された構造でマップが作成されます。<br><br>このコンポーネントは、複数の方法で使用できます。<br><br><ul> <li> <p><span>Talend Data Mapper</span>メタデータを基に<span>Talend Data Mapper</span>を操作できます。その場合、コンポーネント(<span>tFileInputRaw</span>や<span>tFileOutputRaw</span>など)はデータを単一行の単一カラムで渡します。</p> <p>この使用例は、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tfileinputraw-tfileoutputraw-tfileoutputraw-using-talend-data-mapper-metadata-standard-component-enterprise-the" target="_blank">メタデータの使用</a>をご覧ください。</p> </li> <li> <p><span>Talend Data Integration</span>メタデータを操作できます。その場合、入力および出力コンポーネントを<span>tHMap</span>に接続してから、マップパスを指定せずにマップエディターを開きます。</p> <p>この使用例は、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tfileinputdelimited-tfileoutputxml-tfileoutputxml-using-talend-data-integration-metadata-standard-component-enterprise-the" target="_blank">メタデータの使用</a>をご覧ください。</p> </li> <li> <p><span>Talend Data Mapper</span>メタデータと<span>Talend Data Integration</span>メタデータを組み合わせて使用できます。</p> <p>この使用例は、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-trowgenerator-tfileoutputraw-tfileoutputraw-transforming-from-data-integration-schema-to-complex-content-schema-standard-component-enterprise-the" target="_blank">データ統合スキーマから複合コンテンツスキーマに変換</a>をご覧ください。</p> </li> <li>rawファイル入力とスキーマベースの入力接続を<span>tHMap</span>への入力として使用できるようになりました。 <p>この使用例は、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-trowgenerator-generating-output-using-thmap-with-multiple-schema-inputs-spark-batch-component" target="_blank">tHMapと複数のスキーマ入力を使った出力の生成</a>および<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tfileinputraw-generating-output-using-thmap-with-multiple-payload-inputs-spark-batch-component" target="_blank">tHMapと複数のペイロード入力を使った出力の生成</a>をご覧ください。</p> </li> <li><span>Talend Studio</span>で作成したデータベースを使用してこれらのテーブルを<span>tHMap</span>への入力として接続できます。非推奨DatabaseLookup機能を使用するジョブがある場合、tHMapへの移行手順については、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/migrating-from-databaselookup-to-thmap" target="_blank">DatabaseLookupからtHMapへの移行</a>をご覧ください。</li> <li>tHMapを複数のデータベース出力接続に接続することもできます。過去にIOデータベース機能を使って作成したジョブを移行する場合は、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/migrating-io-database-functions-to-thmap-multi-output-database-connections" target="_blank">IOデータベース機能をtHMapマルチ出力データベース接続に移行</a>をご覧ください。</li> <li>rawファイル、スキーマベースの接続、ペイロードベースの接続を使って<span>tHMap</span>を複数の出力接続に接続できます。</li> <li> <p> <a href="https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tjava-tfixedflowinput-tjavarow-handling-errors-standard-component-enterprise-this" target="_blank">エラー処理</a>に、<span>tHMap</span>コンポーネントを使ってエラー状態に対処する方法が示されています。</p> </li> <li> <p>単一接続のtHMapの場合、<span>[Generate from Schema] (スキーマから生成)</span>(スキーマベース)と<span>[Select From Existing Structure] (既存のストラクチャーから選択)</span> (ペイロードタイプ)のオプションでは[Wrap Structure] (ストラクチャーの折り返し)オプション(tHMapによる複数の入力/出力のサポートが可能)がデフォルトでオフになっています。</p> </li> </ul> |
| 高度な使用事例 | <ul> <li><span>thMap</span>の出力ストラクチャーでは、<span>Talend Data Mapper</span>で<span>WriteURL</span>ファンクションを使用することもできます。<span>tHMap</span>の出力ストラクチャーに<span>Talend Data Integration</span>メタデータまたはコンポーネントへの接続と<span>WriteURL</span>ファンクションの両方が含まれている場合、<span>WriteURL</span>の値が優先されます。<span>Talend Data Integration</span>メタデータまたはコンポーネントは、<span>tHMap</span>からデータを一切受信しません。 </li> <li> <p><span>tHMap</span>を使用して、生成された<span>Talend Data Mapper</span>マップを<span>[Test Run] (テスト実行)</span>モードでテストできます。 </p> <div>この機能を使用するには、これらのプロパティと互換性があるCSV形式の入力ドキュメントが必要です。<ul> <li>デフォルトの区切り文字はコンマ(,)です。</li> <li>システムのデフォルトの改行文字は改行として使用されます。</li> <li>入力ファイルにはヘッダー行がありません。</li> <li>出力ファイルにヘッダー行はありません。</li> </ul> </div> <p><span><span>[Show Document] (ドキュメントを表示)</span><abbr> &gt; </abbr><span>[Select Sample Input Document] (サンプル入力ドキュメントを選択)</span><abbr> &gt; </abbr><span>[Select Resource/Import Document] (リソースの選択/ドキュメントのインポート)</span></span>で入力ドキュメントを指定します。</p> <p>変換を実行するには、<span>[Test Run] (テスト実行)</span>をクリックします。実行後、生成された出力ドキュメントがCSV形式になります。<span>[Save to File] (ファイルに保存)</span>をクリックしてファイルを保存できます。この機能を設定する場合は、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/data-mapper-user-guide/test-preferences" target="_blank">テストの環境設定</a>をご覧ください。</p> <div><span>情報メモ</span><span>ヒント:</span> マップ内に複数の入力と出力がある場合は、各行または各ReadURLマップエレメントの入力ドキュメントを指定します。実行するには、<span>[Test Run to External Output] (外部出力にテスト実行)</span>オプションを使って、マップの出力ストラクチャー内のWriteURLごとにファイルURLを指定します。</div> </li> </ul> |
| 制限事項 | <ul> <li>複数の入力接続または出力接続のあるtHMapを作成した場合は、新しいスキーマベースの入力接続または出力接続しか追加できません。 </li> <li>単一カラムを持つ新しい接続を追加する場合、その接続をペイロードストラクチャーと関連付けることはできません。このマップ再生成メカニズムは、新しい接続に対して単一エレメントレコードしか生成しません。</li> <li>古いEclipseベースのランタイムの場合、tHMapが含まれているジョブをOSGiバンドルとしてデプロイすることはできません。</li> </ul> |
| Talend Runtimeとの使用 | データマッピングコンポーネントが含まれているジョブやルートを Talend Runtimeと共にデプロイしたい場合は、まずTalend Data Mapper機能をインストールする必要があります。詳細は、[Talend Runtimeと共にTalend Data Mapperを使用](https://help.qlik.com/talend/r/ja-JP/8.0/data-mapper-user-guide/using-talend-data-mapper-with-talend-runtime)をご覧ください。 |

情報メモ注:

* Talend Data Mapperを使った変換の実行方法については、[このドキュメンテーション](https://help.qlik.com/talend/r/ja-JP/8.0/data-mapper-user-guide/what-is-talend-data-mapper)をご覧ください。

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

**関連概念**

* [tHMapと複数のペイロード入力を使った出力の生成](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tfileinputraw-generating-output-using-thmap-with-multiple-payload-inputs-spark-batch-component "tHMapを使用すると、複数のペイロード入力を接続し、出力を1つの結果に生成できます。このシナリオでは、複数の入力に接続されたtHMapを持つジョブを作成する方法について説明します。")
* [tHMapと複数のスキーマ入力を使った出力の生成](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-trowgenerator-generating-output-using-thmap-with-multiple-schema-inputs-spark-batch-component "tHMapは、スキーマベースの入力接続または他のrawファイル入力から送信された複数の入力をサポートします。このシナリオでは、スキーマベースの入力と[Main] (メイン)接続を使って、出力をtHMapコンポーネントに生成する方法について説明します。")
* [エラー処理](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tjava-tfixedflowinput-tjavarow-handling-errors-standard-component-enterprise-this)
* [データ統合スキーマから複合コンテンツスキーマへの変換](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-trowgenerator-tfileoutputraw-tfileoutputraw-transforming-from-data-integration-schema-to-complex-content-schema-standard-component-enterprise-the)
* [Talend Data Integrationメタデータの使用](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tfileinputdelimited-tfileoutputxml-tfileoutputxml-using-talend-data-integration-metadata-standard-component-enterprise-the)
* [Talend Data Mapperメタデータの使用](https://help.qlik.com/talend/ja-JP/components/8.0/data-mapping/thmap-tfileinputraw-tfileoutputraw-tfileoutputraw-using-talend-data-mapper-metadata-standard-component-enterprise-the)