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

Apache Spark BatchのtHMapInputプロパティ

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

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

このコンポーネントは、ビッグデータ対応のTalend製品およびTalend Data Fabricで使用できます。

基本設定

ストレージ

HDFS環境に接続するには、[Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、ドロップダウンリストの中から使用するコンポーネントの名前を選択します。

tHDFSConfigurationコンポーネントのドキュメンテーションで説明されているように、このオプションを有効にするには、使用するHDFS環境への接続をあらかじめ設定しておく必要があります。

[Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにしない場合、ファイルをローカルでしか変換できません。

コンポーネントの設定

このコンポーネントを設定する前に、ダウンストリームコンポーネントを追加してtHMapInputコンポーネントにリンクし、ダウンストリームコンポーネントからスキーマを取得しておく必要があります。

コンポーネントを設定するには、[...]ボタンをクリックし、[Component Configuration] (コンポーネントの設定)ウィンドウで次の手順を実行します。
  1. [Record structure] (ストラクチャーを記録)フィールドの横にある[Select] (選択)ボタンをクリックし、[Select a Structure] (ストラクチャーを選択)ダイアログボックスが開いたら、使うマップを選択して[OK]をクリックします。

    ストラクチャーはあらかじめ Talend Data Mapper で作成しておく必要があります。

  2. ドロップダウンリストから、使う[Input Representation] (入力表記)を選択します。

    サポートされる入力形式は、Avro、COBOL、EDI、Flat、IDocs、JSON、XMLです。

  3. [Next] (次へ)をクリックします。

  4. 新しい各レコードの開始位置をコンポーネントに指定します。この操作を行うには、データのストラクチャーを完全に理解している必要があります。

    正確な操作方法は、使用する入力表現によって異なり、次のオプションのいずれかを選ぶ必要があります。

    1. データの適切なレコード区切りを選択します。この値は引用符で囲まずに指定する必要があります。

      • [Separator] (区切り文字)では、改行を特定する\nなどの区切り文字指示子を指定できます。

        サポートされている指示子は、Unixタイプの改行では\n、Windowsの場合は\r\n、Macの場合は\r、タブ文字の場合は\tです。

      • [Start/End with] (開始/終了文字)では、<rootなど新しいレコードを示す開始文字、またはレコードの終了を示す文字を指定できます。

        [Start with] (開始文字)は改行もサポートし、サポートされている指示子は、Unixタイプの改行では\n、Windowsの場合は\r\n、Macの場合は\r、タブ文字の場合は\tです。

        レコードの先頭と一致する正規表現を入力する場合は、[Regular Expression] (正規表現)チェックボックスをオンにします。XMLまたはJSONを選択すると、このチェックボックスはデフォルトでオンになり、事前設定された正規表現が提供されます。

      • Sample File (サンプルファイル): サンプルファイルで署名をテストするには、[...]ボタンをクリックし、サンプルとして使用するファイルを参照し、[Open] (開く)をクリックし、[Run] (実行)をクリックしてサンプルをテストします。

        署名をテストすることで、レコードの総数、レコードの最小長と最大長が、データに基づく値に相当するかを確認できます。このステップでは、サンプルとして使うデータのローカルサブセットがあることを前提とします。

      • [Finish] (終了)をクリックします。

    2. 入力表現がCOBOLまたはフラットで、位置またはバイナリエンコーディングプロパティが指定されている場合は、入力レコードストラクチャーの署名を定義します。
      • [Input Record root] (入力レコードルート)は、入力レコードのルートエレメントに相当します。
      • [Minimum Record Size] (最小レコードサイズ)は、最小レコードのバイト単位のサイズです。コンポーネントは、新しいレコードを探す時に必要以上に多くチェックを実行するので、この値を低く設定しすぎるとパフォーマンスの問題が生じる可能性があります。

      • [Maximum Record Size] (最大レコード数)は、最大レコードのバイト単位のサイズで、入力の読み取りに割り当てられたメモリ量を判別するために使用されます。

      • Sample from Workspace (ワークスペースからのサンプル)またはSample from File System (ファイルシステムからのサンプル): サンプルテストで署名をテストするには、[...]ボタンをクリックしてから、使用するファイルを参照します。

        署名をテストすることで、レコードの総数、レコードの最小長と最大長が、データに基づく値に相当するかを確認できます。このステップでは、サンプルとして使うデータのローカルサブセットがあることを前提とします。

      • [Footer Size] (フッターサイズ)は、フッター(ある場合)のバイト単位のサイズです。実行時にフッターは、最後のレコードに誤って含まれずに無視されます。フッターがない場合はこのフィールドには何も入力しないでください。

      • [Next] (次へ)ボタンをクリックして[Signature Parameters] (署名パラメーター)ウィンドウを開き、レコード入力ストラクチャーの署名を定義するフィールドを選択し(つまり、新しいレコードの開始位置を識別するため)、[Operation] (オペレーション)カラムと[Value] (値)カラムをアップデートし、[Next] (次へ)をクリックします。

      • [Record Signature Test] (署名テストを記録)ウィンドウが開いたら、[Back] (戻る)ボタンと[Next] (次へ)ボタンでレコードをスクロールしてビジュアルチェックを実行することで、レコードが正しく描出されていることを確認し、[Finish] (終了)をクリックします。

  5. 開いた新しいマップでエレメントを入力ストラクチャーから出力ストラクチャーにマップし、[Ctrl]+[S]を押してマップを保存します。

    マップ作成の詳細は、標準マップを作成をご覧ください。

Input

[...]ボタンをクリックして、入力ファイル保存先へのパスを定義します。

[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] (ストラクチャーの選択)ページが表示されます。

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

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

Die on error (エラー発生時に強制終了)

このチェックボックスは、デフォルトで選択されています。

エラーの発生した行をスキップし、エラーが発生していない行の処理を完了するには、このチェックボックスをオフにします。

チェックボックスをオフにすると、以下のオプションが使えます:
  • [Row] (行) > [Rejects] (拒否)接続を使って、tHMapInputコンポーネントをtAvroOutputなどの出力コンポーネントに接続します。出力コンポーネントでは、次のカラムを持つ固定メタデータを必ず追加してください:
    • inputRecord: 変換中にリジェクトされた入力レコードを含みます。
    • recordId: レコード識別コードを参照します。テキストまたはバイナリ入力の場合、recordIdは入力ファイル内のレコードの開始オフセットを指定します。AVRO入力の場合、recordIdは入力が処理された時のタイムスタンプを指定します。
    • errorMessage: 変換ステータスと変換エラーの詳細な原因が含まれています。
  • リジェクトしたレコードを1つのファイルに取得できます。これらのメカニズムの1つにより、この機能がトリガーされます: (1)コンテキスト変数(talend_transform_reject_file_path)および(2)詳細ジョブパラメーターで設定されているシステム変数(spark.hadoop.talend.transform.reject.file.path)。

    ファイルパスをHadoopディストリビューションファイルシステム(HDFS)で設定する場合、その他の設定を行う必要はありません。Amazon S3または他のHadoop互換ファイルシステムでファイルを設定する場合は、関連付けられたSpark詳細設定パラメーターを追加します。

    実行時にエラーが発生すると、tHMapFileによってメカニズムの1つが存在するかがチェックされ、存在する場合は、拒否されたレコードが指定ファイルに追加されます。拒否されたファイルの内容には、拒否されたレコードの連結が含まれ、追加のメタエータはありません。

    使用するファイルシステムでファイルへの追加がサポートされていない場合、拒否ごとにファイルが個別に作成されます。このファイルは、提供されたファイルパスをプレフィックスとして使用し、入力ファイルのオフセットであり、拒否されたレコードのサイズであるサフィックスを追加します。

情報メモ注: 拒否の保存中に発生したエラーはログに記録され、プロセスはそのまま続行します。

詳細設定

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

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

使用方法

使用ルール

このコンポーネントは、HDFSストレージへの接続を定義するtHDFSConfigurationコンポーネントと共に使います。

これは入力コンポーネントで、出力フローを必要とします。

Talend Runtimeとの使用 データマッピングコンポーネントが含まれているジョブやルートをTalend Runtimeと共にデプロイしたい場合は、まずTalend Data Mapper機能をインストールする必要があります。詳細は、Talend Runtimeと共にTalend Data Mapperを使用をご覧ください。

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

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