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

Apache Spark BatchのtHMapFileプロパティ

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

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

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

基本設定

ストレージ

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] (マップエディターを開く)

[...]ボタンをクリックして[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] (リジェクト)接続。出力コンポーネントでは、次のカラムを持つ固定メタデータを必ず追加してください:
    • 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スキーマがあり、これは無効です。

詳細設定

[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を使用をご覧ください。

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

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