(57)【要約】【課題】新たに収集したデータと蓄積データとの整合性を確保し、蓄積データを最新の状態に保つためのデータ収集システムおよびプログラムを提供する。【解決手段】所定の手続きに従って取得した時系列データ１０８の記述形式を解析し、時系列データの中の時刻情報である部分とデータ値である部分とを判定し、取得した時系列データ１０８と既保有データ１０９の記述形式とが不整合であった場合には、既保有データ１０９の記述形式を取得データの記述形式に修正し、更に新規データの追加や修正データの上書き保存を行う。【選択図】  図１
2016066251.tif 000002
【特許請求の範囲】
【請求項１】
時系列データを収集するためのデータ収集システムであって、
データ提供元から、少なくとも１組の時刻情報およびデータ値の組から構成される時系列データを取得するデータクローラと、
このデータクローラによって取得された前記時系列データの前記データ提供元を特定するデータ提供元情報、前記データクローラによって過去に前記データ提供元から取得された前記時系列データ、前記データクローラによって過去に前記データ提供元から取得された前記時系列データの記述形式、を各々対応付けて既保有データとして記録する既保有データベースと、
データ検査部とを備え、
このデータ検査部は、
前記データクローラによって新たに取得された前記時系列データの記述形式を解析する解析部、
この解析部で解析された前記時系列データの記述形式に基づいて前記データクローラによって新たに取得された前記時系列データ中の数値および文字記号の少なくとも一つに基づいて、前記時刻情報であるか前記データ値であるかを判定する判定部、
前記解析部で解析された前記時系列データの記述形式と前記既保有データベースに記録された既保有データの記述形式との整合性を検査する検査部、
この検査部での整合性検査において不整合があったときに、前記既保有データベースに記録された前記既保有データの記述形式と前記データクローラによって新たに取得された前記時系列データの記述形式とを一致させる修正処理を行う修正部、
前記既保有データベースに記録された前記既保有データと前記データクローラによって新たに取得され、前記判定部で判別された前記時系列データとを比較し、前記データクローラによって新たに取得された前記時系列データの中に前記既保有データベースに記録された前記既保有データよりも新しい時刻情報が存在するときに、この新しい時刻情報と対応するデータ値とを前記既保有データに追加する追加部、
前記既保有データベースに記録された前記既保有データと前記データクローラによって新たに取得され、前記判定部で判別された前記時系列データとを比較し、前記既保有データと前記時系列データとの間に時刻情報が同一であり且つデータ値が異なるデータが存在するときに、前記既保有データのデータ値を前記時系列データのデータ値で上書き更新する更新部、とを有する
ことを特徴とするデータ収集システム。
【請求項２】
請求項１に記載のデータ収集システムにおいて、
前記データ検査部の前記判定部は、更に、前記時系列データ中の数値の並び順を判別することにより前記時刻情報とデータ値とを判定する
ことを特徴とするデータ収集システム。
【請求項３】
請求項１に記載のデータ収集システムにおいて、
前記データ検査部の前記判定部は、更に、前記時系列データ中の数値が現在時刻と前記既保有データ中の最新時刻情報との範囲内にあるか否かを判別することにより前記時刻情報とデータ値とを判定する
ことを特徴とするデータ収集システム。
【請求項４】
請求項１に記載のデータ収集システムにおいて、
前記データ検査部の前記修正部は、前記検査部での整合性検査において不整合があったときに、前記時系列データの記述形式に一致するよう前記既保有データの記述形式を修正することで前記既保有データの記述形式と前記時系列データの記述形式とを一致させる
ことを特徴とするデータ収集システム。
【請求項５】
時系列データを収集するためのデータ収集用のプログラムであって、
データ提供元から、少なくとも１組の時刻情報およびデータ値の組から構成される時系列データを取得する取得手順と、
この取得手順で取得された前記時系列データの前記データ提供元を特定するデータ提供元情報、前記データクローラによって過去に前記データ提供元から取得された前記時系列データ、前記データクローラによって過去に前記データ提供元から取得された前記時系列データの記述形式、を各々対応付けて既保有データとして既保有データベースに記録させる記録手順と、
前記取得手順で新たに取得された前記時系列データの記述形式を解析する解析手順と、
この解析手順で解析された前記時系列データの記述形式に基づいて前記データクローラによって新たに取得された前記時系列データの中の数値および文字記号の少なくとも一つに基づいて、前記時刻情報であるか前記データ値であるかを判定する判定手順と、
前記解析手順で解析された前記時系列データの記述形式と前記既保有データベースに記録された既保有データの記述形式との整合性を検査する検査手順と、
この検査手順での整合性検査において不整合があったときに、前記既保有データベースに記録された前記既保有データの記述形式と前記データクローラによって新たに取得された前記時系列データの記述形式とを一致させる修正処理を行う修正手順と、
前記記録手順で前記既保有データベースに記録された前記既保有データと前記取得手順で新たに取得され、前記判定手順で判別された前記時系列データとを比較し、前記新たに取得された前記時系列データの中に前記既保有データよりも新しい時刻情報が存在するときに、この新しい時刻情報と対応するデータ値とを前記既保有データに追加する追加手順と、
前記記録手順で前記既保有データベースに記録された前記既保有データと前記取得手順で新たに取得され、前記判定手順で判別された前記時系列データとを比較し、前記既保有データと前記時系列データとの間に時刻情報が同一であり且つデータ値が異なるデータが存在するときに、前記既保有データのデータ値を前記時系列データのデータ値で上書き更新する更新手順と、とを有する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、金融証券分野やプラント設備等において扱われる多量の時系列データを収集するデータ収集システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、金融分野における株価や為替、あるいは、プラント設備などにおける様々なセンサ計測値などの多量の時系列データに対する解析を行うことにより、これらの値の将来の変化や関連性に異常診断などの解析、予測を行うビッグデータ解析が活発に行われている。このようなビッグデータ解析においては、時々刻々と更新される多量の時系列データをリアルタイムに収集することが求められている。
【０００３】
例えば特許文献１には、産業プラントにおけるセンサ計測値などの情報をリアルタイムに収集して蓄積し、収集したデータの重要度などを評価してユーザへ提示する発明が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１０９４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に示した発明においては、収集する時系列データの記述形式（例えば、時刻情報の記述フォーマットなど）が変化することは想定されていない。このため、記述形式の変化が発生した場合には過去に蓄積したデータと新たに収集したデータとの整合性がとれていないとの問題が発生することがある。この場合、解析を行う際には最初にデータの整合性をとる作業を行う必要があり、解析作業に支障をきたす恐れがあるとの問題がある。
【０００６】
本発明は、このような問題を解決し、新たに収集したデータと蓄積データとの整合性を確保し、蓄積データを最新の状態に保つためのデータ収集システムおよびプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本発明は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、時系列データを収集するためのデータ収集システムであって、データ提供元から、少なくとも１組の時刻情報およびデータ値の組から構成される時系列データを取得するデータクローラと、このデータクローラによって取得された前記時系列データの前記データ提供元を特定するデータ提供元情報、前記データクローラによって過去に前記データ提供元から取得された前記時系列データ、前記データクローラによって過去に前記データ提供元から取得された前記時系列データの記述形式、を各々対応付けて既保有データとして記録する既保有データベースと、データ検査部とを備え、このデータ検査部は、前記データクローラによって新たに取得された前記時系列データの記述形式を解析する解析部、この解析部で解析された前記時系列データの記述形式に基づいて前記データクローラによって新たに取得された前記時系列データ中の数値および文字記号の少なくとも一つに基づいて、前記時刻情報であるか前記データ値であるかを判定する判定部、前記解析部で解析された前記時系列データの記述形式と前記既保有データベースに記録された既保有データの記述形式との整合性を検査する検査部、この検査部での整合性検査において不整合があったときに、前記既保有データベースに記録された前記既保有データの記述形式と前記データクローラによって新たに取得された前記時系列データの記述形式とを一致させる修正処理を行う修正部、前記既保有データベースに記録された前記既保有データと前記データクローラによって新たに取得され、前記判定部で判別された前記時系列データとを比較し、前記データクローラによって新たに取得された前記時系列データの中に前記既保有データベースに記録された前記既保有データよりも新しい時刻情報が存在するときに、この新しい時刻情報と対応するデータ値とを前記既保有データに追加する追加部、前記既保有データベースに記録された前記既保有データと前記データクローラによって新たに取得され、前記判定部で判別された前記時系列データとを比較し、前記既保有データと前記時系列データとの間に時刻情報が同一であり且つデータ値が異なるデータが存在するときに、前記既保有データのデータ値を前記時系列データのデータ値で上書き更新する更新部、とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、収集する時系列データの記述形式が変化した場合にも、過去に収集して蓄積しておいたデータと新たに収集したデータとの記述形式を自動的に一致させることができ、新たに収集したデータと過去に収集して蓄積しておいたデータとの整合性を常に保つことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施例に係るデータ収集システムの概略構成の一例を示すブロック図である。
【図２Ａ】本発明の第１の実施例に係る時系列データの一例を示す図である。
【図２Ｂ】本発明の第１の実施例に係るデータ提供元情報の一例を示す図である。
【図２Ｃ】本発明の第１の実施例に係る既保有データの一例を示す図である。
【図３】本発明の第１の実施例に係るデータ収集システムの動作の詳細の一例を示すフローチャートである。
【図４】本発明の第１の実施例に係るデータ収集システムの動作の詳細の一例を示すフローチャートである。
【図５】本発明の第１の実施例に係るデータ収集システムのデータ検査部の動作の詳細の一例を示すフローチャートである。
【図６Ａ】本発明の第１の実施例に係るダウンロードする時系列データの一例を示す図である。
【図６Ｂ】図５に示すフローチャートのステップＳ５０１の実行結果の一例を示す図である。
【図６Ｃ】図５に示すフローチャートのステップＳ５０２の実行結果の一例を示す図である。
【図６Ｄ】図５に示すフローチャートのステップＳ５０３の実行結果の一例を示す図である。
【図７】本発明の第２の実施例に係るデータ収集システムのデータ検査部の動作の詳細の一例を示すフローチャートである。
【図８Ａ】本発明の第２の実施例に係るダウンロードする時系列データの一例を示す図である。
【図８Ｂ】図７に示すフローチャートのステップＳ７０１の実行結果の一例を示す図である。
【図８Ｃ】図７に示すフローチャートのステップＳ７０２の実行結果の一例を示す図である。
【図８Ｄ】図７に示すフローチャートのステップＳ７０３の実行結果の一例を示す図である。
【図８Ｅ】図７に示すフローチャートのステップＳ７０４の実行結果の一例を示す図である。
【図９】本発明の第３の実施例に係るデータ収集システムのデータ検査部の動作の詳細の一例を示すフローチャートである。
【図１０Ａ】本発明の第３の実施例に係るダウンロードする時系列データの一例を示す図である。
【図１０Ｂ】図９に示すフローチャートのステップＳ９０１の実行結果の一例を示す図である。
【図１０Ｃ】図９に示すフローチャートのステップＳ９０２の実行結果の一例を示す図である。
【図１０Ｄ】図９に示すフローチャートのステップＳ９０３の実行結果の一例を示す図である。
【図１０Ｅ】図９に示すフローチャートのステップＳ９０４の実行結果の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に本発明のデータ収集システムおよびプログラムの実施例を、図面を用いて説明する。
【００１１】
＜第１の実施例＞  
本発明のデータ収集システムおよびプログラムの第１の実施例を、図１乃至図６Ｄを用いて説明する。
【００１２】
図１は本発明に係るデータ収集システムの概略構成の一例を示したブロック図である。
【００１３】
図１において、本実施例のデータ収集システム１０１は、ネットワーク１０３を介してデータ提供元１０２から時系列データを収集するためのシステムであって、少なくとも１つのデータクローラ１０４と、少なくとも１つのデータ検査部１０５と、少なくとも１つの既保有データベース１０６とにより概略構成されている。
【００１４】
データ提供元１０２は、本実施例のデータ収集システム１０１が収集するデータを提供する少なくとも１つ以上存在するデータの提供元であり、データ収集システム１０１とデータ提供元１０２とはネットワーク１０３を介して接続されている。
【００１５】
このデータ提供元１０２は、例えば、各種経済統計の時系列データなどを電子データとしてダウンロードすることが可能な官公庁の公式ウェブサイト（内閣府、ｈｔｔｐ：／／ｗｗｗ．ｅｓｒｉ．ｃａｏ．ｇｏ．ｊｐ／ｊｐ／ｓｎａ／ｍｅｎｕ．ｈｔｍｌ）等である。
【００１６】
図２Ａに、データ提供元１０２から提供される時系列データの一例を示す。
図２Ａに示すような時系列データは、少なくとも２つの値列から構成されている。図２Ａに示した例では、左側の値列は時刻情報であり、右側の値列はデータ値である。また、このデータの一行をレコードと呼び、このデータは複数のレコードから構成されている。また、１つのレコードには少なくとも１組の時刻情報とデータ値とが含まれる。
【００１７】
データクローラ１０４は、既保有データベース１０６に保有されているデータ提供元情報１０７（詳しくは後述）に基づいて、データ提供元１０２から、ネットワーク１０３を介して少なくとも１組の時刻情報およびデータ値の組から構成される時系列データを取得し、ダウンロードした時系列データ１０８をデータ検査部１０５に対して出力する。このデータクローラ１０４が、データ提供元１０２から時系列データを取得するタイミングは、定期的としてもよいし、オペレータ等の指示に基づいて任意のタイミングで取得してもよい。
【００１８】
既保有データベース１０６は、データ収集システム１０１が過去に収集したデータ（以下、既保有データ１０９と呼称する）と、データ提供元１０２を指定するための情報であるデータ提供元情報１０７と、を保有している。
【００１９】
図２Ｂにデータ提供元情報１０７の一例を、図２Ｃに既保有データ１０９の一例を示す。
図２Ｂに示したデータ提供元情報１０７の例には、データ収集システム１０１が収集したデータ名を示す取得データ名と、このデータをデータ収集システム１０１へ提供するテータ提供元アドレス情報とが１組のデータとして（以下、この組を提供元情報組と呼称する）、合計３組の提供元情報組が格納されている。また、図２Ｃに示すような既保有データ１０９には、データ収集システム１０１が過去に収集した少なくとも１組の時系列データの時刻情報とデータ値とがレコード（時系列データ）として格納されている。この既保有データ１０９には、更に、時刻情報の時刻情報名とデータ値のデータ値名を示す値列名レコード（データ提供元１０２を特定するデータ提供元情報１０７）および時刻情報の記述形式情報とデータ値の記述形式情報を示す形式レコード（ダウンロードされた時系列データ１０８の記述形式）が含まれている。
【００２０】
データ検査部１０５は、データクローラ１０４がデータ提供元１０２から取得したデータの記述形式を解析する機能、新規データの有無を検出する機能、既保有データを所定の手続きに従って更新あるいは修正する機能、修正した結果を既保有データベース１０６へ保存する機能、を備えており、これらの各機能を実行するために、解析部１０５ａ、判定部１０５ｂ、検査部１０５ｃ、修正部１０５ｄ、追加部１０５ｅ、更新部１０５ｆの各部を有している。
【００２１】
このうち、解析部１０５ａは、データクローラ１０４によって新たにダウンロードされた時系列データ１０８の記述形式の解析処理を実行する。
【００２２】
判定部１０５ｂは、解析部１０５ａで解析された時系列データの記述形式に基づいて、データクローラ１０４によって新たにダウンロードされた時系列データ１０８中の数値の最大値および最小値を判別することにより、データクローラ１０４によって新たにダウンロードされた時系列データ１０８の中のデータが時刻情報であるかデータ値であるかを判定する判定処理を実行する。
なお、判定部１０５ｂでは、数値、例えば最大値および最小値を判別することで時刻情報かデータ値であるかの判定を行ったが、文字記号を判別することで時刻情報かデータ値であるかの判定を行うことができる。また、数値および文字記号を判別することで時刻情報かデータ値であるかの判定を行うことができる。
【００２３】
検査部１０５ｃは、解析部１０５ａで解析された時系列データの記述形式と既保有データベース１０６に記録された既保有データ１０９の記述形式との整合性を検査する検査処理を実行する。
【００２４】
修正部１０５ｄは、検査部１０５ｃでの整合性検査において不整合があったときには、既保有データ１０９の時刻情報の記述フォーマット等の記述形式を新たにダウンロードされた時系列データの記述形式に上書き更新することで既保有データ１０９の記述形式と新たにダウンロードされた時系列データの記述形式とを一致させ、既保有データベース１０６に新時系列データ１１０として出力・記録させる修正処理を実行する。
【００２５】
追加部１０５ｅは、既保有データベース１０６に記録された既保有データ１０９中の時系列データとデータクローラ１０４によって新たにダウンロードされ、判定部１０５ｂで判別された時系列データ１０８とを比較し、データクローラ１０４によって新たにダウンロードされた時系列データ１０８の中に既保有データベース１０６に記録された既保有データ１０９よりも新しい時刻情報が存在するときに、この新しい時刻情報と対応するデータ値とを既保有データ１０９に追加し、既保有データベース１０６に新時系列データ１１０として出力・記録させる処理を実行する。
【００２６】
更新部１０５ｆは、既保有データベース１０６に記録された既保有データ１０９とデータクローラ１０４によって新たにダウンロードされ、判定部１０５ｂで判別された時系列データ１０８とを比較し、既保有データ１０９と新たにダウンロードされた時系列データとの間に時刻情報が同一であり且つデータ値が異なるデータが存在するときに、既保有データ１０９のデータ値を新たにダウンロードされた時系列データのデータ値で上書き更新し、新既保有データベース１０６に新時系列データ１１０として出力・記録させる処理を実行する。
【００２７】
以下、上述した本実施例のデータ収集システム１０１の各構成ブロックの詳細な動作（本実施例のデータ収集プログラムの動作）の詳細について、図面を用いて説明する。
【００２８】
まず、データクローラ１０４における、データ提供元１０２から少なくとも１組の時刻情報およびデータ値の組から構成される時系列データを取得する取得手順の詳細な動作について、図３のフローチャートを用いて説明する。
【００２９】
まず、データクローラ１０４は、既保有データベース１０６からデータ提供元情報１０７を取得する（ステップＳ３０１）。
【００３０】
次いで、データクローラ１０４は、先のステップＳ３０１において取得したデータ提供元情報１０７に格納されている全ての提供元情報組を参照して、データ提供元１０２からネットワーク１０３を介して図２Ａに示すような時系列データをダウンロードする（ステップＳ３０２）。
例えば、図２Ｂに示したデータ提供元情報１０７には全部で３組の提供元情報組が格納されているため、データクローラ１０４は３回のデータダウンロードを実行し、図２Ａに示すような３つの時系列データをダウンロードする。
【００３１】
次いで、データクローラ１０４は、先のステップＳ３０２においてダウンロードした時系列データ１０８およびこの時系列データをダウンロードするために用いた提供元情報組の組（以下、この組をダウンロードデータ組と呼称する）とをデータ検査部１０５へ出力する（ステップＳ３０３）。
例えば、ステップＳ３０２の例では３つの時系列データをダウンロードしているため、データクローラ１０４がデータ検査部１０５に対して出力するダウンロードデータ組は、３組となる。
【００３２】
次に、データ検査部１０５の動作について、図４のフローチャートを用いて詳細に説明する。
【００３３】
まず、データ検査部１０５の解析部１０５ａは、既保有データベース１０６に格納されている既保有データ１０９の値列名レコードを参照し、既保有データ１０９中から、ステップＳ３０３においてデータクローラ１０４が出力したダウンロードデータ組に含まれる「取得データ名」と一致する時刻情報名およびデータ値名である時系列データの時刻情報およびデータ値の組（以下、この組を保有データ組と呼称する）を取得する（ステップＳ４０１）。
例えば、データクローラ１０４が出力した取得データ名が「時系列データＡ」であった場合（これは、図２Ｂのデータ提供元情報１０７の上から２段目の提供元情報組に相当する）には、図２Ｃの既保有データ１０９の中の時系列データＡ時刻の時刻情報および時系列データＡのデータ値を保有データ組として既保有データベース１０６から取得する。
【００３４】
次に、データ検査部１０５の解析部１０５ａは、ステップＳ３０３においてデータクローラ１０４が出力したダウンロードデータ組に含まれるダウンロードした時系列データに対して記述形式解析を実行し、また判定部１０５ｂはこのダウンロード組に含まれるダウンロードしたデータの時刻情報である値列とデータ値である値列とを区別し、その記述形式を判定する（ステップＳ４０２、解析手順および判定手順）。
【００３５】
ここで、このデータ検査部１０５の解析部１０５ａおよび判定部１０５ｂにおけるステップＳ４０２の記述形式解析・判定動作処理の詳細について、図５のフローチャートおよび図６を用いて説明する。
【００３６】
まず、データ検査部１０５の判定部１０５ｂは、ダウンロード組に含まれるダウンロードしたデータの全値列に対して、数字である部分と文字記号である部分とを区別する（ステップＳ５０１、解析手順）。
ここで、一例として、ダウンロード組に含まれるダウンロードしたデータが図６Ａに示したデータであった場合に、数値である部分と文字記号である部分とを区別した結果を図６Ｂに示す。図６Ｂにおいて、区別された各部分を部分列と呼称する。
【００３７】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ５０１において数値であると区別した部分列については、その値の範囲と整数値であるか実数値であるかなどの数値の型を判定し、文字記号であると区別した部分列については、その文字記号を判定し、所定の判定結果を生成する（ステップＳ５０２、判定手順）。
この判定では、各部分の桁数、最大値、最小値などの情報を判別することによって時刻情報とデータ値とを判定する。例えば、図６Ｂに示したデータに対しては、この判定結果として図６Ｃに示す判定結果を生成する。
なお、この判定部１０５ｂにおけるステップＳ５０２における判定手順では、数値、例えば最大値および最小値を判別することで時刻情報かデータ値であるかの判定を行ったが、文字記号を判別することで時刻情報かデータ値であるかの判定を行うことができる。また、数値および文字記号を判別することで時刻情報かデータ値であるかの判定を行うことができる。
【００３８】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ５０２で生成した判定結果に基づいて、各値列が時刻情報であるのかあるいはデータ値であるのかを判定し、判定結果をダウンロードした時刻データに追加する（ステップＳ５０３）。
具体的には、ある値列が、現在の年以下の値（例えば、現在が２０１４年であれば２０１４）且つ１９００以上の整数である部分列（この部分列は年を意味する）と、文字記号である部分列（この部分列は区切り文字であることを意味する）と、１以上１２以下の整数である部分列（この部分列は月を意味する）と、から構成されている場合には、この値列は年月を示す時刻情報であると判定する。また、実数である部分列のみから構成されている値列に対しては、この値列はデータ値であると判定する。その後、この判定結果をダウンロードしたデータに追加する。図６Ｄに、データ検査部１０５の判定部１０５ｂがこの判定結果を図６Ａに示したダウンロードデータに追加した結果の一例を示す。図６Ｄにおいて、図６Ａに示すダウンロードデータに対して最上段に、一般的にヘッダーと称される値列名レコードが追加されていることが分かる。
【００３９】
図４に戻って、次に、データ検査部１０５の検査部１０５ｃは、先のステップＳ４０２で判定したダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式（具体的には、図６Ｃに示した判定結果）と、保有データ組に含まれる時刻情報記の記述形式とが一致しているか否かを確認する整合性検査を実行する（ステップＳ４０３、検査手順）。この整合性の検査の結果、ダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式と保有データ組に含まれる時刻情報記の記述形式とが不一致であると判定される場合にはデータ検査部１０５はステップＳ４０４を実行し、一致していると判定される場合にはステップＳ４０５を実行する。
【００４０】
ステップＳ４０３の具体例として、ダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式が図６Ｃに示したとおりであり、保有データ組に含まれる時刻情報の記述形式が図２Ｃの時系列データＡに示したとおりであった場合について説明する。
この場合、図６Ｃに示したダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式は４桁整数と一文字“／”と１ｏｒ２桁整数である。一方で図２Ｃに示した保有データ組に含まれる時系列データＡ時刻情報の記述形式は４桁整数（年）と一文字“．”（区切り）と１ｏｒ２桁整数（月）であり、これらの記述形式には不一致が認められる。
【００４１】
この場合、データ検査部１０５の修正部１０５ｄは、保有データ組に含まれる時刻情報の値を、先のステップＳ４０２で判定したダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式と一致するようにデータ修正を行うとともに、また、保有データ組に含まれる時刻情報の記述形式情報を、ステップＳ４０２で判定したダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式に修正，更新する（ステップＳ４０４、修正手順）。
ステップＳ４０３の具体例で示した通り、図６Ｃに示したダウンロード組に含まれるダウンロードした時系列データの時刻情報の記述形式は４桁整数と一文字“／”と１ｏｒ２桁整数であり、一方で図２Ｃに示した保有データ組に含まれる時系列データＡ時刻情報の記述形式は４桁整数と一文字“．”と１ｏｒ２桁整数である。このため、図２Ｃに示した保有データ組に含まれる時系列データＡ時刻情報の記述形式に含まれる１文字“．”を、１文字“／”へ更新する。
【００４２】
次に、データ検査部１０５の追加部１０５ｅは、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データに含まれる時刻情報の値と保有データ組に含まれる時刻情報の値とを比較する（ステップＳ４０５）。その後、データ検査部１０５の追加部１０５ｅは、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データの中に、保有データ組に含まれるデータよりも時刻情報が新しいデータが存在するか否かのチェックを実行する（ステップＳ４０６）。
【００４３】
例えば、ダウンロード組に含まれるダウンロードした時系列データが図２Ａに示したとおりであり、保有データ組に含まれる既保有データ１０９が図２Ｃの時系列データＡに示したとおりであった場合を考える。この場合には、ダウンロード組に含まれるダウンロードした時系列データには２０１３年１２月のデータが存在し、一方で既保有データ１０９には２０１３年１１月までのデータしか存在しない。このため、ダウンロード組に含まれるダウンロードした時系列データ１０８には新しいデータが存在することになる。
【００４４】
このステップＳ４０６において、ステップＳ４０５での新規性チェックの結果、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データの中に、保有データ組に含まれるデータよりも時刻情報が新しいデータが存在すると判定される場合には、データ検査部１０５の追加部１０５ｅは、ステップＳ４０７を実行する。これに対し、存在しないと判定される場合には、ステップＳ４０８を実行する。
【００４５】
データ検査部１０５の追加部１０５ｅは、ステップＳ４０５でチェックした、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データの中の、保有データ組に含まれるデータよりも時刻情報が新しいデータを保有データ組に付け加えて、保有データ組を更新する（ステップＳ４０７、追加手順）。
【００４６】
次に、データ検査部１０５の更新部１０５ｆは、先のステップでダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データと保有データ組に含まれる時系列データとを全て比較し、これらの間で時刻情報あるいはデータ値情報とが一致するかどうかをチェックする（ステップＳ４０８）。その後、データ検査部１０５の更新部１０５ｆは、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データと、保有データ組に含まれる時系列データとの間で時刻情報あるいはデータ値情報との間で不一致が存在するか否かをチェックする（ステップＳ４０９）。
例えば、ダウンロード組に含まれるダウンロードした時系列データが図２Ａに示したとおりであり、保有データ組に含まれる時系列データが図２Ｃの時系列データＡに示したとおりであった場合には、ダウンロード組に含まれるダウンロードした時系列データの１９９５年５月のデータのデータ値が４であるのに対し、保有データ組に含まれる時系列データの１９９５年５月のデータのデータ値は３であるため、データ値情報に不一致が存在することになる。
【００４７】
ステップＳ４０９では、ステップＳ４０８での不一致チェックの結果、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データと保有データ組に含まれる時系列データとの間で不一致が存在する場合にはデータ検査部１０５の更新部１０５ｆはステップＳ４１０を実行し、存在しない場合にはステップＳ４１１を実行する。
【００４８】
データ検査部１０５の更新部１０５ｆは、先のステップＳ４０８でチェックした不一致のあった時刻情報あるいはデータ値を、ダウンロードし、先のステップＳ５０２における判定部１０５ｂによって判別された時系列データの時刻情報あるいはデータ値で上書き修正を行う（ステップＳ４１０、更新手順）。また、データ検査部１０５は、この上書き修正を実行することをユーザへ警告する。
【００４９】
データ検査部１０５は、ステップＳ４０７において追加処理されたデータ値を含む時系列データや、ステップＳ４１０において上書き更新処理されたデータ値を含む時系列データや、追加・上書き更新の何れの処理もなされていない時系列データを、ダウンロードされた時系列データ１０８のデータ提供元１０２を特定するデータ提供元１０２に関する情報と、過去にデータ提供元１０２からダウンロードされた時系列データ１０８に関する情報と、過去にデータ提供元１０２からダウンロードされた時系列データ１０８の記述形式、を各々対応付けて、新時系列データ１１０として既保有データベース１０６へ書き戻して、保存する（ステップＳ４１１）。その後、処理を終了する。
【００５０】
上述した本発明のデータ収集システムおよびプログラムの第１の実施例では、所定の手続きに従って取得した時系列データの記述形式を解析し、時系列データの中の時刻情報である部分とデータ値である部分とを判定し、取得した時系列データと既保有データの記述形式とが不整合であった場合には、既保有データの記述形式を取得データの記述形式に修正し、更に新規データの追加や修正データの上書き保存を行う機能を備えている。
【００５１】
これによって、データ提供元からダウンロードしたデータの記述形式および新規性を判定することが可能であり、この判定の結果に基づいて既保有データ１０９の更新および修正を行うことができる。よって、テータ提供元から収集した時系列データの記述形式が変化した場合にも、過去に収集して蓄積しておいた既保有データ１０９の記述形式が最新の記述形式に自動的に修正され、新たに収集したデータと過去に収集して蓄積しておいたデータとの整合性を常に保つことができる。従って、記述形式の変化が発生した場合でも過去に蓄積したデータと新たに収集したデータとの整合性がとれており、解析に支障をきたすことなく速やかに最新のデータを用いて解析作業を行うことに大きく寄与する。
【００５２】
＜第２の実施例＞  
本発明のデータ収集システムおよびプログラムの第２の実施例を図７乃至図８Ｅを用いて説明する。
【００５３】
本実施例のデータ収集システムおよびプログラムは、先の第１の実施例のデータ検査部１０５の解析部１０５ａおよび判定部１０５ｂにおけるステップＳ４０２の記述形式解析・判定動作処理の詳細以外の構成、処理は第１の実施例のデータ収集システムおよびプログラムと略同じであり、詳細は省略する。
【００５４】
以下、本実施例のデータ検査部１０５の解析部１０５ａおよび判定部１０５ｂにおけるステップＳ４０２の記述形式解析・判定動作処理の詳細について、図７乃至図８Ｅを用いて説明する。
【００５５】
まず、データ検査部１０５の解析部１０５ａは、ダウンロード組に含まれるダウンロードしたデータの全値列に対して、数字である部分と文字記号である部分とを区別する（ステップＳ７０１）。
ここで、一例として、ダウンロード組に含まれるダウンロードしたデータが図８Ａに示したデータであった場合に、数値である部分と文字記号である部分とを区別した結果を図８Ｂに示す。区別された各部分を部分列と呼称する。
なお、このステップＳ７０１は、第１の実施例のステップＳ５０１と動作に相違はない。
【００５６】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ７０１において数値であると区別した部分列については、その値が整数値であるか実数値であるかなどの数値の型と桁数を判定し、文字記号であると区別した部分列については、その文字記号を判定し、所定の判定結果を生成する（ステップＳ７０２、判定手順）。
この判定では、各部分の桁数、最大値、最小値などの情報を判別し、時刻情報とデータ値とを判定する。例えば、図８Ｂに示したデータに対しては、この判定結果として図８Ｃに示す判定結果を生成する。
【００５７】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ７０２で整数であると判定した部分列について、その数値の並び順を判定し、この並び順判定の結果をステップＳ７０２で生成した図８Ｃに示す判定結果に追加する（ステップＳ７０３、判定手順）。
【００５８】
具体的には、時系列データ中の各部分列の数値が昇順であるか、あるいは降順であるか、あるいは１から１２までの数値は自然数で昇順に並んでいるものの１２の次が１３ではなく１２以下の数値であるか（この条件に一致すれば、年月日の情報における月の情報である可能性が高い）、あるいは１から３１までの数値は自然数で昇順に並んでいるものの３１の次が３２ではなく３１以下の数値であるか（この条件に一致すれば、年月日の情報における日の情報である可能性が高い）、あるいは０から２３までの数値は自然数で昇順に並んでいるものの２３の次が２４ではなく２３以下の数値であるか（この条件に一致すれば時刻の情報である可能性が高い）、あるいは昇順でも降順でも無いのか（この条件に一致すれば時刻情報ではなくデータ値である可能性が高い）、などを判定し、図８Ｄに示す並び順判定結果を生成する。
【００５９】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ７０３で生成した図８Ｄに示す判定結果に基づいて、各値列が時刻情報であるのか、あるいはデータ値であるのかを判定し、判定結果をダウンロードしたデータに追加する（ステップＳ７０４）。
【００６０】
具体的には、ある値列が、４桁整数で昇順である部分列（この部分列は年を意味する）と、文字記号である部分列（この部分列は区切り文字であることを意味する）と、１または２桁整数で１２までは昇順で１２の次は１３ではなく１２以下の値である部分列（この部分列は月を意味する）と、から構成されている場合には、この値列は年月を示す時刻情報であると判定する。また、実数である部分列のみから構成されている値列に対しては、この値列はデータ値であると判定する。そして、データ検査部１０５は、この判定結果をダウンロードしたデータに追加する。図８Ｅに、データ検査部１０５がこの判定結果を図８Ａに示したダウンロードデータに追加した結果の一例を示す。
【００６１】
本発明のデータ収集システムおよびプログラムの第２の実施例においても、前述したデータ収集システムおよびプログラムの第１の実施例とほぼ同様な効果が得られる。すなわち、テータ提供元から収集した時系列データの記述形式が変化した場合にも、過去に収集して蓄積しておいた既保有データ１０９のいずれかの記述形式を自動的に修正され、新たに収集したデータと過去に収集して蓄積しておいたデータとの整合性を常に保つことができる。
【００６２】
更に、時系列データ中の各部分列の数値の並び順を判定することによって、数値データが時刻情報であるかデータ値であるかの判定結果の正確性を挙げることができ、より精度の高いデータ提供元１０２からダウンロードしたデータの記述形式の判定，時刻情報とデータ値との判定処理を実行することが可能である。
【００６３】
＜第３の実施例＞  
本発明のデータ収集システムおよびプログラムの第３の実施例を図９乃至図１０Ｅを用いて説明する。
【００６４】
以下、本実施例のデータ検査部１０５の解析部１０５ａおよび判定部１０５ｂにおけるステップＳ４０２の記述形式解析・判定動作処理の詳細について、図９乃至図１０Ｅを用いて説明する。
【００６５】
本実施例のデータ収集システムおよびプログラムは、先の第１の実施例のデータ検査部１０５の解析部１０５ａおよび判定部１０５ｂにおけるステップＳ４０２の記述形式解析・判定動作処理の詳細以外の構成、処理は第１の実施例のデータ収集システムおよびプログラムと略同じであり、詳細は省略する。
【００６６】
まず、データ検査部１０５の解析部１０５ａは、ダウンロード組に含まれるダウンロードしたデータの全値列に対して、数字である部分と文字記号である部分とを区別する（ステップＳ９０１）。
ここで、一例として、ダウンロード組に含まれるダウンロードしたデータが図１０Ａに示したデータであった場合に、数値である部分と文字記号である部分とを区別した結果を図１０Ｂに示す。区別された各部分を部分列と呼称する。
なお、このステップＳ９０１は、第１の実施例のステップＳ５０１，第２の実施例のステップＳ７０１と動作に相違はない。
【００６７】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ９０１において数値であると区別した部分列については、その値が整数値であるか実数値であるかなどの数値の型と桁数を判定し、文字記号であると区別した部分列については、その文字記号を判定し、所定の判定結果を生成する。また、データ検査部１０５の判定部１０５ｂは、現在の時刻と保有データ組の中の最新のレコードの時刻情報とを比較し、この保有データ組に追加されるべき新しい時系列データのレコードの時刻情報がとるべき値の範囲を計算する（ステップＳ９０２、判定手順）。
【００６８】
具体的には、まず、各部分の桁数、最大値、最小値などの情報を判別する。その結果、既保有データの最新のレコードが図１０Ｃに示したとおりであり、現在時刻が２０１４年１２月３０日であったとする。この場合、この保有データ組に追加されるべき新しい時系列データのレコードの時刻情報がとるべき値とは、図１０Ｃに示したレコードの時刻情報から、２０１３年１１月より後であり、且つ、現在時刻である２０１３年１２月以前の値となる。このことから、この保有データ組に追加されるべき新しい時系列データのレコードの時刻情報がとるべき値とは、年は２０１３のみであり、月は１２のみである、と計算できる。
【００６９】
次に、データ検査部１０５の判定部１０５ｂは、先のステップＳ９０１で部分列に文字区別したデータの、最初（一番上）あるいは最後（一番下）のレコードの各部分列に対して、ステップＳ９０２で計算した時刻情報が取るべき値に一致しているか否かを判定する（ステップＳ９０３）。
【００７０】
具体的には、ステップＳ９０１の実行結果が図１０Ｂに示すとおりであった場合には、このステップＳ９０１の実行結果の最後のレコードの部分列には、２０１３と、一文字“／”と、１２と、−２．２という値が含まれている。また、ステップＳ９０２の実行結果の通り、年は２０１３のみであり、月は１２のみであると計算されていた場合には、この最後のレコードの２０１３と１２が、この計算結果と一致している。そのため、この２０１３という値を持つ部分列は年を、この１２という値を持つ部分列は月を意味しており、その間の一文字“／”の部分列は区切り文字であり、この３つの部分列から構成される値列は時刻情報を意味している、と判定し、図１０Ｄに示す判定結果を生成する。また、データ検査部１０５は、この判定結果をダウンロードしたデータに追加する。図１０Ｅに、データ検査部１０５がこの判定結果を図１０Ａに示したダウンロードデータに追加した結果の一例を示す。
【００７１】
本発明のデータ収集システムおよびプログラムの第３の実施例においても、前述したデータ収集システムおよびプログラムの第１の実施例とほぼ同様な効果が得られる。すなわち、テータ提供元から収集した時系列データの記述形式が変化した場合にも、過去に収集して蓄積しておいた既保有データ１０９のいずれかの記述形式を自動的に修正され、新たに収集したデータと過去に収集して蓄積しておいたデータとの整合性を常に保つことができる。
【００７２】
更に、ダウンロードした時系列データ１０８中の数値が現在時刻と既保有データ１０９中の最新時刻情報との範囲内にあるか否かを判別することによって、新規データの有無の判定処理を高速かつより正確に行うことができ、より正確に蓄積データを最新の状態に保つことに寄与することができる。
【００７３】
＜その他＞  
なお、本発明は上記の実施例に限られず、種々の変形、応用が可能なものである。上述の実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【００７４】
例えば、上述の実施例では、検査部１０５ｃでの整合性検査において不整合があったときに、既保有データの記述形式を新たにダウンロードした時系列データの記述形式に上書き更新することで既保有データ１０９の記述形式と新たにダウンロードされた時系列データの記述形式とを一致させる態様について説明したが、新たに取得した時系列データの記述形式を既保有データの記述形式に書き換えた上で既保有データに追加・上書き更新することで既保有データ１０９の記述形式と新たにダウンロードされた時系列データの記述形式とを一致させる態様とすることができる。
【００７５】
また、上述の実施例におけるデータ提供元１０２からダウンロードする時系列データ１０８は、時刻情報１つとデータ値１つから構成されている場合を励磁して説明したが、本発明のデータ収集システムおよびプログラムは、時刻情報１つと複数のデータ値、あるいは時系列データ２つ以上有している場合にも対応可能である。
【符号の説明】
【００７６】
１０１…データ収集システム、
１０２…データ提供元、
１０３…ネットワーク、
１０４…データクローラ、
１０５…データ検査部、
１０５ａ…解析部、
１０５ｂ…判定部、
１０５ｃ…検査部、
１０５ｄ…修正部、
１０５ｅ…追加部、
１０５ｆ…更新部、
１０６…既保有データベース、
１０７…データ提供元情報、
１０８…ダウンロードした時系列データ、
１０９…既保有データ、
１１０…新時系列データ。
【図１】
2016066251.tif 000003
【図２Ａ】
2016066251.tif 000004
【図２Ｂ】
2016066251.tif 000005
【図２Ｃ】
2016066251.tif 000006
【図３】
2016066251.tif 000007
【図４】
2016066251.tif 000008
【図５】
2016066251.tif 000009
【図６Ａ】
2016066251.tif 000010
【図６Ｂ】
2016066251.tif 000011
【図６Ｃ】
2016066251.tif 000012
【図６Ｄ】
2016066251.tif 000013
【図７】
2016066251.tif 000014
【図８Ａ】
2016066251.tif 000015
【図８Ｂ】
2016066251.tif 000016
【図８Ｃ】
2016066251.tif 000017
【図８Ｄ】
2016066251.tif 000018
【図８Ｅ】
2016066251.tif 000019
【図９】
2016066251.tif 000020
【図１０Ａ】
2016066251.tif 000021
【図１０Ｂ】
2016066251.tif 000022
【図１０Ｃ】
2016066251.tif 000023
【図１０Ｄ】
2016066251.tif 000024
【図１０Ｅ】
2016066251.tif 000025