(57)【特許請求の範囲】
【請求項１】
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードを格納する連続レコード格納部と、
前記連続レコード格納部に格納された連続レコードを対象として、項目値の区切りとレコードの区切りとを探索し、探索結果に基づいて、それぞれの項目値の出現位置を示す出現位置情報を生成する探索部と、
前記探索部により生成された出現位置情報に基づいて、前記連続レコード格納部に格納された連続レコードのデータ形式を変換する変換部と
を備え、
前記連続レコード格納部は、
複数のバッファからなるとともに、
前記複数のバッファは、
連続レコードにおけるレコードの連続性を保持したまま連続レコードを分散して格納し、
前記探索部は、
複数の前記バッファに分散して格納された連続レコードを対象として、前記バッファごとに出現位置情報を並列処理によって生成するデータ形式変換装置であり、
前記データ形式変換装置は、
複数の前記変換部を備え、
複数の前記変換部のそれぞれは、
前記探索部の前記並列処理により生成された前記バッファごとの出現位置情報に基づいて、複数の前記バッファに分散して格納された連続レコードの前記バッファごとのデータ形式を並列処理によって変換することを特徴とするデータ形式変換装置。
【請求項２】
前記データ形式変換装置は、さらに、
連続レコードを含むファイルから連続レコードを読み込み、読み込まれた連続レコードの連続性を保持したままで複数の前記バッファのそれぞれに並列処理によって連続レコードを分散して格納する入力処理部を備えたことを特徴とする請求項１記載のデータ形式変換装置。
【請求項３】
複数の前記変換部のそれぞれは、
前記探索部により前記バッファごとに生成された前記出現位置情報に基づいて、前記バッファに格納された連続レコードに対し、この連続レコードを構成するそれぞれのレコードにおけるレコード内の出現位置を同じくする項目値を単位として、データ形式を並列処理によって変換することを特徴とする請求項１または２に記載のデータ形式変換装置。
【請求項４】
複数の前記変換部のそれぞれは、
前記探索部により前記バッファごとに生成された前記出現位置情報に基づいて、前記バッファに格納された連続レコードに対し、この連続レコードを構成するレコードを単位として、データ形式を並列処理によって変換することを特徴とする請求項１または２のいずれかに記載のデータ形式変換装置。
【請求項５】
複数の前記変換部のそれぞれは、
データ形式の変換された連続レコードを並列処理で出力し、
前記データ形式変換装置は、さらに、
複数の前記変換部のそれぞれに対応するとともに、複数の前記変換部のそれぞれから前記並列処理で出力された変換された連続レコードを入力して格納する複数の変換データ格納部と、
複数の前記変換データ格納部に格納された変換された連続データを他の装置に出力する出力処理部と
を備えたことを特徴とする請求項１〜４のいずれかに記載のデータ形式変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力ファイルのデータのデータ形式を変換するデータ形式変換装置及びデータ形式変換プログラム及びデータ形式変換方法に関する。
【背景技術】
【０００２】
従来より、入力ファイルからデータを読み出し、読み出したデータに対する加工処理を行い、結果を出力をする処理において、各処理ステップを並列に実行することが行われている（例えば、特許文献１）。ここで提案されている方法には、データソースからデータを読み取るステップ、データを読み取りながらデータを特性付ける要約データを計算するステップ、および要約データに基づくプロファイル情報を格納するステップを含むプロファイリングステップと、格納したプロファイル情報にアクセスするステップ、およびアクセスしたプロファイル情報に従ってデータを処理するステップが含まれる。ここで、データプロファイリングステップは並列に実行できるものとし、これには、データをパーツへパーティション化するステップ、および各パーツを処理するステップが含まれる。従来より提案されているデータ処理方式では、入力ファイルからのデータ入力、読み出したデータに対する加工処理（プロファイリング処理やデータ変換処理）、データ出力の各ステップを並列実行することにより、処理の効率化を実現することが可能となる。
【０００３】
しかし、読み出したデータに対する加工処理が他の処理に比較して負荷が高い場合には、このデータ加工処理が全体処理のネックとなり、性能が向上しないという課題があった。例えば、項目値の区切り文字としてカンマを使用するＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）ファイルを入力ファイルとし、このファイルから読み出したデータを、出力先のデータ形式に変換するファイル変換処理の場合、入力データ内の各項目値のデータ長、およびレコード長が可変長であるため、入力ファイルから読み出したバッファ内での、項目やレコードの区切り位置を、データ変換処理を開始する前に特定することができない。
【０００４】
そのため、データ変換処理では、入力バッファ内での項目値の区切り文字（カンマ等）を探索し、抽出した項目に対して順に変換処理を実行するという手順になる。区切り文字を探索する処理、および、データ変換処理は他の処理に比べて負荷が高く、この部分の処理が全体処理のネックとなり、ファイル変換処理の性能が向上しないという課題がある。
【特許文献１】特表２００７−５０６１９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ＣＳＶファイルのような可変長の入力ファイルのデータを読み出し、出力先のデータに変換するファイル変換処理において、各項目値の出現位置を事前に探索して格納し、この項目値の出現位置情報を用いて、列単位、あるいは、行単位にデータ変換処理を複数並列に実行することにより処理の並列度を向上し、ファイル変換処理の高速実行を可能な装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
この発明のデータ形式変換装置は、
区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードを格納する連続レコード格納部と、
前記連続レコード格納部に格納された連続レコードを対象として、項目値の区切りとレコードの区切りとを探索し、探索結果に基づいて、それぞれの項目値の出現位置を示す出現位置情報を生成する探索部と、
前記探索部により生成された出現位置情報に基づいて、前記連続レコード格納部に格納された連続レコードのデータ形式を変換する変換部と
を備えたことを特徴とする。
【発明の効果】
【０００７】
この発明により、ファイル変換処理の高速実行の可能なデータ形式変換装置を提供することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、コンピュータであるファイル変換装置１の外観の一例を示す図である。図１において、ファイル変換装置１は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
【０００９】
図２は、実施の形態１におけるファイル変換装置１のハードウェア資源の一例を示す図である。図２において、ファイル変換装置１は、プログラムを実行するＣＰＵ８１０（中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００１０】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００１１】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００１２】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１３】
上記プログラム群８２３には、以下に述べる実施の形態の説明においてファイル変換装置１の構成要素である「入力処理装置５〜出力処理装置８」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００１４】
ファイル群８２４には、以下に述べる実施の形態の説明において、「出力定義情報」、「項目情報」「〜の判定結果」として説明する情報や、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００１５】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１６】
また、以下に述べる実施の形態の説明において、「入力処理装置５〜出力処理装置８」として説明するものは、「〜部」、「手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「入力処理装置５〜出力処理装置８」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「入力処理装置５〜出力処理装置８」としてコンピュータを機能させるものである。あるいは、以下に述べる「入力処理装置５〜出力処理装置８」の手順や方法をコンピュータに実行させるものである。
【００１７】
図３は、入力ファイル２から読み出したデータを、出力先のデータ形式に変換して書き込むファイル変換方式を実行するファイル変換装置１（データ形式変換装置）の構成図である。図３において、ファイル変換装置１は、入力処理装置５（入力処理部）、区切り文字探索処理装置６（探索部）、変換処理装置７（変換部）、出力処理装置８（出力処理部）を備える。また、ファイル変換装置１は、入力ファイル２のデータが格納される入力用バッファ９、データ書込み装置４に渡すデータ形式変換後のデータが格納される出力用バッファ１１を、それぞれ複数個備える。なお、入力用バッファ９、出力用バッファ１１という場合は、特に断らない限り複数を意味するものとする。また、ファイル変換装置１は、後述の項目情報テーブル１０（出現位置情報）を格納するテーブル格納部１２を備える。ファイル変換装置１は、入力ファイル２、および、出力先定義情報３を入力とし、データ書込み装置４を出力先とする。
【００１８】
（入力用バッファ）
図４は、出力先の項目数が３個の場合（即ち、１レコードが３項目からなる場合）の入力用バッファ９と、項目情報テーブル１０との関係を示す図である。図４を説明する。入力用バッファに格納される入力ファイルのデータは、図４に示すように、区切られて連続する複数の項目値からなるレコードを要素とするとともに、このレコードごとに区切られて連続する連続レコードである。すなわち、項目値ＡＢＣＤＥＦＧ等からなるレコード「ＡＢＣＤＥＦＧ，１２３，ＸＹＺ」、項目値ＨＩＪＫ等からなるレコード「ＨＩＪＫ，４５，ＸＸ」等を要素とし、「改行記号」により区切られて、これらレコードが連続する「ＡＢＣＤＥＦＧ，１２３，ＸＹＺ」〜「ＫＬＭ、７８９０１２３」の連続レコードである。なお、入力ファイルの連続レコードが複数の入力用バッファに分散して格納される場合には、入力ファイルの連続レコードの連続性は保持されて格納される。例えば、入力ファイルの連続レコードがＲ（１）〜Ｒ（Ｎ）であり、入力用バッファを３つとすると、第１の入力用バッファにはＲ（１）〜Ｒ（ｍ）のレコードからなる連続レコードが格納され、第２の入力用バッファにはＲ（ｍ＋１）〜Ｒ（ｎ）のレコードからなる連続レコードが格納され、第３の入力用バッファにはＲ（ｎ＋１）〜Ｒ（Ｎ）のレコードからなる連続レコードが格納される。
【００１９】
（項目情報テーブル）
項目情報テーブル１０は、区切り文字探索処理装置６によって生成される。項目情報テーブル１０に格納される情報は、各項目毎の、
（１）出現した入力用バッファ９の番号２１、
（２）バッファ内オフセット２２、
（３）項目値の長さ２３
から構成される。図４では、入力用バッファ９は「バッファ番号＝１」である。そして、例えば、一つのレコード「ＡＢＣＤＥＦＧ，１２３，ＸＹＺ」における項目値ＡＢＣＤＥＦＧについて前記の（１）〜（３）は、「１，０，７」であり、「１２３」は「１，８，３」である。項目情報テーブル１０は、前記の（１）〜（３）により、それぞれの入力用バッファに分散して格納された連続レコードを管理することができる。すなわち、区切り文字探索処理装置６（探索部）は、複数の入力用バッファに分散して格納された連続レコードを対象として、入力用バッファごとに項目情報テーブル１０を生成する。複数設けられた変換処理部（変換部）のそれぞれは、区切り文字探索処理装置６により生成された入力用バッファごとの項目情報テーブル１０に基づいて、複数の入力用バッファに分散して格納されたデータのデータ形式を変換することが可能となる。
【００２０】
（出力先定義情報）
図５は、出力先定義情報３の構成例を示す図である。出力先定義情報３は、通番３１、データ型情報３２、データ型が文字型の場合のデータ長３３、および、データ型が数値型の場合の精度３４から構成される。通番３１が「１〜３」となっているのは、出力先の項目数が３個となっているからである。すなわち、通番３１の「１〜３」は、それぞれ第１番項目〜第３項目に対応する。
【００２１】
次に動作について説明する。図６は、ファイル変換装置１によるファイル変換方式のフローチャートである。図６は、データ変換処理を「行単位」（レコード単位）に並列実行する場合のファイル変換方式のフローチャートである。まずファイル変換装置１は、ステップＳ４２において、出力先定義情報３を読出し、メモリ内に保持する。次に、ステップＳ４３において、入力処理装置５、区切り文字探索処理装置６、出力処理装置８を起動する。
【００２２】
入力処理装置５、区切り文字探索処理装置６、出力処理装置８は、それぞれ並列に実行可能な形態で起動される。区切り文字探索処理装置６は、入力用バッファ９にデータが読み込まれるまで待機状態となり、出力処理装置８は、出力用バッファ１１にデータが書き込まれるまで待機状態となる。
【００２３】
ステップＳ４４において、変換処理装置７ａ〜７ｃが複数起動される。変換処理装置７ａ〜７ｃは、それぞれが並列に実行可能な形態で起動され、図３では３つを示しているが例示であり、起動する数は、システムの搭載プロセッサ数を超えない範囲で起動する。変換処理装置７ａ〜７ｃは、区切り文字探索処理装置６が、区切り文字（項目値の区切り、レコードの区切り）を探索し、項目情報テーブル１０に項目値の出現位置（出現位置情報）を格納するまでは待機状態となる。
【００２４】
ステップＳ４５において、読出しを行っていない入力ファイル２のデータが存在すれば、入力処理装置５が、入力用バッファ９に、入力ファイル２からデータを読み出す（ステップＳ４６）。前述のように入力用バッファ９は複数用意し、入力処理装置５は、入力用バッファ９に空きがあれば、入力ファイル２からの読み込みを行う。入力用バッファ９の空きがない状態になると、入力処理装置５は、入力用バッファ９に空きが生じるまで待機状態となる。前記のように、複数の入力用バッファには連続レコードの連続性が保持された状態で格納される。
【００２５】
（探索処理）
入力用バッファ９に入力ファイルのデータ（連続レコード）が読み込まれると、区切り文字探索処理装置６が実行を開始し、入力用バッファ９内の探索を開始する。区切り文字探索処理装置６は、入力用バッファ９内の先頭から区切り文字または改行文字を探索する。区切り文字探索処理装置６は、区切り文字または改行文字を検出すると、検出した時点までを一つの項目とみなし、項目情報テーブル１０に、検出した項目値の出現位置情報として、「入力用バッファ９の番号」、「入力用バッファ９内のオフセット」、「項目の長さ」を格納する（ステップＳ４７）。
【００２６】
前述の図４を用いて、入力用バッファ９から項目情報テーブル１０に位置情報を設定する方法を説明する。この処理（方法）は、区切り文字探索処理装置６が実行するものである。図４の例は、区切り文字としてカンマを定義した場合である。まず、最初にカンマが出現した位置までを一つの項目値「ＡＢＣＤＥＦＧ」と判断し、この項目値が出現するバッファ内の位置として、バッファ内オフセット「０」と、項目値の長さ「７」を項目情報テーブル１０に格納する。同様に、２番目の項目値を「１２３」、３番目の項目値を「ＸＹＺ」と判断し、それぞれの項目値のバッファ内オフセットと長さを項目情報テーブル１０に格納する。出力先の項目数は、出力先定義情報３を参照することにより認識可能である。このため、最後の項目値の区切りは、改行文字により判断する。区切り文字探索処理装置６は、入力用バッファ９内の最後まで探索処理を実行すると、待機していた変換処理装置７に実行開始を通知する。
【００２７】
（変換処理の動作）
ステップＳ４８、ステップＳ４９における変換処理装置７の動作を図７を用いて説明する。図７は、データ変換処理を「列単位」に並列実行する場合を説明する図である。ステップＳ４８及びステップＳ４９は、個々の「変換処理部と対応する出力用バッファ」についてのステップである。すなわち、複数の変換処理装置７ａ、７ｂ、７ｃのそれぞれが、各レコード単位に項目値のデータ変換処理を実施する場合を示す図である。データ変換処理は、入力ファイル２内のデータを出力先のデータ形式に変換する処理であり、出力先のデータ型が数値型の場合は、文字列の数値を数値型に変換する処理であり、あるいは、出力先のデータ型が固定長の文字列型の場合は、項目値の後ろにパティング文字を追加する処理である。
【００２８】
複数の変換処理装置７ａ、７ｂ、７ｃのそれぞれは、項目情報テーブル１０を用いて、入力用バッファ９内での異なるレコードの先頭位置を特定し、入力用バッファ９からデータ（レコード）を読出して変換処理を実施し、それぞれ自身に対応する出力用バッファ１１ａ、１１ｂ、１１ｃに変換結果を出力する。変換処理装置７ａ、７ｂ、７ｃのそれぞれは、それぞれ並列にデータ変換処理、および、出力用バッファへの書込み処理を実行する。この結果、出力用バッファ１１ａ、１１ｂ、１１ｃには、レコード単位に変換結果が書き込まれる。
【００２９】
複数の変換処理装置でのデータ変換処理、および、出力用バッファへの書込み処理は、出力用バッファに空きがある間は、繰返し実行される。出力用バッファに空きがない状態になると、出力処理装置８が、出力用バッファの内容を出力するために、データ書込み装置４を呼び出し、データ書込み装置４に書込みを実行させる。即ち、出力処理装置８は、出力用バッファに格納されているデータをデータ書込み装置４に処理可能な形態に処理し（例えばデータを分断）、データ書込み装置４に渡す。データ書込み装置４は、出力処理装置８から渡されたデータを出力処理装置８に応じて設けられている記憶装置に書き込む。
【００３０】
出力用バッファの内容出力後に、区切り文字探索処理装置６は、入力用バッファ９（複数ある場合は全部の入力用バッファ）内のデータすべてに対して変換処理を実施したかの判定を行い（ステップＳ５１）、未処理のデータがあれば、変換処理ステップＳ４８に戻り、変換処理を実行する。入力用バッファ９内のデータをすべて処理すると、再び入力ファイル２を入力用バッファ９に読み込む処理を実施する。入力ファイル２の読み込み処理がすべて完了すると、ファイル変換処理は終了する。
【００３１】
以上のように、ファイル変換処理において、入力ファイル２からのデータの読み込み処理、読み込んだデータに対する区切り文字の探索処理とデータ変換処理、およびデータ出力処理をそれぞれ並列実行可能としているため、プロセッサが複数搭載されたシステムでは、複数プロセッサを有効に活用して処理の並列度を向上させることにより、ファイル変換処理性能の向上を実現することができる。また、本実施の形態１のファイル変換装置１では、データ変換処理の前に、区切り文字を探索し、項目情報テーブル１０に各項目値の出現位置を格納することにより、データ変換処理実行時には、入力用バッファ内のどの位置に各レコードが格納されているかが特定される。そのため、データ変換処理を複数並列に実行し、それぞれが異なるレコードに対する変換処理を実施することが可能となり、さらに並列度を向上させることができる。
【００３２】
実施の形態２．
次に図８、図９を参照して実施の形態２を説明する。実施の形態１では、データ変換処理をレコード単位（行単位）に並列に実行する場合を説明したが、実施の形態２では、データ変換処理を「列単位」に並列に実行する場合を説明する。
【００３３】
図８は、データ変換処理を「列単位」に並列実行する場合のファイル変換方式のフローチャートである。図８は、図６のＳ４８に「行単位」とあるのに対して、Ｓ６８では「列単位」とある点のみ異なり、後は同じである。
【００３４】
ステップＳ６８、ステップＳ６９における変換処理装置の動作を図９を用いて説明する。図９は、データ変換処理を「列単位」に並列実行する場合を説明する図である。変換処理装置７ｄ〜７ｆのそれぞれは、項目情報テーブル１０に基づいて、入力用バッファ９に格納された連続レコードに対し、この連続レコードを構成するそれぞれのレコードにおけるレコード内の出現位置を同じくする項目値を単位として、データ形式を変換する。即ち、変換処理装置７ｄ〜７ｆのそれぞれぞれは、互いに異なる「列」のデータを変換する。即ち、図９に示すように、変換処理装置７ｄは、各レコードの１番目の項目値の変換処理を実施する。即ち、入力ファイル２の第１列の項目値を変換する。具体的には、変換処理装置７ｄは、項目情報テーブル１０から、１番目の項目値の出現位置を特定し、入力用バッファ９からデータを読出して変換処理を実施し、１番目の項目用の出力用バッファ１１ｄに変換結果を出力する。変換処理装置７ｅ、７ｆは、それぞれ、２番目、３番目の項目値に対する変換処理を実施し、２番目の項目用の出力用バッファ１１ｅ、３番目の項目用の出力用バッファ１１ｆに変換結果を出力する。変換処理装置７ｄ、７ｅ、７ｆは、それぞれ並列にデータ変換処理、および、出力用バッファへの書込み処理を実行し、出力用バッファ１１ｄ、１１ｅ、１１ｆには、列単位に変換結果が書き込まれる。これにより、入力ファイルに対して、列単位で並列処理のデータ変換処理が可能となる。
【００３５】
以下の変換後の処理は、実施の形態１の「レコード単位（行単位）」の場合と同様である。即ち、複数の変換処理装置でのデータ変換処理、および、出力用バッファへの書込み処理は、出力用バッファに空きがある間は、繰返し実行される。出力用バッファに空きがない状態になると、出力処理装置８が、出力用バッファの内容を出力するために、データ書込み装置４を呼び出し、書込みを実行させる。
【００３６】
以上のように、ファイル変換処理において、データ変換処理を「列単位」に並列に実行することにより、変換処理実行時の並列度を向上させることが可能となり、ファイル変換処理の性能向上を実現できる。また、列単位にデータ変換処理を実施する本実施の形態２では、各変換処理装置が対象とする出力先のデータ型は、常に同じデータ型となる。したがって、変換処理を実施する前に、出力先のデータ型の判別処理を行ってデータ型に応じた変換処理を起動する処理が不要となり、データ変換処理のみを連続実行すればよいことになり、変換処理の効率化を実現できる。さらに、各変換処理単位で扱うデータ項目が同じとなるため、同じ項目値が連続して出現する可能性が高くなる場合も生じる。そのような場合は、データ変換前の値とデータ変換後の値を保持しておき、データ変換前の値と同じ値が出現すると、データ変換処理を省略し、あらかじめ保持していたデータ変換後の値を出力用バッファに書き込むことにより、さらに変換処理の効率化を実現できる。
【００３７】
以上の実施の形態では、
入力ファイルを読み込んで、出力先のデータ形式に変換する処理において、以下の手段を備えたファイル変換方式を説明した。
（ａ）入力ファイルからデータを入力用バッファに読み込む手段
（ｂ）入力用バッファから、項目の区切り、および、行の区切りを探索し、各項目値の出現位置情報を項目情報テーブルとして格納する手段
（ｃ）入力用バッファと、項目情報テーブルから、出力先のデータ形式へのデータ変換処理を行い、変換結果を出力用バッファに書き込む手段
（ｄ）出力用バッファの内容をファイルまたはデータベースに書き込む手段。
【００３８】
以上の実施の形態では、
前記ファイル変換処理において、
入力用バッファ内での項目値の出現位置を特定するために、
各項目値が出現するバッファ番号、
バッファ内オフセット、
および、項目値の長さを格納する項目情報テーブル
を備えたファイル変換方式を説明した。
【００３９】
以上の実施の形態では、
前記ファイル変換処理において、
データ変換処理手段を複数実行し、
それぞれのデータ変換処理手段が、
項目情報テーブル内に格納された項目値の位置情報をもとに、入力用バッファ内のデータに対して、列単位に並列に変換処理を実行し、列単位に出力用バッファに書き込む
ファイル変換方式を説明した。
【００４０】
以上の実施の形態では、
前記ファイル変換処理において、
データ変換処理手段を複数実行し、
それぞれのデータ変換処理手段が、
項目情報テーブル内に格納された項目値の位置情報をもとに、入力用バッファ内のデータに対して、行単位に並列に変換処理を実行し、行単位に出力用バッファに書き込むファイル変換方式を説明した。
【００４１】
以上の実施の形態では、
前記、ファイル変換処理において、
以下の装置を備えたファイル変換装置を説明した。
（ａ）入力処理装置
（ｂ）区切り文字探索処理装置
（ｃ）変換処理装置
（ｄ）出力処理装置。
【図面の簡単な説明】
【００４２】
【図１】実施の形態１におけるファイル変換装置１の外観の一例を示す図。
【図２】実施の形態１におけるファイル変換装置１のハードウェア構成を示す図。
【図３】実施の形態１におけるファイル変換装置１のブロック図。
【図４】実施の形態１における入力用バッファ９と項目情報テーブル１０との関係を示す図。
【図５】実施の形態１における出力先定義情報３を示す図。
【図６】実施の形態１におけるファイル変換装置１の動作のフローチャート。
【図７】実施の形態１におけるファイル変換装置１の動作を説明するための図。
【図８】実施の形態２におけるファイル変換装置１の動作のフローチャート。
【図９】実施の形態２におけるファイル変換装置１の動作を説明するための図。
【符号の説明】
【００４３】
１  ファイル変換装置、２  入力ファイル、３  出力先定義情報、４  データ書込み装置、５  入力処理装置、６  区切り文字探索処理装置、７ａ，７ｂ，７ｃ，７ｄ，７ｅ，７ｆ  変換処理装置、８  出力処理装置、９  入力用バッファ、１０  項目情報テーブル、１１  出力用バッファ、１２  テーブル格納部、８１０  ＣＰＵ、８１１  ＲＯＭ、８１２  ＲＡＭ、８１３  表示装置、８１４  Ｋ／Ｂ、８１５  マウス、８１６  通信ボード、８１７  ＦＤＤ、８１８  ＣＤＤ、８１９  プリンタ装置、８２０  磁気ディスク装置、８２１  ＯＳ、８２２  ウィンドウシステム、８２３  プログラム群、８２４  ファイル群、８２５  バス、８３０  システムユニット。
【図１】
0005171211.tif 000002
【図２】
0005171211.tif 000003
【図３】
0005171211.tif 000004
【図４】
0005171211.tif 000005
【図５】
0005171211.tif 000006
【図６】
0005171211.tif 000007
【図７】
0005171211.tif 000008
【図８】
0005171211.tif 000009
【図９】
0005171211.tif 000010