JP2007086951A - ファイル分割処理方法及びファイル分割プログラム - Google Patents

ファイル分割処理方法及びファイル分割プログラム Download PDF

Info

Publication number
JP2007086951A
JP2007086951A JP2005273154A JP2005273154A JP2007086951A JP 2007086951 A JP2007086951 A JP 2007086951A JP 2005273154 A JP2005273154 A JP 2005273154A JP 2005273154 A JP2005273154 A JP 2005273154A JP 2007086951 A JP2007086951 A JP 2007086951A
Authority
JP
Japan
Prior art keywords
file
record
division
key
output destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005273154A
Other languages
English (en)
Inventor
Sadasuke Yamaguchi
禎介 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2005273154A priority Critical patent/JP2007086951A/ja
Publication of JP2007086951A publication Critical patent/JP2007086951A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 処理対象ファイルに含まれるレコード群を複数の分割ファイルに振分ける際に、前記レコード群のレコード件数に応じた振り分け設定を可能とするファイル分割プログラムを提供する。
【解決手段】 ファイル分割プログラム101は、TSS端末140により指定されたパラメータファイル112から、分割ファイル131の分割数を取得する。次に、後述するレコード加工処理により、入力ファイル111の各レコードについて、主キーのキー値が重複しているレコード数をキー重複数情報として付加する。キー重複数情報を付加した後、後述する出力先ファイル決定処理により、各レコードに出力先を割り当て、その出力先情報を作業用ファイル121に付加する。最後に、ファイル出力処理として、作業用ファイル121の各レコードを該当する分割ファイル131に出力する。
【選択図】 図1

Description

本発明は、コンピュータシステムにおけるファイル分割プログラムに係り、特に、メインフレーム等で大量のファイルを扱う際に、並列処理の処理効率を向上するために平準化された分割ファイルを生成するための構成に関する。
従来より、メインフレームのような汎用コンピュータで大量のファイルに対するバッチ処理を行う場合には、処理対象となるファイルに含まれるレコードをいくつかのファイルに分割し、並列して実行することで処理効率を上げていた。
その際のファイル分割方法としては、キー値により識別されるレコード群について、ファイル分割数に応じて予め設定したキー範囲に応じて、各分割ファイルに振分ける処理が一般的に行われている。
また、従来公知となっているファイル分割処理としては、データの先頭位置及び最終位置を含む管理情報によって管理されるファイルの分割方法において、分割元ファイルの管理情報を分割後のファイルの複数の管理情報に分割する処理を行うものがある(例えば、特許文献1参照。)。また、ファイルの再配置システムとして、各ボリュームに対するファイルの配置状態情報に基づき、ファイルの再配置を行うこととしたものが公知となっている(例えば、特許文献2参照。)。
特開平06−231016号公報 特開2003−296148号公報
しかし、前記従来のファイル分割方法では、予め設定されたキー範囲に応じて各ファイルにレコード群を振分けることとしているので、レコード群を構成するレコード件数にばらつきがある場合には、分割ファイルに含まれるレコード件数に偏りが生じる恐れがあった。
また、前記特許文献1に記載の構成は、ファイルの分割処理そのものを如何に効率よく行うかを目的としたものであり、ファイルに含まれる複数のレコード群を各分割ファイルに対して適切に割り当てるための構成については考慮されていなかった。
また、前記特許文献2に記載の構成は、複数ボリュームにおけるファイルの配置状態に応じたファイルの再配置を行うものであり、各レコード群のレコード数に応じた振分けを考慮したものではなかった。
本発明は前記課題を解決するためのものであり、処理対象ファイルに含まれるレコード群を複数の分割ファイルに振分ける際に、前記レコード群のレコード件数に応じた振り分け設定を可能とするファイル分割プログラムを提供することを目的とする。
前記課題を解決するため本発明のファイル分割処理方法は、複数のレコードを有する入力ファイルについて、ファイル分割手段が、キー値により識別されるレコード群毎に複数ファイルに分割するファイル分割処理方法であって、前記ファイル分割手段は、前記入力ファイルに含まれる各レコードのキー値に基づき、キー重複数を検出して、検出結果をキー重複数情報として前記各レコードに付加するレコード加工処理ステップと、前記キー重複数情報に基づき、任意に設定された分割数に応じて、各レコード群毎の出力先となる分割ファイルを示す出力先情報を各レコードに設定する出力先ファイル決定処理ステップと、前記出力先情報に基づき、各分割ファイルに各レコードを出力するレコード出力処理ステップとからなることを特徴とする。
また、前記出力先ファイル決定処理ステップは、前記キー重複数情報の値が大きいレコード群から順に、レコードの出力設定件数が小さい分割ファイルに割り当てることを特徴とする。
また、本発明のファイル分割プログラムは、複数のレコードを有する入力ファイルについて、キー値により識別されるレコード群毎に複数ファイルに分割する処理をコンピュータに実行させるファイル分割プログラムであって、前記入力ファイルに含まれる各レコードの主キーのキー値に基づき、キー重複数を検出して、検出結果をキー重複数情報として前記各レコードに付加するレコード加工処理と、前記キー重複数情報に基づき、任意に設定された分割数に応じて、各レコード群毎の出力先となる分割ファイルを示す出力先情報を各レコードに設定する出力先ファイル決定処理と、前記出力先情報に基づき、各分割ファイルに各レコードを出力するレコード出力処理とをコンピュータに実行させることを特徴とする。
また、前記出力先ファイル決定処理は、前記キー重複数情報の値が大きいレコード群から順に、レコードの出力設定件数が小さい分割ファイルに割り当てることを特徴とする。
以上の構成により本発明では、ノンユニークな主キーにより識別される複数のレコード群を、複数の分割ファイルに分割するファイル分割プログラムであって、主キーに基づきキー重複数情報を各レコードに付加し、キー重複数情報に基づき、予め設定された分割数に応じて、レコードの出力先を設定することとしたので、各レコード群を構成するレコードの数に偏りがあるファイルについても、レコード数を平準化した分割ファイルの生成が可能となる。また、分割処理毎に動的に出力先を設定することとしたため、キー値の分布が異なる複数のファイルや、処理毎にキー値の分布が変化するファイルについても、均等にファイル分割を行うことが可能となる。
以下、本発明の一実施の形態に係るファイル分割プログラムについて、図面に基づき説明する。
図1は、本実施の形態に係るファイル分割プログラムを備えたメインフレームの概略構成を示すブロック図である。
メインフレーム100は、ファイル分割プログラム101と入力情報格納領域110、作業領域120、出力情報格納領域130とを備える。メインフレーム100に対しては、作業指示を行うTSS端末140が接続されている。
入力情報格納領域110には、ファイル分割プログラム101の処理対象となる入力ファイル111と、ファイル分割プログラム101が出力する分割ファイル131の分割数が設定されたパラメータファイル112とが格納されている。
作業領域120には、ファイル分割プログラム101が、入力ファイル111に対しキー重複数情報及び出力先情報を付加した作業用ファイル121を一時格納する。
出力情報格納領域130には、ファイル分割プログラム101が、入力ファイル111に基づき生成した分割ファイル131を格納する。
図2は、本実施の形態に係るファイル分割プログラム101の行う分割ファイル出力処理手順の概要を示すフローチャートである。
まず、ファイル分割プログラム101は、TSS端末140からの作業指示を受付け、TSS端末140により指定されたパラメータファイル112から、分割ファイル131の分割数を取得する(ステップ201)。
次に、後述するレコード加工処理により、入力ファイル111の各レコードについて、主キーのキー値が重複しているレコード数をキー重複数情報として付加する(ステップ202)。
キー重複数情報を付加した後、後述する出力先ファイル決定処理により、キー重複数情報がキー重複数情報が最も大きいものから順に、出力先の割り当て件数が最も少ない分割ファイル131に出力先を割り当て、その出力先情報を作業用ファイル121に付加する(ステップ203)。
最後に、ファイル出力処理として、ステップ203において付加した出力先情報に従い、作業用ファイル121の各レコードを該当する分割ファイル131に出力する(ステップ204)。
図3は、図2のステップ202に示すレコード加工処理の詳細を示すフローチャートである。
レコード加工処理では、まず、キー重複数情報を「0」に初期化し(ステップ301)、入力ファイル111よりレコードを1件読み込み(ステップ302)、レコードが正しく読込めたか否かを判定する(ステップ303)。
レコードが正しく読込めた場合には、読み込んだレコードを作業用ファイル121に追加する(ステップ304)。
追加したレコードの主キーのキー値と、前回追加したレコードの主キーのキー値とを比較し(ステップ305)、双方のキー値が同値の場合には、キー重複数情報を1加算して(ステップ306)して、次のレコードの読み込みを行う(ステップ302)。
一方、双方のキー値が異なる場合には、キー値が同値である全てのレコードに対して、キー重複数情報を付加し(ステップ307)、キー重複数情報を再度初期化した後(ステップ301)、次のレコードの読み込みを行う(ステップ302)。
以上の処理により、入力ファイル111に含まれるレコードにキー重複数情報を付加したレコードを作業用ファイル121に出力する。
以上説明したレコード加工処理について具体例を用いて説明する。
図4は、レコード加工処理の処理対象としての入力ファイルのデータ構造の一例を示す図である。
本例に示す入力ファイル400は、各レコード401〜406のそれぞれについて、主キー411,副キー412,データ部413を有している。
主キー411は、入力ファイル400内で、レコード群を識別するノンユニークな値を示す。本実施の形態では、主キー411のキー値が共通のレコード群毎に各分割ファイルに格納する。
副キー412は、入力ファイル400内で、各レコードを識別するユニークな値を示す。
図5は、図4に示す入力ファイル400に基づき、各レコードの出力された作業用ファイルのデータ構造の一例を示す図である。
本例に示す作業用ファイル500は、入力ファイル400に含まれる各レコード401〜406に対応するレコード501〜506が格納されている。各レコード501〜506は、入力ファイル400のデータ構造に対応する主キー511,副キー512,データ部513と、レコード加工処理により付加されたキー重複数情報514とを有している。
キー重複数情報514は、主キーのキー値が同値のレコード数を示すものである。
本例では、レコード501,502の主キー511のキー値が共に「1000000001」であるため、キー重複数情報514の値が「2」となっている。同様にレコード503〜505は、主キー511のキー値が共に「2000000001」であるため、キー重複数情報514の値が「3」となっている。レコード506は、主キーのキー値が「3000000001」となるレコードが他に無いため、キー重複数情報514の値が「1」となっている。
以上の処理により、キー重複数情報の付加された作業用ファイル121に対し、以下の出力先ファイル決定処理を行う。
図6は、図2のステップ203に示す出力先ファイル決定処理の詳細を示すフローチャートである。
本処理では、まず、分割ファイル毎の出力件数情報を「0」に初期化し(ステップ601)、最大キー重複数情報を設定し(ステップ602)、処理カウンタを「0」に初期化する(ステップ603)。
次に、作業用ファイルからレコードを1件読み込み(ステップ604)、処理カウンタを「1」加算する(ステップ605)。
加算した結果、処理カウンタの値が作業用ファイル121のレコード件数を超えたか否かを判定し(ステップ606)、作業用ファイル121のレコード件数以下の場合には、処理対象レコードに含まれるキー重複数情報と、ステップ602で設定した最大キー重複数情報とを比較し(ステップ607)、双方が同値であれば、さらに前回読み込んだレコードの主キーのキー値と、今回読み込んだレコードの主キーのキー値を比較する(ステップ608)。
比較の結果、双方が同値であれば、前回の処理対象レコードに対して設定した出力先情報を、今回の処理対象レコードの出力先情報に設定する(ステップ609)。一方、双方のキー値が異なる場合には、レコードの出力件数が最小となっている分割ファイル131を、今回の処理対象レコードの出力先情報に設定する(ステップ610)。
処理対象レコードに対して出力先情報を設定した後、設定した出力先情報に示す分割ファイル131の出力件数を「1」加算して(ステップ611)、次のレコードを読み込む(ステップ604)。ステップ607において、双方のキー重複数情報の値が異なる場合にも、次のレコードを読み込む(ステップ604)。
一方、ステップ606において、処理カウンタの値が作業用ファイル121のレコード件数を超えた場合には、最大キー重複数情報を「1」減算し(ステップ612)、最大キー重複情報の値が「0」となったか否かを判定し(ステップ613)、「0」となった場合には処理を終了する。一方、最大キー重複情報の値が「0」以外の場合には、処理カウンタを「0」に初期化して(ステップ603)、次のレコードを読み込む(ステップ604)。
以上の処理により、作業用ファイル121に含まれるレコードに出力先情報を設定する。
以上説明した出力先ファイル決定処理について具体例を用いて説明する。
なお、以下の具体例では、パラメータファイル112に設定された分割数を「2」と仮定する。
図7は、図5に示す作業用ファイル500に対し、出力先情報を設定した例を示す図である。
本例に示す作業用ファイル700に含まれる各レコード701〜702には、主キー711,副キー712,データ部713,キー重複数情報714と、出力先ファイル決定処理により付加された出力先情報715とを有している。
出力先情報715は、各レコード701〜706の出力先となる分割ファイルの識別情報が格納されており、本例では、パラメータファイル112に設定された分割数が「2」であることから、「1」又は「2」の値が設定されている。
本例の場合、最大キー重複数情報が「3」であるため、キー重複数情報に「3」が設定されているレコード703〜705の出力先情報に「1」が設定され、分割ファイル1の出力件数が「3」、分割ファイル2の出力件数が「0」となる。
次に、キー重複数情報に「2」が設定されているレコード701,702については、分割ファイル1の出力件数が「3」で、分割ファイル2の出力件数が「0」で、分割ファイル2の出力件数が小さいため、出力先情報に「2」が設定され、分割ファイル2の出力件数が「2」となる。
最後にキー重複数情報に「1」が設定されているレコード706については、分割ファイル1の出力件数が「3」で、分割ファイル2の出力件数が「2」で、分割ファイル2の出力件数が小さいため、出力先情報に「2」が設定され、分割ファイル2の出力件数が「3」となる。
図8は、図7の作業用ファイル700に設定された出力先情報に基づき、各分割ファイルにレコードを出力した結果を示す図である。
分割ファイル810,820には、それぞれのレコード811〜813,821〜823について、図4に示す入力ファイル400と同様に、主キー801,副キー802,データ部803を有する。
分割ファイル810は、図7に示す出力先情報715に「1」が設定されたレコード703〜705に対応するレコード811〜813を有する。
分割ファイル820は、図7に示す出力先情報715に「2」が設定されたレコード701,702,706に対応するレコード811〜813を有する。
各分割ファイル810,820は、それぞれ主キーの共通するレコードが含まれている。
以上のように、本実施の形態に係るファイル分割プログラムは、主キーの共通するレコード群毎に、予め設定された数のファイルに分割する場合に、各レコード群のレコード件数に応じて出力先となるファイルを決定することとしたので、各レコード群にレコード件数の偏りがある場合であっても、各分割ファイルに対しレコード件数を平準化することが可能となる。
本発明の一実施の形態に係るファイル分割プログラムを備えたメインフレームの概略構成を示すブロック図である。 本発明の一実施の形態に係るファイル分割プログラムによる分割ファイル出力処理手順を示すフローチャートである。 レコード格納処理の詳細を示すフローチャートである。 入力ファイルのデータ構造の一例を示す図である。 図4の入力ファイルの各レコードに対してキー重複数情報を付加した作業用ファイルのデータ構造の一例を示す図である。 出力先決定処理の詳細を示すフローチャートである。 図5の作業用ファイルに対して出力先情報を付加した作業用ファイルのデータ構造の一例を示す図である。 図7に示す作業用ファイルの出力先情報に基づき各レコードを出力した分割ファイルの一例を示す図である。
符号の説明
100 メインフレーム、101 ファイル分割プログラム、110 入力情報格納領域、111 入力ファイル、120 作業領域、121 作業用ファイル、130 出力情報格納領域、131 分割ファイル、140 TSS端末。

Claims (4)

  1. 複数のレコードを有する入力ファイルについて、ファイル分割手段が、キー値により識別されるレコード群毎に複数ファイルに分割するファイル分割処理方法であって、
    前記ファイル分割手段は、
    前記入力ファイルに含まれる各レコードのキー値に基づき、キー重複数を検出して、検出結果をキー重複数情報として前記各レコードに付加するレコード加工処理ステップと、
    前記キー重複数情報に基づき、任意に設定された分割数に応じて、各レコード群毎の出力先となる分割ファイルを示す出力先情報を各レコードに設定する出力先ファイル決定処理ステップと、
    前記出力先情報に基づき、各分割ファイルに各レコードを出力するレコード出力処理ステップと
    からなるファイル分割処理方法。
  2. 前記出力先ファイル決定処理ステップは、
    前記キー重複数情報の値が大きいレコード群から順に、レコードの出力設定件数が小さい分割ファイルに割り当てることを特徴とする請求項1に記載のファイル分割処理方法。
  3. 複数のレコードを有する入力ファイルについて、キー値により識別されるレコード群毎に複数ファイルに分割する処理をコンピュータに実行させるファイル分割プログラムであって、
    前記入力ファイルに含まれる各レコードの主キーのキー値に基づき、キー重複数を検出して、検出結果をキー重複数情報として前記各レコードに付加するレコード加工処理と、
    前記キー重複数情報に基づき、任意に設定された分割数に応じて、各レコード群毎の出力先となる分割ファイルを示す出力先情報を各レコードに設定する出力先ファイル決定処理と、
    前記出力先情報に基づき、各分割ファイルに各レコードを出力するレコード出力処理と
    をコンピュータに実行させるファイル分割プログラム。
  4. 前記出力先ファイル決定処理は、
    前記キー重複数情報の値が大きいレコード群から順に、レコードの出力設定件数が小さい分割ファイルに割り当てることを特徴とする請求項3に記載のファイル分割プログラム。


JP2005273154A 2005-09-21 2005-09-21 ファイル分割処理方法及びファイル分割プログラム Pending JP2007086951A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005273154A JP2007086951A (ja) 2005-09-21 2005-09-21 ファイル分割処理方法及びファイル分割プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005273154A JP2007086951A (ja) 2005-09-21 2005-09-21 ファイル分割処理方法及びファイル分割プログラム

Publications (1)

Publication Number Publication Date
JP2007086951A true JP2007086951A (ja) 2007-04-05

Family

ID=37973898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005273154A Pending JP2007086951A (ja) 2005-09-21 2005-09-21 ファイル分割処理方法及びファイル分割プログラム

Country Status (1)

Country Link
JP (1) JP2007086951A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012137347A1 (ja) * 2011-04-08 2012-10-11 株式会社日立製作所 計算機システム及び並列分散処理方法
JP2014525082A (ja) * 2011-06-27 2014-09-25 アマゾン・テクノロジーズ・インコーポレーテッド 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法
JP2016076100A (ja) * 2014-10-07 2016-05-12 株式会社野村総合研究所 ファイル分割システム及び方法
WO2016157492A1 (ja) * 2015-04-02 2016-10-06 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012137347A1 (ja) * 2011-04-08 2012-10-11 株式会社日立製作所 計算機システム及び並列分散処理方法
JP5730386B2 (ja) * 2011-04-08 2015-06-10 株式会社日立製作所 計算機システム及び並列分散処理方法
JP2014525082A (ja) * 2011-06-27 2014-09-25 アマゾン・テクノロジーズ・インコーポレーテッド 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法
US9432459B2 (en) 2011-06-27 2016-08-30 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US9754009B2 (en) 2011-06-27 2017-09-05 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US10776395B2 (en) 2011-06-27 2020-09-15 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
JP2016076100A (ja) * 2014-10-07 2016-05-12 株式会社野村総合研究所 ファイル分割システム及び方法
WO2016157492A1 (ja) * 2015-04-02 2016-10-06 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
JPWO2016157492A1 (ja) * 2015-04-02 2017-11-24 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
US10838949B2 (en) 2015-04-02 2020-11-17 Hitachi, Ltd. Shared resource update apparatus and shared resource update method

Similar Documents

Publication Publication Date Title
US8446910B2 (en) Methods for even hash distribution for port channel with a large number of ports
CN105677903A (zh) 获取数据的方法和装置、计算机设备
JP2007086951A (ja) ファイル分割処理方法及びファイル分割プログラム
CN109583201A (zh) 识别恶意中间语言文件的系统和方法
CN105701128A (zh) 一种查询语句的优化方法和装置
US20150058272A1 (en) Event correlation detection system
US9507794B2 (en) Method and apparatus for distributed processing of file
US9135300B1 (en) Efficient sampling with replacement
JP6665576B2 (ja) 支援装置、支援方法及びプログラム
JP2009146280A (ja) レガシーマイグレーション支援システム
JP7041603B2 (ja) 計算機システム及び業務フローのパターンの生成方法
JP6961950B2 (ja) 格納方法、格納装置および格納プログラム
KR101988302B1 (ko) 해쉬 기반의 콘텐츠 파일의 식별자 생성 장치 및 방법, 및 해쉬 코드 생성 방법
JP2000148451A (ja) バッチジョブ負荷分散方法および負荷分散システム
US20080313605A1 (en) Development framework for automated data throughput optimization
WO2017145357A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN111192016B (zh) 一种步进式办理业务的方法及系统
CN105653552B (zh) 一种结构化文档处理方法、装置及设备
WO2024017100A1 (zh) 获取代码片段的方法、装置及存储介质
Długosz et al. Improvements in DNA reads correction
JP5718256B2 (ja) システム性能解析装置、システム性能解析方法、およびシステム性能解析プログラム
CN111814003B (zh) 用于建立元数据索引的方法、电子设备和计算机程序产品
JP2007133632A (ja) セキュリティポリシー設定方法及びプログラム
JP2008046914A (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム及び差分生成適用システム及び差分生成適用方法
JP6554764B2 (ja) 改変領域抽出システム、改変領域抽出方法、及び、改変領域抽出プログラム