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

Apache Spark BatchのtHMapFileプロパティ

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

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

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

基本設定

[Storage] (ストレージ)

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

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

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

コンポーネントの設定

コンポーネントを設定するには、[...]ボタンをクリックし、[Component Configuration] (コンポーネントの設定)ウィンドウで次の手順を実行します。

  1. [Record Map] (マップを記録)フィールドの横にある[Select] (選択)ボタンをクリックし、[Select a Map] (マップを選択)ダイアログボックスが開いたら、使用するマップを選択して[OK]をクリックします。

    マップはあらかじめ Talend Data Mapper で設定しておく必要があります。

    入力表現と出力表現はマップで定義されたものであり、コンポーネントで変更することはできません。

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

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

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

    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です。

      • 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] (終了)をクリックします。

[Input] (入力)

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

[Output] (出力)

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

アクション

ドロップダウンリストから以下を選択します。
  • Ceate (作成): マッピングプロセスで新しいファイルを作成する場合。

  • Overwrite (上書き): マッピングプロセスで既存のファイルを上書きする場合。

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

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

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

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

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

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

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

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

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

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

情報メモ注: 拒否の保存中に発生したエラーはログに記録され、プロセスはそのまま続行します。
[Merge result to single file] (結果を1つのファイルにマージ)

デフォルトでは、tHMapFileは複数のパーツファイルを作成します。これらのファイルを1つのファイルにマージするには、このチェックボックスを選択します。

ソースとターゲットファイルの管理では、次のオプションを使います:
  • [Merge File Path] (マージファイルパス): すべての部分からのマージされたコンテンツを含むファイルへのパスを入力します。
  • [Remove source dir] (ソースディレクトリーを削除): このチェックボックスを選択すると、マージ後にソースファイルが削除されます。
  • ターゲットファイルを上書き: このチェックボックスを選択すると、対象の場所に既に存在するファイルが上書きされます。このオプションでフォルダーは上書きされません。
  • [Include Header] (ヘッダーを含める): マージされたファイルの先頭にCSVヘッダーを追加する場合は、このチェックボックスを選択します。このオプションはCSV出力にのみ使います。他の表記の場合、ターゲットファイルには影響しません。
情報メモ警告: このオプションをAvro出力で使うと、無効なAvroファイルが作成されます。各部分はAvroスキーマヘッダーで始まるため、マージされたファイルには複数のAvroスキーマがあり、これは無効です。

使用方法

使用ルール このコンポーネントは、HDFSストレージへの接続を定義するtHDFSConfigurationコンポーネントと一緒に使用するか、ローカルファイルのみのマッピング用にスタンドアロンとして使用します。
Talend Runtimeとの使用 データマッピングコンポーネントが含まれているジョブやルートを Talend Runtimeと共にデプロイしたい場合は、まずTalend Data Mapper機能をインストールする必要があります。詳細は、 Talend Runtimeと共にTalend Data Mapperを使用をご覧ください。

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

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