# Apache Spark BatchのtHConvertFileプロパティ

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

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

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

## 基本設定

| [Storage] (ストレージ) | HDFS環境に接続するには、[Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、ドロップダウンリストの中から使用するコンポーネントの名前を選択します。<br><br>tHDFSConfigurationコンポーネントのドキュメンテーションで説明されているように、このオプションを有効にするには、使用するHDFS環境への接続をあらかじめ設定しておく必要があります。<br><br>[Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにしない場合、ファイルをローカルでしか変換できません。 |
| --- | --- |
| コンポーネントの設定 | コンポーネントを設定するには、[...]ボタンをクリックし、[Component Configuration] (コンポーネントの設定)ウィンドウで次の手順を実行します。<br><br><ol> <li> <p><span>[Record structure] (レコードストラクチャー)</span>フィールドの横にある<span>[Select] (選択)</span>ボタンをクリックし、表示される<span>[Select a Structure]</span> (ストラクチャーの選択)ダイアログボックスで、ファイルの変換に使うストラクチャーを選択して、<span>[OK]</span>をクリックします。</p> <p>このストラクチャーは、あらかじめ<em><span>Talend Data Mapper</span></em>で作成しておく必要があります。</p> </li> <li> <p>ドロップダウンリストから、使う<span>[Input Representation] (入力表記)</span>を選択します。</p> <p>サポートされる入力形式は、Avro、COBOL、EDI、Flat、IDocs、JSON、XMLです。</p> </li> <li> <p>ドロップダウンリストから、使う<span>[Output Representation] (出力表記)</span>を選択します。出力表記に利用できる選択肢は、入力表記に何を選択するかによって異なります。</p> <p>サポートされるで出力形式は、Avro、Flat、JSON、XMLです。</p> </li> <li> <p><span>[Next] (次へ)</span>をクリックします。</p> </li> <li> <p>新しい各レコードの開始位置をコンポーネントに指定します。この操作を行うには、データのストラクチャーを完全に理解している必要があります。</p> <p>正確な操作方法は、使用する入力表現によって異なり、次のオプションのいずれかを選ぶ必要があります。</p> <ol> <li> <div>データの適切なレコード区切りを選択します。この値は引用符で囲まずに指定する必要があります。<ul> <li> <p> <span>[Separator] (区切り文字)</span>では、改行を特定する<em>\n</em>などの区切り文字指示子を指定できます。</p> <p>サポートされている指示子は、Unixタイプの改行では<em>\n</em>、Windowsの場合は<em>\r\n</em>、Macの場合は<em>\r</em>、タブ文字の場合は<em>\t</em>です。</p> </li> <li> <p> <span>[Start/End with] (開始/終了文字)</span>では、<em>&lt;root</em>など新しいレコードを示す開始文字、またはレコードの終了を示す文字を指定できます。正規表現にすることもできます。</p> <p> <span>[Start with] (開始文字)</span>は改行もサポートし、サポートされている指示子は、Unixタイプの改行では<em>\n</em>、Windowsの場合は<em>\r\n</em>、Macの場合は<em>\r</em>、タブ文字の場合は<em>\t</em>です。</p> </li> <li> <span>Sample File (サンプルファイル)</span>: サンプルファイルで署名をテストするには、<span>[...]</span>ボタンをクリックし、サンプルとして使用するファイルを参照し、<span>[Open] (開く)</span>をクリックし、<span>[Run] (実行)</span>をクリックしてサンプルをテストします。<p>署名をテストすることで、レコードの総数、レコードの最小長と最大長が、データに基づく値に相当するかを確認できます。このステップでは、サンプルとして使うデータのローカルサブセットがあることを前提とします。</p> </li> </ul> <ul> <li> <p><span>[Finish] (終了)</span>をクリックします。 </p> </li> </ul> </div> </li> <li> <div>入力表現がCOBOLまたはフラットで、位置またはバイナリエンコーディングプロパティが指定されている場合は、入力レコードストラクチャーの署名を定義します。<ul> <li> <span>[Input Record root] (入力レコードルート)</span>は、入力レコードのルートエレメントに相当します。</li> <li> <p> <span>[Minimum Record Size] (最小レコードサイズ)</span>は、最小レコードのバイト単位のサイズです。コンポーネントは、新しいレコードを探す時に必要以上に多くチェックを実行するので、この値を低く設定しすぎるとパフォーマンスの問題が生じる可能性があります。</p> </li> <li> <p> <span>[Maximum Record Size] (最大レコード数)</span>は、最大レコードのバイト単位のサイズで、入力の読み取りに割り当てられたメモリ量を判別するために使用されます。</p> </li> <li> <span>[Maximum Block Size (BLKSIZE)] (最大ブロックサイズ(BLKSIZE))</span>は、可変ブロックファイル内の最大ブロックのサイズ(バイト単位)に対応しています。厳密値がない場合は、最大BLKSIZEである<kbd>32760</kbd>を入力します。<p>ブロック化された可変長署名を使うと、各ブロックがSparkレコードとして抽出されます。各マップの実行は、他のCobol署名と同様に、個々のCobolレコードではなく、ブロック全体を処理します。</p> </li> <li> <span>Sample from Workspace (ワークスペースからのサンプル)</span>または<span>Sample from File System (ファイルシステムからのサンプル)</span>: サンプルテストで署名をテストするには、<span>[...]</span>ボタンをクリックしてから、使用するファイルを参照します。<p>署名をテストすることで、レコードの総数、レコードの最小長と最大長が、データに基づく値に相当するかを確認できます。このステップでは、サンプルとして使うデータのローカルサブセットがあることを前提とします。</p> </li> <li> <p> <span>[Footer Size] (フッターサイズ)</span>は、フッター(ある場合)のバイト単位のサイズです。実行時にフッターは、最後のレコードに誤って含まれずに無視されます。フッターがない場合はこのフィールドには何も入力しないでください。</p> </li> <li> <p><span>[Next] (次へ)</span>ボタンをクリックして<span>[Signature Parameters] (署名パラメーター)</span>ウィンドウを開き、レコード入力ストラクチャーの署名を定義するフィールドを選択し(つまり、新しいレコードの開始位置を識別するため)、<span>[Operation] (オペレーション)</span>カラムと<span>[Value] (値)</span>カラムをアップデートし、<span>[Next] (次へ)</span>をクリックします。</p> </li> <li> <p><span>[Record Signature Test] (署名テストを記録)</span>ウィンドウが開いたら、<span>[Back] (戻る)</span>ボタンと<span>[Next] (次へ)</span>ボタンでレコードをスクロールしてビジュアルチェックを実行することで、レコードが正しく描出されていることを確認し、<span>[Finish] (終了)</span>をクリックします。</p> </li> </ul> </div> </li> </ol> </li> </ol> |
| [Input] (入力) | [...]ボタンをクリックして、入力ファイル保存先へのパスを定義します。<br><br>引用符の間に手動でパスを入力することもできます。 |
| Output (出力) | [...]ボタンをクリックして、出力ファイル保管先へのパスを定義します。<br><br>引用符の間に手動でパスを入力することもできます。 |
| アクション | ドロップダウンリストから以下を選択します。<br><br><ul> <li> <p> <span>[Ceate] (作成)</span>: 変換プロセスで新しいファイルを作成する場合。</p> </li> <li> <p> <span>[Overwrite] (上書き)</span>: 変換プロセスで既存のファイルを上書きする場合。</p> </li> </ul> |
| [Open Structure Editor] (ストラクチャーエディターを開く) | [...]ボタンをクリックして、 *Talend Data Mapper* の[Structure Editor] (ストラクチャーエディター)で編集するストラクチャーを開きます。<br><br>詳細は、 *Talend Data Mapperユーザーガイド*をご覧ください。 |
| [Merge result to single file] (結果を1つのファイルにマージ) | デフォルトでは、tHConvertFileはいくつかのパーツファイルを作成します。これらのファイルを1つのファイルにマージするには、このチェックボックスをオンにします。<br><br>情報メモ注: このオプションは、Talendが提供するR2020-07以降のStudioマンスリーアップデートをインストールしている場合にのみ使用できます。詳細は管理者にお問い合わせください。<br><br>ソースとターゲットファイルの管理では、次のオプションを使います:<br><br><ul> <li> <span>[Merge File Path] (マージファイルパス)</span>: すべての部分からのマージされたコンテンツを含むファイルへのパスを入力します。</li> <li> <span>[Remove source dir] (ソースディレクトリーを削除)</span>: このチェックボックスを選択すると、マージ後にソースファイルが削除されます。 </li> <li> <span>ターゲットファイルを上書き</span>: このチェックボックスを選択すると、対象の場所に既に存在するファイルが上書きされます。このオプションでフォルダーは上書きされません。 </li> <li> <span>[Include Header] (ヘッダーを含める)</span>: マージされたファイルの先頭にCSVヘッダーを追加する場合は、このチェックボックスを選択します。このオプションはCSV出力にのみ使います。他の表記の場合、ターゲットファイルには影響しません。</li> </ul><br><br>情報メモ警告: このオプションをAvro出力で使うと、無効なAvroファイルが作成されます。各部分はAvroスキーマヘッダーで始まるため、マージされたファイルには複数のAvroスキーマがあり、これは無効です。 |

## 詳細設定

| [Die on error] (エラー発生時に強制終了) | このチェックボックスを選択すると、エラー発生時にジョブの実行が停止されます。<br><br>このチェックボックスをオフにすると、エラーをスキップしてジョブの実行プロセスを続行できます。 |
| --- | --- |

## 使用方法

| 使用ルール | このコンポーネントは、HDFSストレージへの接続を定義するtHDFSConfigurationコンポーネントと一緒に使うか、ローカルファイルのみの変換用にスタンドアロンとして使います。 |
| --- | --- |
| Talend Runtimeとの使用 | データマッピングコンポーネントが含まれているジョブやルートを Talend Runtimeと共にデプロイしたい場合は、まずTalend Data Mapper機能をインストールする必要があります。詳細は、[Talend Runtimeと共にTalend Data Mapperを使用](https://help.qlik.com/talend/r/ja-JP/7.3/data-mapper-user-guide/using-talend-data-mapper-with-talend-runtime)をご覧ください。 |