機械翻訳について

ラージ・ファイルの処理中の列または行数の合計の計算

ステージ・ファイル・アクションのセグメント内のファイルの読取り操作を使用して、大きなカンマ区切り値(CSV)ファイル(最大1 GB)を処理できます。 列の合計または行数の計算が必要な場合もあります。

次のペイロードについて考えてみます。 Amount1のすべての値の合計を計算するとします。 通常、ステージ・ファイル・アクションの上位変数を宣言し、ステージ・ファイル・アクションの各チャンクで行われる計算でこの変数を更新しておくことができます。
イメージは、Sno、Amount1、Amount2、Amount3およびAmount4の列を含む表を示しています。 各列は整数型であり、必須として識別されます。 各列の4行が表示されます。 前述のAmount1列には、100、200、300および400の値があります。

ただし、ステージ・ファイル・アクション・セグメント内のファイルの読取り操作内の上流変数の更新はパフォーマンスに影響し、ステージ・ファイル・アクションをパラレルに処理することはできません。 統合キャンバスで次の警告メッセージが表示されます:
Stage File Read File in Segments includes action that will result in segments being processed sequentially

このユースケースの解決策として、次のステップを実行して、大規模なファイルの処理中に集計関数sumおよび「カウント」を使用します:

  1. 統合キャンバスにステージ・ファイル・アクションを追加し、セグメント内のファイルの読取り操作を選択してラージ・ファイルを読み取ります。
  2. セグメント内のファイルの読取り操作を使用するステージ・ファイル・アクション内で、ファイルの書込み操作を使用する2つ目のステージ・ファイル・アクションを作成し、「既存のファイルに追加」チェック・ボックスを選択します。
  3. 各セグメントの数と合計を取得し、2つ目のステージ・ファイル・アクションに結果を書き込みます。
    • count ($StageSegments/.../Record)

      マッパーには、ターゲット数関数にマップされたソース・レコード要素が表示されます。 式ビルダーには、カウント($StageSegments/nsmpr2:ReadResponse/ns22:RecordSet/ns22:Record)の関数が表示されます

    • sum ($StageSegments/..Record/ns22:Amount1)

      マッパーには、ターゲット合計関数にマップされたソース・レコード要素が表示されます。 式ビルダーには、合計($StageSegments/nsmpr2:ReadResponse/ns22:Record/ns22:Amount)の関数が表示されます

  4. セグメント内のファイルの読取り操作を使用してステージ・ファイル・アクションを完了した後、ステップ2で作成したファイルをリスト・ファイル操作を使用するステージ・ファイル・アクションを作成します。 ステージ・ファイル処理リスト・ファイル操作のレスポンスにはファイル・サイズが含まれます。 ファイル・サイズによって、次に実行するアクションが決まります。
    この図は、$stageList > ListFilesResponse > FileList > ICSFile >プロパティ>サイズの選択された階層を示しています。

  5. ファイル・サイズが10 MB未満の場合は、全ファイルの読取り操作を使用するステージ・ファイル・アクションでファイルを読み取り、総計を格納するための変数を含む割当てアクションを作成します。
    この図は、変数、データ型、摘要、操作および値の列を含む割当処理を示しています。 TotalNumberOfRecords、SumOfAmount1、SumOfAmount2、SumOfAmount3およびSumOfAmount4の変数があります。

  6. それ以外の場合は、ステップ1からステップ4を新しいファイルで繰り返します。
    統合では、マッパー、FTPアダプタ、ステージ・ファイル・アクション、1つ目の表内のマッパーおよび2つ目のステージ・ファイル・アクション、およびIFおよびそれ以外のブランチを持つスイッチ・アクションが表示されます。