tMapの使用におけるメモリ制限問題の解決 - Cloud - 7.3

Talend Studioユーザーガイド

Version
Cloud
7.3
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発
Last publication date
2024-02-13

大規模なデータソース、たとえば多数のカラム、多数の行、多数のカラムタイプなどを処理する場合は、メモリ不足の問題が発生する可能性があり、特に変換処理でtMapコンポーネントを使用する場合にジョブが正しく完了しないことがあります。

ルックアップのロード時に使用するメモリを削減するためtMapコンポーネントに、機能が追加されました(現時点ではJavaのみ)。実際には、一時データをシステムメモリに保管してメモリ制限に到達する危険を冒す代わりに、[Store temp data] (一時データ保管)オプションを使用することで、一時データをディスクのディレクトリーに保管できます。

この機能は[Map Editor] (マップエディター)の入力データのルックアップテーブルで選択するオプションとして利用できます。

[Store temp data] (一時データ格納)オプションを有効にするは、次の手順に従います。

  1. ジョブでtMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を起動します。
  2. 入力エリアで、メモリではなくディスクにロードする一時データを記述している[Lookup] (ルックアップ)テーブルをクリックします。
  3. [tMap settings] (tMap設定)ボタンをクリックして、テーブルプロパティを表示します。
  4. [Store temp data] (一時データ保管)に対応する[Value] (値)フィールドをクリックして表示される[...]ボタンをクリックし、[Options] (オプション)ダイアログボックスを表示します。
  5. [Options] (オプション)ダイアログボックスの中で、[true]をダブルクリックするか、選択してからOKをクリックして、オプションを有効にしてからダイアログボックスを閉じます。

このオプションを完全に有効にするには、データを保管するディスクのディレクトリー、および一時ファイルに収容するデータの行数でバッファーサイズを指定する必要があります。この一時格納ディレクトリーおよびバッファーサイズは、[Map Editor] (マップエディター)またはtMapコンポーネントのプロパティ設定のどちらかを使って設定できます。

[Map Editor] (マップエディター)の一時格納ディレクトリーおよびバッファーサイズを設定するには、以下の操作を行います:

  1. 入力エリアの上部にある[Property Settings] (プロパティ設定)ボタンをクリックして、[Property Settings] (プロパティ設定)ダイアログボックスを表示します。
  2. [Property Settings] (プロパティ設定)ダイアログボックスで、一時データを保管するディレクトリーへの完全パスを[Temp data directory path] (一時データディレクトリーパス)フィールドに入力します。
  3. [Max buffer size (nr of rows)] (最大バッファーサイズ-行数)フィールドには、一時ファイルに格納できる最大行数を指定します。デフォルト値は2,000,000です。
  4. OKをクリックして設定を確定し、[Property Settings] (プロパティ設定)ダイアログボックスを閉じます。

[Map Editor] (マップエディター)を開かずにtMapコンポーネントのプロパティ設定で一時格納ディレクトリーを設定するには、次の手順に従います。

  1. デザインワークスペースでtMapコンポーネントをクリックして選択し、[Component] (コンポーネント)タブを選択して、[Basic settings] (基本設定)ビューを表示します。
  2. [Store on disk] (ディスクへ格納)エリアで、一時データを格納するディレクトリーへの完全パスを[Temp data directory path] (一時データディレクトリーパス)フィールドに入力します。

    または、リポジトリーの[Context] (グループ)に変数を設定している場合、Ctrl + スペースを押してコンテキスト変数を使用できます。コンテキストの詳細は、コンテキストと変数を使用をご覧ください。

サブジョブの最後で一時ファイルはクリアされます。

このように、参照データがディスクに保管される一時ファイルに書き込まれるようにすることで、割り当てメモリの使用を制限できます。

注: メインフローをディスクに書き込むにはデータのソートが必要になり、出力行の順序は保証されません。

[Advanced settings] (詳細設定)ビューでも、必要に応じてバッファーサイズを設定できます。[Max buffer size (nr of rows)] (最大バッファーサイズ - 行数)のフィールドに入力すると、データは必要な分のファイルに分割されてディスクに格納されます。