Apache Spark BatchのtHMapInputプロパティ - Cloud - 8.0

Data mapping

Version
Cloud
8.0
Language
日本語 (日本)
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > 変換処理コンポーネント > データマッピング
データガバナンス > サードパーティーシステム > 変換処理コンポーネント > データマッピング
データクオリティとプレパレーション > サードパーティーシステム > 変換処理コンポーネント > データマッピング

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

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

このコンポーネントは、ビッグデータ対応のTalend Platform製品および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]を押してマップを保存します。

    マップの作成については、 Talend Data Mapperユーザーガイドをご参照ください。

Input (入力)

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

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

[...]ボタンをクリックしてマップを開き、 Talend Data Mapper マップエディターで編集を行います。

詳細は、 Talend Data Mapperユーザーガイドをご参照ください。

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

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

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つが存在するかがチェックされ、存在する場合は、拒否されたレコードが指定ファイルに追加されます。拒否されたファイルの内容には、拒否されたレコードの連結が含まれ、追加のメタエータはありません。

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

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

使用方法

使用ルール

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

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

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