(57)【要約】【課題】レコードからのテキストデータの読み出しを最適化し、レコード解析処理の更なる最適化を実現したテキストデータ読出装置、方法及びプログラムを提供すること。【解決手段】テキストデータ読出装置（１）は、読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付ける対象フィールド受付手段（１１）と、レコードをフィールド毎に順次字句解析し、レコードに含まれるフィールドのフィールド識別情報を読み出す識別情報読出手段（１３１）と、読み出したフィールド識別情報が対象フィールド識別情報である場合に、識別情報読出手段（１３１）によるフィールド識別情報の読み出しを終了する読出終了手段（１３４）と、読み出しが終了されると、対象フィールド識別情報に対応するフィールドの内容を読み出す内容読出手段（１４）と、を備える。【選択図】図１
2012108782.tif 000002
【特許請求の範囲】
【請求項１】
フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成するレコードから対象のフィールドの内容を読み出すテキストデータ読出装置であって、
読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付ける対象フィールド受付手段と、
前記レコードをフィールド毎に順次字句解析し、前記レコードに含まれるフィールドのフィールド識別情報を読み出す識別情報読出手段と、
読み出した前記フィールド識別情報を当該フィールドの位置を示す情報と関連付けてキャッシュ記憶手段に記憶する位置キャッシュ手段と、
読み出した前記フィールド識別情報が前記対象フィールド識別情報である場合に、前記識別情報読出手段によるフィールド識別情報の読み出しを終了する読出終了手段と、
前記読出終了手段により読み出しが終了されると、前記対象フィールド識別情報に対応するフィールドの内容を読み出す内容読出手段と、
を備えるテキストデータ読出装置。
【請求項２】
前記対象フィールド受付手段により受け付けられた対象フィールド識別情報が前記キャッシュ記憶手段に記憶されているか否かを判定するキャッシュ判定手段を備え、
前記内容読出手段は、前記キャッシュ判定手段により前記キャッシュ記憶手段に記憶されていると判定されることを条件に、前記キャッシュ記憶手段に記憶された位置を示す情報に基づいて、前記対象フィールド識別情報に対応する内容を読み出す、
請求項１に記載のテキストデータ読出装置。
【請求項３】
前記読出終了手段は、前記対象フィールド受付手段により受け付けられた対象フィールド識別情報が複数存在する場合には、複数の前記対象フィールド識別情報の全てが前記識別情報読出手段により読み出されることを条件に、前記識別情報読出手段によるフィールド識別情報の読み出しを終了し、
前記内容読出手段は、前記キャッシュ記憶手段に記憶された位置を示す情報に基づいて、複数の前記対象フィールド識別情報に対応する内容を読み出す、
請求項１に記載のテキストデータ読出装置。
【請求項４】
フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成するレコードから対象のフィールドの内容を読み出すテキストデータ読出装置が行う、
読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付けるステップと、
前記レコードをフィールド毎に順次字句解析し、前記レコードに含まれるフィールドのフィールド識別情報を読み出すステップと、
読み出した前記フィールド識別情報を当該フィールドの位置を示す情報と関連付けてキャッシュ記憶手段に記憶するステップと、
読み出した前記フィールド識別情報が前記対象フィールド識別情報である場合に、フィールド識別情報の読み出しを終了するステップと、
前記ステップにより読み出しが終了されると、前記対象フィールド識別情報に対応するフィールドの内容を読み出すステップと、
を含む方法。
【請求項５】
テキストデータ読出装置に、フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成するレコードから対象のフィールドの内容を読み出す制御を行わせるプログラムであって、前記テキストデータ読出装置に、
読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付けるステップと、
前記レコードをフィールド毎に順次字句解析し、前記レコードに含まれるフィールドのフィールド識別情報を読み出すステップと、
読み出した前記フィールド識別情報を当該フィールドの位置を示す情報と関連付けてキャッシュ記憶手段に記憶するステップと、
読み出した前記フィールド識別情報が前記対象フィールド識別情報である場合に、フィールド識別情報の読み出しを終了するステップと、
前記ステップにより読み出しが終了されると、前記対象フィールド識別情報に対応するフィールドの内容を読み出すステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィールドの位置情報を遅延評価してレコードの処理を最適化したテキストデータ読出装置、方法及びプログラムに関する。
【背景技術】
【０００２】
インターネット事業者は、インターネット上でのアクセスログ（レコード）を日々収集しており、このレコードを解析することで、Ｗｅｂページの改善やマーケティング情報の収集など様々な用途に役立つ情報を取得している。
【０００３】
例えば、特許文献１には、訪問者を解析するシステムとして、ＩＰアドレスとウェブブラウザの種類と、そのブラウザが動くＯＳにより推計ビジターを特定し、さらに、一定時間のアクセスを継続的に行っている人間を同一人物と推定として、ビジター数を分析するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−６３１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、日々収集されるレコードは、インターネット事業者の運営規模によって膨大な量（例えば、ｇｚｉｐ形式に圧縮して、１日あたり数テラバイト）になるため、レコードの解析処理の時間を短縮する方法が求められている。
【０００６】
ここで、図７に示すレコード５０の字句解析を例にとり、従来のレコード解析処理について説明する。レコード５０は、それぞれ様々なテキストデータを有するフィールド５１，５２，５３，５４，５５，５６，５７を含む。このレコード５０において字句解析すべきフィールド（対象フィールド）としてフィールド５５が設定されている場合を例にとり従来のレコード解析処理について説明する。
図７（１）を参照して、従来のレコード解析処理の１の方法は、対象フィールドが設定されると、レコード５０の先頭からデータを読み出し、対象フィールドであるフィールド５５までデータの読み出しを終えると、レコード解析処理を終了する。
また、図７（２）を参照して、従来のレコード解析処理の他の方法は、（Ａ）初めに、フィールド５１〜５７の全てのフィールドの識別情報のみをその位置情報とともにキャッシュしておき、（Ｂ）その後、字句解析対象のフィールド５５をキャッシュした位置情報に基づいて特定し、このフィールド５５からテキストデータを読み出し、字句解析する。
【０００７】
図７（１）に示す従来のレコード解析処理では、常にレコード５０の先頭からデータを読み出さなければならず、また、図７（２）に示すレコード解析処理では、字句解析対象のフィールド５５以外のフィールドの位置情報、特に、フィールド５５以降のフィールド５６，５７の位置情報も一度キャッシュしなければならず、更なる最適化の余地があった。
【０００８】
本発明は、レコードからのテキストデータの読み出しを最適化し、レコード解析処理の更なる最適化を実現したテキストデータ読出装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明者らは、対象フィールド内のテキストデータ読み出し時まで、それ以前のフィールドのフィールド位置情報を遅延評価し、テキストデータを読み出すフィールド以降のフィールドの位置情報のキャッシュを中止することで本発明を完成するに至った。
【００１０】
（１）  フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成するレコードから対象のフィールドの内容を読み出すテキストデータ読出装置であって、読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付ける対象フィールド受付手段と、前記レコードをフィールド毎に順次字句解析し、前記レコードに含まれるフィールドのフィールド識別情報を読み出す識別情報読出手段と、読み出した前記フィールド識別情報を当該フィールドの位置を示す情報と関連付けてキャッシュ記憶手段に記憶する位置キャッシュ手段と、読み出した前記フィールド識別情報が前記対象フィールド識別情報である場合に、前記識別情報読出手段によるフィールド識別情報の読み出しを終了する読出終了手段と、前記読出終了手段により読み出しが終了されると、前記対象フィールド識別情報に対応するフィールドの内容を読み出す内容読出手段と、を備えるテキストデータ読出装置。
【００１１】
（１）のテキストデータ読出装置によれば、識別情報読出手段がレコードをフィールド毎に順次字句解析し、対象フィールド識別情報まで読み出すと、読出終了手段によりフィールド識別情報の読出しが終了され、内容読出手段による対象フィールドのフィールド内容の読出しが行われる。
このように、本発明のテキストデータ読出装置は、レコードに含まれるフィールドのうち、対象フィールドのフィールド識別情報までを読み出し、対象フィールド以降のフィールドのフィールド識別情報の読み出しを行わない。すなわち、フィールドの内容読み出し時まで当該フィールド以前のフィールドのフィールド識別情報を遅延評価する。これにより、レコードからのテキストデータの読み出しを最適化することができる。
【００１２】
すなわち、全てのフィールドの内容を読み出すことなく一部のフィールドについてのみ内容を読み出す場合においても無条件に行われていたフィールドの位置を示す情報のキャッシュ処理を中止し、さらに、最終的に無駄なキャッシュ処理となりうる、読み出しの対象となるフィールド以降のフィールドの位置を示す情報のキャッシュ処理を中止するとともに、読み出しの対象となるフィールド以前のフィールドの位置を示す情報のキャッシュのみを当該読み出しのタイミングまで遅延させることにより、無駄な処理を排除して処理のレスポンスを短縮化することができる。
【００１３】
（２）  前記対象フィールド受付手段により受け付けられた対象フィールド識別情報が前記キャッシュ記憶手段に記憶されているか否かを判定するキャッシュ判定手段を備え、前記内容読出手段は、前記キャッシュ判定手段により前記キャッシュ記憶手段に記憶されていると判定されることを条件に、前記キャッシュ記憶手段に記憶された位置を示す情報に基づいて、前記対象フィールド識別情報に対応する内容を読み出す、（１）に記載のテキストデータ読出装置。
【００１４】
（２）のテキストデータ読出装置によれば、対象フィールド識別情報の位置情報が既にキャッシュされている場合には、識別情報読出手段による識別情報の読み出しを行わないため、レコードからのテキストデータの読み出しを最適化することができる。
【００１５】
（３）  前記読出終了手段は、前記対象フィールド受付手段により受け付けられた対象フィールド識別情報が複数存在する場合には、複数の前記対象フィールド識別情報の全てが前記識別情報読出手段により読み出されることを条件に、前記識別情報読出手段によるフィールド識別情報の読み出しを終了し、前記内容読出手段は、前記キャッシュ記憶手段に記憶された位置を示す情報に基づいて、複数の前記対象フィールド識別情報に対応する内容を読み出す、（１）に記載のテキストデータ読出装置。
【００１６】
（３）のテキストデータ読出装置によれば、対象フィールド識別情報が複数存在する場合には、全ての対象フィールド識別情報の位置情報を読み出した後に、その内容を読み出す。これにより、複数の対象フィールド識別情報の読み出しを一度に行うことができ、レコードからのテキストデータの読み出しを最適化することができる。
【００１７】
（４）  フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成するレコードから対象のフィールドの内容を読み出すテキストデータ読出装置が行う、読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付けるステップと、前記レコードをフィールド毎に順次字句解析し、前記レコードに含まれるフィールドのフィールド識別情報を読み出すステップと、読み出した前記フィールド識別情報を当該フィールドの位置を示す情報と関連付けてキャッシュ記憶手段に記憶するステップと、読み出した前記フィールド識別情報が前記対象フィールド識別情報である場合に、フィールド識別情報の読み出しを終了するステップと、前記ステップにより読み出しが終了されると、前記対象フィールド識別情報に対応するフィールドの内容を読み出すステップと、を含む方法。
【００１８】
（５）  テキストデータ読出装置に、フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成するレコードから対象のフィールドの内容を読み出す制御を行わせるプログラムであって、前記テキストデータ読出装置に、読み出しの対象となるフィールドのフィールド識別情報である対象フィールド識別情報を受け付けるステップと、前記レコードをフィールド毎に順次字句解析し、前記レコードに含まれるフィールドのフィールド識別情報を読み出すステップと、読み出した前記フィールド識別情報を当該フィールドの位置を示す情報と関連付けてキャッシュ記憶手段に記憶するステップと、読み出した前記フィールド識別情報が前記対象フィールド識別情報である場合に、フィールド識別情報の読み出しを終了するステップと、前記ステップにより読み出しが終了されると、前記対象フィールド識別情報に対応するフィールドの内容を読み出すステップと、を実行させるプログラム。
【００１９】
（４）の方法又は（５）のプログラムによれば、（１）のテキストデータ読出装置と同様の効果を奏する。
【発明の効果】
【００２０】
本発明によれば、レコードからのテキストデータの読み出しを最適化することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明のテキストデータ読出装置を含むテキストデータ読出システムの構成を示す図である。
【図２】集計データＤＢを示す図である。
【図３】本発明のテキストデータ読出装置のフィールド位置キャッシュを示す図である。
【図４】本発明のテキストデータ読出装置の動作の流れを示す図である。
【図５】本発明のテキストデータ読出装置の処理の流れを示すフローチャートである。
【図６】テキストデータ読出システムの好適なシステム構成を示す図である。
【図７】従来のテキストデータ読み出し動作の流れを示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について図面を参照して説明する。
【００２３】
［テキストデータ読出システム１００の構成］
初めに、図１を参照して、本発明のテキストデータ読出装置１を含むテキストデータ読出システム１００の構成を説明することで、本発明のテキストデータ読出装置１の構成について説明する。
テキストデータ読出システム１００は、１又は複数のサーバにより構成され、本発明のテキストデータ読出装置１（サーバ）と、集計データＤＢ１０１と、対象フィールド設定手段１０２と、読出結果ＤＢ１０３と、を含む。ここで、集計データＤＢ１０１と、対象フィールド設定手段１０２と、読出結果ＤＢ１０３とは、テキストデータ読出装置１が備えることとしてもよく、テキストデータ読出装置１と通信可能な他のサーバが備えることとしてもよい。
【００２４】
集計データＤＢ１０１は、インターネット事業の運営によって得られた多数のレコードを記憶する。本実施形態では、集計データＤＢ１０１には、１日あたりｇｚｉｐ形式に圧縮された数テラバイトのレコードが記憶される。
ここで、集計データＤＢ１０１に記憶される多数のレコードについて、図２に示すレコード３０を例にとり説明する。レコードは、フィールドを識別するフィールド識別情報及び当該フィールドの内容を順次配列して構成される。具体的には、レコード３０は、フィールド３１，３２，３３，３４・・・を区切り文字「：」で区切り順次配列して構成される。そして、これらフィールドは、それぞれ識別情報及び内容が区切り文字で区切られ規定されている。具体的には、フィールド３１は、識別情報「ＡＢＣ」及び内容「１００」が区切り文字「，」で区切られ規定されている。なお、集計データＤＢ１０１は、データベース構造である必要はなく、ファイル形式など適宜好適なフォーマットで実現することができる。
テキストデータ読出システム１００では、このようなレコードのうちの任意の位置のフィールドの内容を読み出し、適宜加工することで、インターネット事業に役立つ様々な情報を取得する。
【００２５】
図１に戻り、対象フィールド設定手段１０２は、集計データＤＢ１０１に記憶されるレコードに含まれる複数のフィールドのうち読み出しの対象となるフィールド（以下、「対象フィールド」）を決定する。対象フィールドの決定は、任意の方法で行うことができ、例えば、Ｈｉｖｅクエリを用いて決定することとしてもよい。なお、Ｈｉｖｅとは、Ｈａｄｏｏｐ上で動作するデータウエアハウス向けのプロダクトである。
対象フィールド設定手段１０２は、対象フィールドを決定すると、この対象フィールドの識別情報（以下、「対象フィールド識別情報」）をテキストデータ読出装置１に送信する。
【００２６】
［テキストデータ読出装置１の構成］
続いて、本発明のテキストデータ読出装置１は、対象フィールド受付手段１１と、キャッシュ判定手段１２と、識別情報解析手段１３と、内容読出手段１４と、フィールド位置キャッシュ１５と、を含んで構成される。
【００２７】
対象フィールド受付手段１１は、対象フィールド設定手段１０２から対象フィールド識別情報を受け付ける。
キャッシュ判定手段１２は、後述するフィールド位置キャッシュ１５に対象フィールド識別情報がキャッシュされているか否かを判定する。
【００２８】
識別情報解析手段１３は、集計データＤＢ１０１に記憶されたレコードのフィールド識別情報を字句解析するため、識別情報読出手段１３１と、位置キャッシュ手段１３２と、読出判定手段１３３と、読出終了手段１３４と、を含む。
【００２９】
識別情報読出手段１３１は、集計データＤＢ１０１に記憶されたレコードをフィールド毎に順次字句解析し、レコードに含まれるフィールドのフィールド識別情報を読み出す。
位置キャッシュ手段１３２は、識別情報読出手段１３１が読み出したフィールド識別情報により特定されるフィールドのレコード内における位置を示す情報をフィールド位置キャッシュ１５に記憶する。
ここで、フィールド位置キャッシュ１５は、図３に示すようにフィールド識別情報とフィールドの位置情報とを関連付けて記憶する。なお、フィールドの位置は、任意の方法で特定することができ、本実施形態では、先頭からのバイト数でフィールドの位置を特定することとしている。
【００３０】
読出判定手段１３３は、識別情報読出手段１３１が読み出したフィールド識別情報が対象フィールド識別情報であるか否かを判定する。
読出終了手段１３４は、読出判定手段１３３により対象フィールド識別情報であると判定されることを条件に、識別情報読出手段１３１によるフィールド識別情報の読み出しを終了する。
【００３１】
内容読出手段１４は、集計データＤＢ１０１に記憶されたレコードのうち対象フィールド識別情報の位置情報により特定されるフィールドの内容を読み出す。内容読出手段１４は、読み出した対象フィールドの内容を読出結果ＤＢ１０３に記憶する。
【００３２】
読出結果ＤＢ１０３は、図示は省略するが、対象フィールドのフィールド識別情報と内容とを対応付けて記憶する。読出結果ＤＢ１０３に記憶された情報に基づいて、インターネット事業に役立つ様々な情報が取得される。なお、内容読出手段１４が読み出したフィールドの内容をそのまま読出結果ＤＢ１０３に記憶することとしているが、読み出した内容を適宜加工した情報を読出結果ＤＢ１０３に記憶することとしてもよい。また、読出結果ＤＢ１０３は、データベース構造である必要はなく、ファイル形式など適宜好適なフォーマットで実現することができる。
【００３３】
［テキストデータ読出システム１００を構成する各サーバのハードウェア構成］
以上説明したテキストデータ読出システム１００を構成する各サーバ（テキストデータ読出装置１を含む）のハードウェアは、一般的なコンピュータによって構成することができる。一般的なコンピュータは、例えば、制御部として、中央処理装置（ＣＰＵ）を備える他、記憶部として、メモリ（ＲＡＭ、ＲＯＭ）、ハードディスク（ＨＤＤ）及び光ディスク（ＣＤ、ＤＶＤなど）を、ネットワーク通信装置として、各種有線及び無線ＬＡＮ装置を、表示装置として、例えば、液晶ディスプレイ、プラズマディスプレイなどの各種ディスプレイを、入力装置として、例えば、キーボード及びポインティング・デバイス（マウス、トラッキングボールなど）を適宜備え、これらは、バスラインにより接続されている。このような一般的なコンピュータにおいて、ＣＰＵは、テキストデータ読出システム１００を構成する各サーバを統括的に制御し、各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
【００３４】
［テキストデータ読出装置１の動作］
続いて、図４を参照して、テキストデータ読出装置１の動作について説明する。
【００３５】
初めに、図４（１）を参照して、対象フィールド受付手段１１が、対象フィールドとしてレコード５０のフィールド５５を受け付けると、キャッシュ判定手段１２は、フィールド５５の位置情報がフィールド位置キャッシュ１５に記憶されているか否かを判定する。図４（１）では、フィールド５５の位置情報は未だ記憶されていないため、この判定はＮＯとなる。
キャッシュ判定手段１２の判定がＮＯとなると、識別情報解析手段１３は、区切り文字により特定されたレコード５０のフィールド識別情報のみを前方から対象フィールド識別情報まで順次読み出す。具体的には、識別情報読出手段１３１がレコード５０に含まれるフィールド５１のフィールド識別情報を読み出すと、位置キャッシュ手段１３２がフィールド５１の識別情報と位置情報とを対応付けてフィールド位置キャッシュ１５に記憶する。続いて、読出判定手段１３３が読み出したフィールド５１が対象フィールドであるか否かを判定する。このとき、フィールド５１は対象フィールドではないため、続いて、識別情報読出手段１３１がフィールド５１のフィールド識別情報を読み出す。このように、フィールド識別情報の読み出しとその位置情報のキャッシュとを繰り返し、識別情報読出手段１３１が読み出したフィールド５５の位置情報がキャッシュされると、読出判定手段１３３は、キャッシュされたフィールド５５が対象フィールドであると判定する。すると、読出終了手段１３４は、識別情報読出手段１３１によるフィールド識別情報の読み出しを終了する。
読出終了手段１３４によりフィールド識別情報の読み出しが終了されると、内容読出手段１４は、フィールド位置キャッシュ１５に記憶された位置情報に基づいて特定される対象フィールド５５の内容を読み出し、読出結果ＤＢ１０３に記憶する。
【００３６】
続いて、図４（２）を参照して、対象フィールド受付手段１１が、対象フィールドとしてレコード５０のフィールド５３を受け付けると、キャッシュ判定手段１２は、フィールド５３の位置情報がフィールド位置キャッシュ１５に記憶されているか否かを判定する。フィールド５３の位置情報は、図４（１）で既に記憶されているため、この判定はＹＥＳとなる。
キャッシュ判定手段１２の判定がＹＥＳとなると、識別情報解析手段１３によるフィールド識別情報の読み出しを行わず、内容読出手段１４は、フィールド位置キャッシュ１５に記憶された位置情報に基づいて特定される対象フィールド５３の内容を読み出し、読出結果ＤＢ１０３に記憶する。
【００３７】
続いて、図４（３）を参照して、対象フィールド受付手段１１が、対象フィールドとしてレコード５０のフィールド５７を受け付けると、キャッシュ判定手段１２は、フィールド５７の位置情報がフィールド位置キャッシュ１５に記憶されているか否かを判定する。フィールド５７の位置情報は未だ記憶されていないため、この判定はＮＯとなる。
続いて、識別情報解析手段１３によるフィールド識別情報の読み出しが行われるが、図４（３）では、既にフィールド５５のフィールド識別情報の読み出しまでが終了している。そのため、図４（３）では、読み出しが終了したフィールド５５の続きのフィールド５６からフィールド識別情報の読み出しが開始される。そして、フィールド５７のフィールド識別情報の読み出しが行われると、読出終了手段１３４によりフィールド識別情報の読み出しが終了される。
読出終了手段１３４によりフィールド識別情報の読み出しが終了されると、内容読出手段１４は、フィールド位置キャッシュ１５に記憶された位置情報に基づいて特定される対象フィールド５７の内容を読み出し、読出結果ＤＢ１０３に記憶する。
【００３８】
このように、本発明のテキストデータ読出装置１では、レコードに含まれるフィールドのうち、対象フィールドのフィールド識別情報までを読み出し、対象フィールド以降のフィールドのフィールド識別情報の読み出しを行わない。すなわち、フィールドの内容読み出し時まで当該フィールド以前のフィールドのフィールド識別情報を遅延評価する。
また、受け付けた対象フィールドが既に読み出され、その位置情報がキャッシュされている場合には、フィールド識別情報の読み出しを行わず、キャッシュされた位置情報に基づいて内容の読み出しを行う。
【００３９】
これにより、本発明のテキストデータ読出装置１によれば、レコードからのデータの読み出しを最適化することができる。なお、レコードの最後のフィールドの読み出し時には、従来と同じく全てのフィールドのフィールド識別情報を読み出すこととなるが、それ以外のケースでは必ず処理レスポンスを短縮することができる。
【００４０】
［テキストデータ読出装置１の処理］
続いて、図５を参照して、本発明のテキストデータ読出装置１の処理について説明する。
初めに、対象フィールド受付手段１１は、対象フィールド設定手段１０２から対象フィールドを受け付ける（Ｓ１）。続いて、キャッシュ判定手段１２は、対象フィールドのフィールド識別情報が既にフィールド位置キャッシュ１５にキャッシュされているか否かを判定する（Ｓ２）。このとき、対象フィールドのフィールド識別情報が既にキャッシュされている場合には、内容読出手段１４は、対象フィールドの内容を読み出し、読出結果ＤＢ１０３に記憶し（Ｓ７）、処理を終了する。
【００４１】
他方、対象フィールドのフィールド識別情報が未だキャッシュされていない場合には、識別情報読出手段１３１は、レコードの前方（又はキャッシュ済みのフィールド以降のフィールド）から順にフィールド識別情報の読み出しを行う（Ｓ３）。続いて、位置キャッシュ手段１３２は、Ｓ３で読み出したフィールド識別情報の位置情報（例えば、先頭からのバイト数）をフィールド識別情報と対応付けてフィールド位置キャッシュ１５に記憶する（Ｓ４）。
【００４２】
続いて、読出判定手段１３３は、キャッシュされたフィールド識別情報が対象フィールド識別情報であるか否かを判定する（Ｓ５）。このとき、Ｓ４でキャッシュされたフィールド識別情報が対象フィールド識別情報でない場合には、Ｓ３に戻り、フィールド識別情報の読み出し及び位置情報のキャッシュを繰り返す。
【００４３】
他方、Ｓ４でキャッシュされたフィールド識別情報が対象フィールド識別情報である場合には、読出終了手段１３４は、フィールド識別情報の読み出しを終了する（Ｓ６）。フィールド識別情報の読み出しを終了すると、内容読出手段１４は、対象フィールドの内容を読み出すとともに、読み出した内容を読出結果ＤＢ１０３に記憶し（Ｓ７）、処理を終了する。
【００４４】
［テキストデータ読出システム１００のシステム構成］
テキストデータ読出システム１００では、１日当たりｇｚｉｐ形式で圧縮された数テラバイトのレコードの読み出しを行う必要があるため、レコードの読み出しを多数のサーバにより分散して行う分散処理システムとしてテキストデータ読出システム１００を構成することが好適である。大規模分散処理に適した分散処理システムとして、ＭａｐＲｅｄｕｃｅを実装したオープンソースソフトウェアによるフレームワークとしてＨａｄｏｏｐが知られており、テキストデータ読出システム１００をＨａｄｏｏｐにより構築し、Ｈａｄｏｏｐ上でのデータの操作を、Ｈａｄｏｏｐ上で動作するデータウエアハウス向けのプロダクトであるＨｉｖｅを用いて行うと好適である。
【００４５】
なお、ＭａｐＲｅｄｕｃｅは、多数のサーバの集合であるコンピュータ・クラスターを用いて並列処理させるためのフレームワークである。ＭａｐＲｅｄｕｃｅは、所定の処理を行うために、処理の対象となる入力データを複数の断片に分割して複数のサーバに割り当て、各サーバにおいて、Ｍａｐタスク定義に従った処理を並列に行ってＫＥＹ−ＶＡＬＵＥ型のデータを中間ファイルとして生成し、当該ＫＥＹ−ＶＡＬＵＥ型のデータをソートして同一のＫＥＹで束ねてＫＥＹ毎に当該中間ファイルを処理するサーバを割り当てるＭａｐタスクと、割り当てられた各サーバにおいて、Ｒｅｄｕｃｅタスク定義に従った処理を並列に行って処理結果を集約し、当該所定の処理の結果を得るＲｅｄｕｃｅタスクとからなる。
【００４６】
図６（１）を参照して、テキストデータ読出システム１００は、マスタサーバＭと複数のワーカーサーバＷとを含んで構成される。
図６（２）を参照して、マスタサーバＭは、対象フィールドの設定を行い、Ｍａｐタスクを実行するワーカーサーバＷを割り当ててそれぞれについてＭａｐタスクを実行するように要求する。
Ｍａｐタスクを実行するワーカーサーバＷは、マスタサーバＭからの要求を受け、Ｍａｐタスク定義に従って対象フィールドの内容を読み出し、処理の完了をマスタサーバＭに通知する。
マスタサーバＭは、Ｒｅｄｕｃｅタスクを実行するワーカーサーバＷを割り当ててそれぞれについてＲｅｄｕｃｅタスクを実行するように要求する。
Ｒｅｄｕｃｅタスクを実行するワーカーサーバＷは、マスターサーバＭからの要求を受け、Ｒｅｄｕｃｅタスク定義に従ってＭａｐタスクにより生成されたデータセットを適宜加工し、その処理結果であるデータを取得する。
【００４７】
Ｈａｄｏｏｐにより実現されるこのようなテキストデータ読出システム１００において、本発明のテキストデータ読出装置１は、Ｍａｐタスクを実行するワーカーサーバＷが相当する。
【００４８】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【００４９】
本実施形態では、対象フィールド受付手段１１が１つの対象フィールドを受け付けた場合を例にとりフィールドの内容の読み出しについて説明したが、テキストデータ読出装置１は、対象フィールドを複数受け付けた場合であっても、これらフィールドの内容を読み出すことができる。
この場合において、内容の読み出しは、複数の対象フィールドの全ての位置情報をキャッシュした後に行っても良く、複数の対象フィールドのうち１の位置情報を読み出すたびに、読み出した対象フィールドの内容を読み出すこととしてもよい。
図４のレコード５０を参照して、対象フィールド受付手段１１が対象フィールドとしてフィールド５２，５３，５５を受け付けた場合を例にして、具体的に説明する。
【００５０】
［全ての位置情報のキャッシュ後の内容読出］
フィールド５２，５３，５５の位置情報がフィールド位置キャッシュ１５にキャッシュされていないため、識別情報解析手段１３は、区切り文字により特定されたレコード５０のフィールド識別情報のみを前方から順次読み出す。すなわち、識別情報読出手段１３１は、フィールド５１の識別情報を読み出した後、フィールド５２の識別情報を読み出す。ここで、フィールド５２は対象フィールドであるが、フィールド５２の読み出し時において、複数の対象フィールドの全ての位置情報はキャッシュされていない。そのため、読出判定手段１３３は、複数の対象フィールド識別情報の全てが読み出されていないと判定し、識別情報読出手段１３１の読み出しが継続される。その後、識別情報読出手段１３１により、フィールド５３，５４，５５の識別情報が読み出されると、読出判定手段１３３は、複数の対象フィールド識別情報の全てが読み出されたと判定し、読出終了手段１３４は、識別情報読出手段１３１によるフィールド識別情報の読み出しを終了する。そして、読出終了手段１３４による読み出し終了に基づいて、内容読出手段１４は、フィールド位置キャッシュ１５にキャッシュされた位置情報に基づいて複数の対象フィールドを特定し、これら対象フィールドの内容を読み出す。
【００５１】
［１の位置情報をキャッシュするたびに内容読出］
同様に、識別情報読出手段１３１は、フィールド５１の識別情報を読み出した後、フィールド５２の識別情報を読み出す。このとき、フィールド５２は複数の対象フィールドのうちの１つであるため、読出判定手段１３３は、対象フィールド識別情報が読み出されたと判定し、読出終了手段１３４は、識別情報の読み出しを終了する。そして、読出終了手段１３４による読み出し終了に基づいて、内容読出手段１４は、フィールド位置キャッシュ１５にキャッシュされた位置情報に基づいてフィールド５２を特定し、フィールド５２の内容を読み出す。
内容読出手段１４による内容の読出しが終了すると、識別情報読出手段１３１は、フィールド５２以降のフィールドの識別情報、すなわち、フィールド５３の識別情報を読み出す。フィールド５３も対象フィールドの１つであるため、読出終了手段１３４は、識別情報の読み出しを終了し、内容読出手段１４は、フィールド５３の内容を読み出す。
続いて、識別情報読出手段１３１は、フィールド５３以降のフィールドの識別情報、すなわち、フィールド５４，５５の識別情報を読み出す。フィールド５５は、対象フィールドの１つであるため、読出終了手段１３４は、識別情報の読み出しを終了し、内容読出手段１４は、フィールド５５の内容を読み出す。
【００５２】
このように、テキストデータ読出装置１では、複数の対象フィールドを受け付けた場合には、テキストデータ読み出しに最適とされる方法を適宜採用することができ、その結果、レコードからのテキストデータの読み出しを最適化することができる。
【００５３】
また、本実施形態では、フィールド識別情報の読み出し後にフィールド識別情報と位置情報とを対応付けてキャッシュすることとしているが、最後のフィールドについては、位置情報のキャッシュを省略することとしてもよい。
【００５４】
また、本実施形態では、本発明のテキストデータ読出装置１が読み出すデータとして、集計データＤＢ１０１に記憶された「テキストデータ」を例にとって説明したが、これに限られるものではなく、位置情報を遅延評価し対象のデータを読み出す本発明の技術思想は、「バイナリデータ」などの様々な形式のデータの読み出しに適用することができる。
【００５５】
また、本実施形態では、テキストデータ読出装置１というコンピュータを例にとって説明したが、本発明はコンピュータに限られるものではなく、コンピュータが各種機能を実行する方法、コンピュータに各種機能を実行させるためのプログラム、及びこのプログラムを記憶した記憶媒体にも適用可能である。
【符号の説明】
【００５６】
１    テキストデータ読出装置
１１  対象フィールド受付手段
１２  キャッシュ判定手段
１３  識別情報解析手段
１３１  識別情報読出手段
１３２  位置キャッシュ手段
１３３  読出判定手段
１３４  読出終了手段
１４  内容読出手段
１００  テキストデータ読出システム
１０１  対象フィールド設定手段
１０２  集計データＤＢ
１０３  読出結果ＤＢ
【図１】
2012108782.tif 000003
【図２】
2012108782.tif 000004
【図３】
2012108782.tif 000005
【図４】
2012108782.tif 000006
【図５】
2012108782.tif 000007
【図６】
2012108782.tif 000008
【図７】
2012108782.tif 000009