(57)【要約】【課題】  保存先に繰り返しデータを保存する場合であっても、パーティションのスイッチを利用可能な情報処理装置、システム、方法及びプログラムを提供する。【解決手段】  一実施形態に係る情報処理装置は、外部からデータを受信する受信部と、前記データを一時的に保存し、第１パーティションを有する第１テーブルと、前記データを一定期間保存し、前記第１パーティションとスイッチ可能な第２パーティションを有する第２テーブルと、前記データの受信時において空であり、前記第１パーティションとスイッチ可能な第３パーティションを有する第３テーブルと、前記第１テーブル、前記第２テーブル及び前記第３テーブルを制御し、前記データを前記第２パーティションに保存する制御部と、を備える。【選択図】  図４
2018055303.tif 000002
【特許請求の範囲】
【請求項１】
外部からデータを受信する受信部と、
前記データを一時的に保存し、第１パーティションを有する第１テーブルと、
前記データを一定期間保存し、前記第１パーティションとスイッチ可能な第２パーティションを有する第２テーブルと、
前記データの受信時において空であり、前記第１パーティションとスイッチ可能な第３パーティションを有する第３テーブルと、
前記第１テーブル、前記第２テーブル及び前記第３テーブルを制御し、前記データを前記第２パーティションに保存する制御部と、
を備える情報処理装置。
【請求項２】
前記制御部は、前記受信部が前記データを受信すると、前記データを前記第１パーティションに保存し、前記第２パーティション及び前記第３パーティションをスイッチし、前記第１パーティション及び前記第２パーティションをスイッチする
請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記第１パーティション及び前記第２パーティションをスイッチした後、前記第１パーティション及び前記第３パーティションをスイッチする
請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、前記第１パーティション及び前記第３パーティションをスイッチした後、前記データを前記第１パーティションに再び保存する
請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、前記第１パーティション及び前記第２パーティションをスイッチした後、前記第３パーティションに保存されたデータを削除する
請求項２に記載の情報処理装置。
【請求項６】
前記制御部は、前記データを前記第１パーティションに保存する前に、前記第２パーティションに保存されたデータを、前記第１パーティションにコピーする
請求項５に記載の情報処理装置。
【請求項７】
前記第２テーブルは、外部装置からアクセスされ、前記第２パーティションに保存している前記データを前記外部装置に送信する
請求項１乃至請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第１パーティション、前記第２パーティション及び前記第３パーティションは、それぞれ対応するデータ範囲を割り当てられる
請求項１乃至請求項７のいずれか１項に記載の情報処理装置。
【請求項９】
前記制御部は、所定のデータ範囲に含まれない前記データを、前記第２パーティションに直接保存する
請求項１乃至請求項８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記制御部は、データ量が閾値より小さい前記データを、前記第２パーティションに直接保存する
請求項１乃至請求項９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記制御部は、前記第２パーティションのスイッチ中、前記外部装置からのアクセスに対する応答を待機する
請求項７に記載の情報処理装置。
【請求項１２】
外部からデータを受信する受信部と、
前記データを一時的に保存し、第１パーティションを有する第１テーブルと、
前記データを一定期間保存し、前記第１パーティションとスイッチ可能な第２パーティションを有する第２テーブルと、
前記データの受信時において空であり、前記第１パーティションとスイッチ可能な第３パーティションを有する第３テーブルと、
前記第１テーブル、前記第２テーブル及び前記第３テーブルを制御し、前記データを前記第２パーティションに保存する制御部と、
を備える情報処理システム。
【請求項１３】
データを一時的に保存し、第１パーティションを有する第１テーブルと、
前記データを一定期間保存し、前記第１パーティションとスイッチ可能な第２パーティションを有する第２テーブルと、
前記データの受信時において空であり、前記第１パーティションとスイッチ可能な第３パーティションを有する第３テーブルと、
を備える情報処理装置が実行する情報処理方法であって、
外部から前記データを受信する工程と、
前記データを前記第１パーティションに保存する工程と、
前記第２パーティション及び前記第３パーティションをスイッチする工程と、
前記第１パーティション及び前記第２パーティションをスイッチする工程と、
を含む情報処理方法。
【請求項１４】
データを一時的に保存し、第１パーティションを有する第１テーブルと、
前記データを一定期間保存し、前記第１パーティションとスイッチ可能な第２パーティションを有する第２テーブルと、
前記データの受信時において空であり、前記第１パーティションとスイッチ可能な第３パーティションを有する第３テーブルと、
を備えるコンピュータに、
外部から前記データを受信する工程と、
前記データを前記第１パーティションに保存する工程と、
前記第２パーティション及び前記第３パーティションをスイッチする工程と、
前記第１パーティション及び前記第２パーティションをスイッチする工程と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、システム、方法及びプログラムに関する。
【背景技術】
【０００２】
例えば販売管理システムのような比較的大きな規模のデータベースを備える情報処理システムでは、データベースのパフォーマンスや運用管理性を向上させることが求められる。これらを実現する技術の１つとして、データベースのテーブル全体を複数の部分（パーティション）に分割して管理する、データパーティショニングが知られている。
【０００３】
データパーティショニングを利用した情報処理システムでは、一般に、情報処理システムが収集したデータは、一時保存テーブルに一時的に保存され、一時保存テーブルから一時的な保存ではなく一定期間保存するための長期保存テーブルに保存される。長期保存テーブルに保存するデータが大量である場合、データの保存に時間がかかると共に、長期保存テーブルの負荷が高くなる、という問題がある。この問題を解消する方法として、パーティションのスイッチが知られている。
【０００４】
パーティションのスイッチによれば、一時保存テーブル及び長期保存テーブルの対応するパーティションのポインタを付け替えるだけで、２つのパーティションを入れ替えることができる。結果として、一時保存テーブルのパーティションに保存された大量のデータを、短時間で長期保存テーブルに一括して保存することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、パーティションのスイッチには、データの保存先となるパーティション（長期保存テーブルのパーティション）が空でなければならない、という技術上の制約がある。このため、保存先に繰り返しデータを保存する場合、パーティションのスイッチを利用することができない、という問題があった。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、保存先に繰り返しデータを保存する場合であっても、パーティションのスイッチを利用可能な情報処理装置、システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一実施形態に係る情報処理装置は、外部からデータを受信する受信部と、前記データを一時的に保存し、第１パーティションを有する第１テーブルと、前記データを一定期間保存し、前記第１パーティションとスイッチ可能な第２パーティションを有する第２テーブルと、前記データの受信時において空であり、前記第１パーティションとスイッチ可能な第３パーティションを有する第３テーブルと、前記第１テーブル、前記第２テーブル及び前記第３テーブルを制御し、前記データを前記第２パーティションに保存する制御部と、を備える。
【発明の効果】
【０００８】
本発明の各実施形態によれば、保存先に繰り返しデータを保存する場合であっても、パーティションのスイッチを利用することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムの構成の一例を示す図。
【図２】ＤＢサーバのハードウェア構成の一例を示す図。
【図３】ＤＢサーバの機能構成の一例を示す図。
【図４】第１実施形態におけるデータの保存処理の一例を示すフローチャート。
【図５】第１実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図６】第１実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図７】第２実施形態におけるデータの保存処理の一例を示すフローチャート。
【図８】第２実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図９】第２実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１０】第２実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１１】第２実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１２】第２実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１３】データＤに含まれるデータの割合の一例を示す図。
【図１４】第３実施形態におけるデータの保存処理の一例を示すフローチャート。
【図１５】第３実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１６】第３実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１７】第３実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１８】第３実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図１９】第３実施形態におけるデータ受信時における各テーブルの状態遷移を示す図。
【図２０】第４実施形態におけるアクセス制御の一例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
【００１１】
（第１実施形態）
第１実施形態に係る情報処理システムについて、図１〜図６を参照して説明する。本実施形態に係る情報処理システムは、販売管理システムなどの、大量のデータを収集及び管理する任意のシステムに適用可能である。具体的には、本実施形態に係る情報処理システムは、使用量のデータを送信可能な複数の通信装置から、使用量のデータを収集する任意のシステムに適用可能である。このような通信装置として、画像形成装置、プロジェクタ、電子黒板、テレビ会議装置、カメラ、通信機能を備えた産業用機器、医療機器、冷蔵庫、空調機器、照明機器などが挙げられる。以下では、情報処理システムを、画像形成装置の利用データを収集してユーザに提供する画像形成システムに適用した場合を例に説明する。
【００１２】
まず、情報処理システムの構成について説明する。図１は、本実施形態に係る情報処理システムの構成の一例を示す図である。図１の情報処理システムは、ＤＢ（データベース）サーバ１と、情報収集端末２ａ，２ｂと、画像形成装置３ａ〜３ｄと、ウェブサーバ４と、ユーザ端末５と、を備える。
【００１３】
ＤＢサーバ１、情報収集端末２ａ，２ｂ、ウェブサーバ４及びユーザ端末５は、ネットワークＮ１を介して接続されている。情報収集端末２ａ及び画像形成装置３ａ，３ｂは、ネットワークＮ２を介して接続されている。情報収集端末２ｂ及び画像形成装置３ｃ，３ｄは、ネットワークＮ３を介して接続されている。ネットワークＮ１〜Ｎ３は、それぞれインターネットであってもよいし、イントラネットであってもよいし、これらの組み合わせであってもよい。
【００１４】
ＤＢサーバ１は、情報処理装置の一例であり、ＤＢを備えるサーバコンピュータである。本実施形態において、情報処理装置は、ＤＢサーバ１と同様の機能を有する任意の装置（例えば、クライアントコンピュータなど）で有り得る。ＤＢサーバ１は、ネットワークＮ１を介して、情報収集端末２ａ，２ｂから画像形成装置３ａ〜３ｄのデータを受信し、受信したデータを管理する。
【００１５】
なお、ＤＢサーバ１は、情報処理システムに含まれる少なくとも一部の画像形成装置から、直接的にデータを受信してもよい。また、ＤＢサーバ１と情報収集端末２ａ，２ｂとの間には、ゲートウェイやルータなどの複数の装置が介在してもよい。また、本実施形態に係る情報処理装置は、ＤＢサーバ１に限られず、ＤＢを備える任意のコンピュータであり得る。
【００１６】
情報収集端末２ａは、ネットワークＮ２を介して、画像形成装置３ａ，３ｂからデータを収集し、収集したデータをＤＢサーバ１に送信する。情報収集端末２ａは、例えば、サーバコンピュータであるが、これに限られない。図１の例では、情報収集端末２ａは、２つの画像形成装置３ａ，３ｂからデータを収集しているが、１つ又は３つ以上の画像形成装置からデータを収集してもよい。
【００１７】
情報収集端末２ｂの構成は、情報収集端末２ａと同様であるため、説明を省略する。以下、情報収集端末２ａ，２ｂを区別しない場合、情報収集端末２という。なお、図１の例では、情報処理システムは２つの情報収集端末２ａ，２ｂを備えるが、１つ又は３つ以上の情報収集端末２を備えてもよい。
【００１８】
画像形成装置３ａは、ネットワークＮ２を介して、情報収集端末２ａにデータを送信する。画像形成装置３ａが送信するデータには、画像形成装置３ａによる印刷枚数、設定、ＩＰアドレス、装置の種類、利用日時及び利用者などのデータが含まれる。画像形成装置３ａは、複合機（ＭＦＰ：Multi-Functional Peripheral）、プリンタ、ファックス、スキャナ又はコピー機であるが、これに限られない。
【００１９】
画像形成装置３ｂ〜３ｄの構成は、画像形成装置３ａと同様であるため、説明を省略する。以下、画像形成装置３ａ〜３ｄを区別しない場合、画像形成装置３という。なお、図１の例では、各情報収集端末２には、２つの画像形成装置３が接続されているが、１つ又は３つ以上の画像形成装置３が接続されてもよい。また、画像形成装置３と情報収集端末２との間には、ゲートウェイやルータなどの複数の装置が介在してもよい。また、各画像形成装置は、同一の種類であってもよいし、異なる種類であってもよい。
【００２０】
ウェブサーバ４は、ユーザ端末５からの要求に応じて、ＤＢサーバ１に保存されたデータを取得し、取得したデータに応じた情報を表示するためのウェブページを生成し、生成したウェブページをユーザ端末５に提供するサーバコンピュータである。
【００２１】
ユーザ端末５は、情報処理システムのユーザが利用するクライアントコンピュータである。ユーザ端末５は、ウェブクライアントを有し、ウェブサーバ４が生成したウェブページを表示装置に表示する。情報処理システムのユーザは、ＤＢサーバ１に保存されたデータに応じた所望の情報（ユーザが使用している画像形成装置３の所定期間ごとの使用状況など）を、ユーザ端末５に表示させることができる。
【００２２】
なお、上述の通り、本実施形態に係る情報処理システムは、画像形成システムに限られない。例えば、情報処理システムは、複数のユーザ端末からの注文を管理する販売管理システムに適用されてもよいし、複数のセンサからのデータを管理するセンサシステムに適用されてもよい。
【００２３】
次に、ＤＢサーバ１のハードウェア構成について説明する。図２は、ＤＢサーバ１のハードウェア構成の一例を示す図である。図２のＤＢサーバ１は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（Hard Disk Drive）１０４と、入力装置１０５と、表示装置１０６と、通信インタフェース１０７と、バス１０８と、を備える。
【００２４】
ＣＰＵ１０１は、プログラムを実行することにより、ＤＢサーバ１の全体を制御し、ＤＢサーバ１の機能を実現させる。ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムを含む各種のデータを記憶する。ＲＡＭ１０３は、ＣＰＵ１０１に作業領域を提供する。ＨＤＤ１０４は、ＣＰＵ１０１が実行するプログラムを含む各種のデータを記憶する。ＨＤＤ１０４は、画像形成装置３から収集したデータを保存するためのＤＢを備える。
【００２５】
入力装置１０５は、ユーザからの操作に応じた情報をＤＢサーバ１に入力する。入力装置１０５は、マウス、キーボード、タッチパネル及びハードウェアボタンを含む。表示装置１０６は、ＤＢサーバ１が出力する各種の情報を表示する。表示装置１０６は、液晶ディスプレイ及び有機ＥＬディスプレイを含む。通信インタフェース１０７は、ＤＢサーバ１をネットワークＮ１に接続する。ＤＢサーバ１は、通信インタフェース１０７を介して、画像形成装置３のデータを受信する。バス１０８は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、入力装置１０５、表示装置１０６及び通信インタフェース１０７を接続する。
【００２６】
なお、情報収集端末２、ウェブサーバ４及びユーザ端末５のハードウェア構成は、ＤＢサーバ１と同様であるため説明を省略する。また、画像形成装置３は、図２のハードウェアに、画像形成装置３の機能に応じたハードウェア（プリンタ、ファックス及びスキャナなど）を追加することにより構成される。
【００２７】
次に、本実施形態に係るＤＢサーバ１の機能構成について説明する。図３は、本実施形態に係るＤＢサーバ１の機能構成の一例を示す図である。図３のＤＢサーバ１は、受信部１１と、制御部１２と、記憶部１３と、を備える。これらの各構成は、ＣＰＵ１０１がプログラムを実行することにより実現される。
【００２８】
受信部１１は、ＤＢサーバ１の外部からデータを受信する。図１の例では、受信部１１は、情報収集端末２を介して、複数の画像形成装置３からのデータを受信する。受信部１１は、所定の時間間隔でデータを受信してもよいし、所定の時刻にデータを受信してもよいし、情報収集端末２がデータを送信する任意のタイミングでデータを受信してもよい。
【００２９】
制御部１２は、記憶部１３を制御し、受信部１１が受信したデータを記憶部１３の長期保存テーブルＴ２に保存する。本実施形態では、制御部１２は、長期保存テーブルＴ２の同一のパーティションに、データを繰り返し保存することを想定している。制御部１２によるデータの保存方法について、詳しくは後述する。
【００３０】
記憶部１３は、受信部１１が受信したデータを保存する。記憶部１３は、受信部１１が受信したデータを、ユーザごとや画像形成装置３の機種ごとに保存するための、１つ又は複数のテーブルセットを備える。各テーブルセットには、一時保存テーブルＴ１（第１テーブル）と、長期保存テーブルＴ２（第２テーブル）と、空テーブルＴ３（第３テーブル）と、がそれぞれ含まれる。
【００３１】
一時保存テーブルＴ１は、受信部１１が受信したデータを一時的に保存する。一時保存テーブルＴ１によるデータの保存期間として、数秒から数日が想定される。一時保存テーブルＴ１は、データを長期保存テーブルＴ２に保存するためのバッファとしての役割を果たすテーブルであり、ウェブサーバ４などの外部装置からはアクセスされない。
【００３２】
一時保存テーブルＴ１は、同一構造を有する複数のパーティションＰ１（第１パーティション）に分割されている。各パーティションＰ１は、そこに保存されるデータ範囲（データの取得日時、受信日時及び取得元などの範囲）を予め割り当てられる。各パーティションＰ１には、そのパーティションＰ１に割り当てられたデータ範囲に含まれるデータが保存される。
【００３３】
長期保存テーブルＴ２は、受信部１１が受信したデータを、一定期間保存する。長期保存テーブルＴ２によるデータの保存期間は、一時保存テーブルＴ１より長期間であり、数日から数年が想定される。長期保存テーブルＴ２は、保存しているデータをウェブサーバ４などの外部装置に提供するためのテーブルである。長期保存テーブルＴ２は、外部装置からアクセスされると、外部装置からの要求に応じて、保存しているデータを外部装置に送信する。
【００３４】
長期保存テーブルＴ２は、同一構造を有する複数のパーティションＰ２（第２パーティション）に分割されている。各パーティションＰ２は、そこに保存されるデータ範囲（データの取得日時、受信日時及び取得元などの範囲）を予め割り当てられる。各パーティションＰ２には、そのパーティションＰ２に割り当てられたデータ範囲に含まれるデータが保存される。
【００３５】
また、パーティションＰ２は、同一のデータ範囲を割り当てられたパーティションＰ１と同一構造を有する。すなわち、データ範囲に対応するパーティションＰ２は、当該データ範囲に対応するパーティションＰ１と同一構造を有する。このように、パーティションＰ１が割り当てられたデータ範囲と、パーティションＰ２が割り当てられたデータ範囲と、が一致する場合、パーティションＰ１とパーティションＰ２とが対応すると表現する。
【００３６】
対応するパーティションＰ１及びパーティションＰ２は、上記の通り同一構造を有するために、パーティションのスイッチが可能である。パーティションＰ１Ｐ１及びパーティションＰ２をスイッチすると、パーティションＰ１及びパーティションＰ２が入れ替わる。この結果、スイッチ前のパーティションＰ１がスイッチ後のパーティションＰ２となり、スイッチ前のパーティションＰ２がスイッチ後のパーティションＰ１となる。
【００３７】
空テーブルＴ３は、長期保存テーブルＴ２にデータを保存する際に、長期保存テーブルＴ２に空のパーティションを提供するためのテーブルである。受信部１１によるデータ受信時を含むほとんどの期間、空であり、ウェブサーバ４などの外部装置からはアクセスされない。
【００３８】
空テーブルＴ３は、同一構造を有する複数のパーティションＰ３（第３パーティション）に分割されている。各パーティションＰ３は、そこに保存されるデータ範囲（データの取得日時、受信日時及び取得元などの範囲）を予め割り当てられる。各パーティションＰ３には、そのパーティションＰ３に割り当てられたデータ範囲に含まれるデータが保存される。
【００３９】
また、パーティションＰ３は、同一のデータ範囲を割り当てられたパーティションＰ１と同一構造を有する。すなわち、あるデータ範囲に対応するパーティションＰ３は、当該データ範囲に対応するパーティションＰ１と同一構造を有する。このように、パーティションＰ１が割り当てられたデータ範囲と、パーティションＰ３が割り当てられたデータ範囲と、が一致する場合、パーティションＰ１とパーティションＰ３とが対応すると表現する。
【００４０】
対応するパーティションＰ１及びパーティションＰ３は、上記の通り同一構造を有するために、パーティションのスイッチが可能である。パーティションＰ１及びパーティションＰ３をスイッチすると、パーティションＰ１及びパーティションＰ３が入れ替わる。この結果、スイッチ前のパーティションＰ１がスイッチ後のパーティションＰ３となり、スイッチ前のパーティションＰ３がスイッチ後のパーティションＰ１となる。
【００４１】
上述の通り、対応するパーティションＰ１及びパーティションＰ２は同一構造を有するため、対応する（同一のデータ範囲を割り当てられた）パーティションＰ２及びパーティションＰ３も同一構造を有する。したがって、対応するパーティションＰ２及びパーティションＰ３もスイッチ可能である。
【００４２】
次に、本実施形態におけるＤＢサーバ１の動作について説明する。図４は、データ受信時に実行されるデータの保存処理の一例を示すフローチャートである。情報収集端末２が画像形成装置３から収集したデータをＤＢサーバ１に送信し、ＤＢサーバ１の受信部１１がこのデータを受信すると、図４の動作が開始する。ここでは、受信部１１は、データＤを受信したものとする。また、上述の通り、空テーブルＴ３の各パーティションＰ３は、データＤの受信時において空である。
【００４３】
まず、制御部１２は、受信部１１が受信したデータＤを、当該データＤに対応するパーティションＰ１に保存する（ステップＳ１０１）。この際、制御部１２は、ＳＱＬにおける通常の方法（ＩＮＳＥＲＴ文やＭＥＲＧＥ文を利用する方法など）により、データをパーティションＰ１に保存する。
【００４４】
なお、データに対応するパーティションＰ１とは、当該データＤが含まれるデータ範囲を割り当てられたパーティションＰ１のことである。これは、パーティションＰ２及びパーティションＰ３についても同様である。データＤに対応する、パーティションＰ１、パーティションＰ２及びパーティションＰ３は、相互にスイッチ可能である。
【００４５】
次に、制御部１２は、データＤに対応するパーティションＰ２と、データＤに対応するパーティションＰ３と、をスイッチする（ステップＳ１０２）。このとき、パーティションＰ３は空であるため、パーティションＰ２，Ｐ３はスイッチ可能である。このスイッチにより、長期保存テーブルＴ２のパーティションＰ２が空になる。また、空テーブルＴ３のパーティションＰ３に、スイッチ前の長期保存テーブルＴ２のパーティションＰ２に保存されていたデータが保存される。
【００４６】
次に、制御部１２は、データＤに対応するパーティションＰ１と、データＤに対応するパーティションＰ２と、をスイッチする（ステップＳ１０３）。このとき、パーティションＰ２は空であるため、パーティションＰ１，Ｐ２はスイッチ可能である。このスイッチにより、一時保存テーブルＴ１のパーティションＰ１が空になる。また、長期保存テーブルＴ２のパーティションＰ２に、スイッチ前の一時保存テーブルＴ１のパーティションＰ１に保存されていたデータが保存される。このデータには、受信部１１が受信したデータＤが含まれる。
【００４７】
次に、制御部１２は、データＤに対応するパーティションＰ１と、データＤに対応するパーティションＰ３と、をスイッチする（ステップＳ１０４）。このとき、パーティションＰ１は空であるため、パーティションＰ１，Ｐ３はスイッチ可能である。このスイッチにより、空テーブルＴ３のパーティションＰ３が空に戻る。また、一時保存テーブルＴ１のパーティションＰ１に、スイッチ前の空テーブルＴ３のパーティションＰ３に保存されていたデータが保存される。このデータは、データＤの受信時に長期保存テーブルＴ２のパーティションＰ２に保存されていたデータに相当する。
【００４８】
その後、制御部１２は、受信部１１が受信したデータＤを、当該データＤに対応するパーティションＰ１に再び保存する（ステップＳ１０５）。この際、制御部１２は、ＳＱＬにおける通常の方法により、データをパーティションＰ１に保存する。これにより、一時保存テーブルＴ１のパーティションＰ１には、データＤの受信時に長期保存テーブルＴ２のパーティションＰ２に保存されていたデータと、受信部１１が受信したデータＤと、が保存される。
【００４９】
なお、ステップＳ１０４において、制御部１２は、パーティションＰ１，Ｐ３をスイッチする代わりに、パーティションＰ３に保存されたデータを削除し、データＤの保存処理を終了してもよい。この場合、制御部１２は、次のデータＤを受信した際、データＤに対応するパーティションＰ２に保存されたデータを、データＤに対応するパーティションＰ１にコピーした後、受信したデータＤをパーティションＰ１に通常の方法で保存すればよい。
【００５０】
次に、ＤＢサーバ１の動作について具体的に説明する。以下では、パーティションＰ１，Ｐ２，Ｐ３は、いずれもデータの取得日を割り当てられているものとする。また、ＤＢサーバ１は、１日に５回、データを受信し、長期保存テーブルＴ２に保存するものとする。ｎ回目に受信するデータを、データＲｎという。データＲｎは、例えば、画像形成装置３が設置された地域ごとに収集された、画像形成装置３のデータである。
【００５１】
図５及び図６は、データ受信時における一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３の状態遷移を示す図である。図５及び図６の例では、７月３０日から８月２日までのパーティションＰ１〜Ｐ３が示されている。図５（Ａ）は、８月１日に、取得日が８月１日のデータＲ２（２回目のデータＤ）を受信した際の、一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３の状態を示す図である。図５（Ａ）に示すように、データＲ１（１回目に受信したデータＤ）は、一時保存テーブルＴ１及び長期保存テーブルＴ２の８月１日のパーティションＰ１，Ｐ２にそれぞれ保存されている。
【００５２】
受信部１１が、８月１日のデータＲ２を受信すると、図５（Ｂ）に示すように、制御部１２は、データＲ２を８月１日のパーティションＰ１に保存する（ステップＳ１０１）。これにより、８月１日のパーティションＰ１には、データＲ１，Ｒ２が保存される。
【００５３】
次に、図５（Ｃ）に示すように、制御部１２は、８月１日のパーティションＰ２，Ｐ３をスイッチする（ステップＳ１０２）。これにより、８月１日のパーティションＰ２が空になり、８月１日のパーティションＰ３にデータＲ１が保存される。
【００５４】
次に、図６（Ａ）に示すように、制御部１２は、８月１日のパーティションＰ１，Ｐ２をスイッチする（ステップＳ１０３）。これにより、８月１日のパーティションＰ１が空になり、８月１日のパーティションＰ２にデータＲ１，Ｒ２が保存される。
【００５５】
次に、図６（Ｂ）に示すように、制御部１２は、８月１日のパーティションＰ１，Ｐ３をスイッチする（ステップＳ１０４）。これにより、８月１日のパーティションＰ１にデータＲ１が保存され、８月１日のパーティションＰ３が空になる。
【００５６】
その後、図６（Ｃ）に示すように、制御部１２は、データＲ２を８月１日のパーティションＰ１に再び保存する（ステップＳ１０５）。図６（Ｃ）からわかるように、以上の処理により、最終的に８月１日のパーティションＰ１，Ｐ２にデータＲ１，Ｒ２が保存され、８月１日のパーティションＰ３が空になる。
【００５７】
以降、制御部１２は、同様の処理により、データＲ３〜Ｒ５を長期保存テーブルＴ２に保存することができる。データＲ５の保存が終了すると、８月１日のパーティションＰ１，Ｐ２に、データＲ１〜Ｒ５が保存される。制御部１２は、データＲ５の保存が終了した後、８月１日のパーティションＰ１に保存されたデータＲ１〜Ｒ５を削除する。
【００５８】
以上説明した通り、本実施形態によれば、長期保存テーブルＴ２のパーティションＰ２（保存先）に、データを繰り返し保存する場合であっても、パーティションのスイッチを利用して、パーティションＰ２にデータを保存することができる。
【００５９】
従来の情報処理装置では、保存先に繰り返しデータを保存する場合、パーティションのスイッチを利用できなかったため、データは通常の方法で保存先に保存された。通常の方法によるデータの保存は、保存するデータ量が大きくなるほど時間がかかり、データ量によっては、数分を要することもあった。
【００６０】
これに対して、本実施形態では、長期保存テーブルＴ２のパーティションＰ２へのデータの保存は、パーティションＰ１，Ｐ２のスイッチにより行われる。一般に、パーティションのスイッチは、数秒以内に終了する。
【００６１】
このように、本実施形態によれば、従来の情報処理装置に比べて、保存先に繰り返しデータを保存する場合における、データの保存に要する時間を大幅に短縮することができる。これにより、長期保存テーブルＴ２の負荷を低減し、ウェブサーバ４などの外部装置への応答を早め、ユーザ端末５へのウェブページの表示速度を向上させることができる。
【００６２】
なお、本実施形態において、一時保存テーブルＴ１のパーティションＰ１にデータを保存する処理は、通常の方法で行われるため、数分を要することがあり得る。しかしながら、一時保存テーブルＴ１は、外部装置からのアクセスされないテーブルであるため、一時保存テーブルＴ１への保存速度や負荷が、外部装置への応答速度に与える影響は十分に小さい。したがって、一時保存テーブルＴ１のパーティションＰ１へのデータの保存に数分を要する場合であっても、長期保存テーブルＴ２の負荷を低減し、ウェブサーバ４などの外部装置への応答を早めることができる。結果として、ユーザ端末５へのウェブページの表示速度を向上させることができる。
【００６３】
また、本実施形態において、一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３が有するパーティションの数は、同一であってもよいし、異なってもよい。長期保存テーブルＴ２は、ウェブサーバ４に提供するデータ範囲に応じたパーティションＰ２を備えればよい。例えば、ウェブサーバ４に１年分のデータを提供する場合、長期保存テーブルＴ２は、１年分のパーティションＰ２を備えればよい。また、一時保存テーブルＴ１及び空テーブルＴ３は、少なくとも受信日のパーティションＰ１，Ｐ３を備えればよい。
【００６４】
また、パーティションＰ１〜Ｐ３の少なくとも１つは、パーティションの分割により予め用意されてもよいし、制御部１２により動的に生成されてもよい。例えば、制御部１２が、新たな受信日が到来する毎に、新たな受信日を割り当てられたパーティションＰ１〜Ｐ３の少なくとも１つを動的に生成することが考えられる。
【００６５】
また、以上の説明では、一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３は、いずれもＤＢサーバ１の同一のＨＤＤ１０４に設けられる場合を想定した。しかしながら、一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３は、それぞれ異なるＨＤＤに設けられてもよいし、それぞれ異なるＤＢサーバ１に設けられてもよい。この場合、本実施形態に係るＤＢサーバ１の機能が、複数のＤＢサーバからなるシステムにより実現される。
【００６６】
（第２実施形態）
第２実施形態に係る情報処理システムについて、図７〜図１３を参照して説明する。本実施形態では、受信部１１が受信したデータＤに、複数のデータ範囲のデータＤが含まれる場合の処理について説明する。なお、本実施形態における情報処理システムの構成及びＤＢサーバ１の構成は、第１実施形態と同様である。
【００６７】
本実施形態において、各パーティションＰ１〜Ｐ３には、データ範囲として、データの取得日時の範囲が割り当てられる。ここでは、取得日時の範囲として、取得日が割り当てられるものとする。この場合、受信部１１が受信したデータに、複数の取得日のデータが含まれることが考えられる。このような事態は、情報収集端末２や画像形成装置３の電源がＯＦＦであったり、情報収集端末２や画像形成装置３がネットワークＮ１〜Ｎ３に接続していなかったりした場合に生じ得る。
【００６８】
本実施形態において、制御部１２は、受信部１１が受信したデータに複数の取得日のデータが含まれる場合、各データをそれぞれ対応するパーティションに保存する。また、パーティションのスイッチによりデータを保存する取得日の範囲（以下、「スイッチ範囲」という）が予め設定される。
【００６９】
一般に、ある受信日に受信したデータには、その受信日が取得日であるデータが最も多く含まれるため、取得日が受信日であるデータは、パーティションのスイッチにより長期保存テーブルＴ２に保存するのが好ましい。このため、スイッチ範囲には、受信日が含まれるのが好ましい。スイッチ範囲は、例えば、受信日の前々日から受信日までであるが、これに限られない。
【００７０】
また、本実施形態において、制御部１２は、ある取得日を割り当てられたパーティションＰ１に保存されたデータを、その取得日がスイッチ範囲外となった時点で削除する。言い換えると、制御部１２は、スイッチ範囲内の取得日を割り当てられたパーティションＰ１に保存されたデータを削除しない。
【００７１】
ここで、本実施形態におけるＤＢサーバ１の動作について説明する。図７は、データ受信時に実行されるデータの保存処理の一例を示すフローチャートである。図７のフローチャートは、図４のフローチャートにステップＳ１０６〜Ｓ１１１を追加したものである。以下、ステップＳ１０６〜Ｓ１０９について説明する。
【００７２】
まず、制御部１２は、受信部１１が受信したデータＤの取得日の中から、１つの取得日ｄを選択する（ステップＳ１０６）。制御部１２は、取得日ｄをランダムに選択してもよいし、日付の昇順又は降順で選択してもよい。
【００７３】
次に、制御部１２は、選択した取得日ｄが、スイッチ範囲に含まれるか判定する（ステップＳ１０７）。取得日ｄがスイッチ範囲に含まれる場合（ステップＳ１０７のＹＥＳ）、制御部１２は、受信部１１が受信したデータＤの中から、選択した取得日ｄのデータを抽出する（ステップＳ１０８）。以降、制御部１２は、ステップＳ１０１〜Ｓ１０５の処理を実行する。すなわち、制御部１２は、抽出したデータを、パーティションのスイッチを利用して、対応するパーティションＰ２（取得日ｄを割り当てられたパーティションＰ２）に保存する。その後、処理はステップＳ１１１に進む。
【００７４】
一方、取得日ｄがスイッチ範囲に含まれない場合（ステップＳ１０７のＮＯ）、制御部１２は、受信部１１が受信したデータＤの中から、選択した取得日ｄのデータを抽出する（ステップＳ１０９）。そして、制御部１２は、抽出したデータを、通常の方法により、対応するパーティションＰ２（取得日ｄを割り当てられたパーティションＰ２）に直接保存する（ステップＳ１１０）。その後、処理はステップＳ１１１に進む。
【００７５】
ステップＳ１１１において、制御部１２は、受信部１１が受信した全てのデータＤの保存が終了したか判定する。全てのデータＤの保存が終了していない場合（ステップＳ１１１のＮＯ）、処理はステップＳ１０６に戻り、制御部１２は、次の取得日ｄを選択する。一方、全てのデータＤの保存が終了している場合（ステップＳ１１１のＹＥＳ）、データＤの保存処理が終了する。
【００７６】
次に、ＤＢサーバ１の動作について具体的に説明する。図８〜図１２は、データ受信時における一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３の状態遷移を示す図である。以下では、スイッチ範囲は、受信日の前日（７月３１日）から受信日（８月１日）までであるものとする。また、制御部１２は、取得日を日付の降順で選択するものとする。
【００７７】
図８（Ａ）は、８月１日に２回目にデータＤを受信した際の、一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３の状態を示す図である。データｒ１は、データＲ１の一部である。図８の例では、データＤには、取得日が８月１日のデータＲ１、取得日が７月３１日のデータｒ１及び取得日が７月３０日のデータｒ１が含まれている。
【００７８】
このとき、図８（Ａ）に示すように、一時テーブルＴ１の７月３０日のパーティションＰ１は空である。これは、７月３０日がスイッチ範囲外のためである。このように、スイッチ範囲外のパーティションＰ１に保存されたデータを削除することにより、一時保存テーブルＴ１のデータ量を削減することができる。また、７月３１日のパーティションＰ１には取得日が７月３１日のデータＲ１〜Ｒ５が保存され、８月１日のパーティションＰ１には取得日が８月１日のデータＲ１が保存されている。これは、７月３１日及び８月１日がスイッチ範囲内のためである。
【００７９】
また、長期保存テーブルＴ２の７月３０日，３１日のパーティションＰ２には取得日が７月３０日，３１日のデータＲ１〜Ｒ５が保存され、８月１日パーティションＰ２には取得日が８月１日のデータＲ１が保存されている。また、空テーブルＴ３の全てのパーティションＰ３は空である。
【００８０】
受信部１１が、８月１日の２回目のデータＤを受信すると、制御部１２は、データＤに含まれる各データの取得日（７月３０日、７月３１日及び８月１日）の中から８月１日（取得日ｄ）を選択する（ステップＳ１０６）。８月１日はスイッチ範囲に含まれるため（ステップＳ１０７のＹＥＳ）、図８（Ｂ）に示すように、制御部１２は、データＤの中から８月１日のデータＲ２を抽出し（ステップＳ１０８）、８月１日のパーティションＰ１に保存する（ステップＳ１０１）。
【００８１】
次に、図８（Ｃ）に示すように、制御部１２は、８月１日のパーティションＰ２，Ｐ３をスイッチする（ステップＳ１０２）。これにより、８月１日のパーティションＰ２が空になり、８月１日のパーティションＰ３にデータＲ１が保存される。
【００８２】
次に、図９（Ａ）に示すように、制御部１２は、８月１日のパーティションＰ１，Ｐ２をスイッチする（ステップＳ１０３）。これにより、８月１日のパーティションＰ１が空になり、８月１日のパーティションＰ２にデータＲ１，Ｒ２が保存される。
【００８３】
次に、図９（Ｂ）に示すように、制御部１２は、８月１日のパーティションＰ１，Ｐ３をスイッチする（ステップＳ１０４）。これにより、８月１日のパーティションＰ１にデータＲ１が保存され、８月１日のパーティションＰ３が空になる。
【００８４】
その後、図９（Ｃ）に示すように、制御部１２は、データＲ２を８月１日のパーティションＰ１に再び保存する（ステップＳ１０５）。図６（Ｃ）からわかるように、以上の処理により、最終的に８月１日のパーティションＰ１，Ｐ２にデータＲ１，Ｒ２が保存され、８月１日のパーティションＰ３が空になる。
【００８５】
この時点では、取得日が７月３１日のデータｒ１及び取得日が７月３０日のデータｒ１の保存が終了していない（ステップＳ１１１のＮＯ）。したがって、制御部１２は、未選択の取得日（７月３０日及び７月３１日）の中から７月３１日（取得日ｄ）を選択する（ステップＳ１０６）。７月３１日はスイッチ範囲に含まれるため（ステップＳ１０７のＹＥＳ）、図１０（Ａ）に示すように、制御部１２は、データＤの中から７月３１日のデータｒ１を抽出し（ステップＳ１０８）、７月３１日のパーティションＰ１に保存する（ステップＳ１０１）。
【００８６】
次に、図１０（Ｂ）に示すように、制御部１２は、７月３１日のパーティションＰ２，Ｐ３をスイッチする（ステップＳ１０２）。これにより、７月３１日のパーティションＰ２が空になり、７月３１日のパーティションＰ３にデータＲ１〜Ｒ５が保存される。
【００８７】
次に、図１１（Ａ）に示すように、制御部１２は、７月３１日のパーティションＰ１，Ｐ２をスイッチする（ステップＳ１０３）。これにより、７月３１日のパーティションＰ１が空になり、７月３１日のパーティションＰ２にデータＲ１〜Ｒ５，ｒ１が保存される。
【００８８】
次に、図１１（Ｂ）に示すように、制御部１２は、７月３１日のパーティションＰ１，Ｐ３をスイッチする（ステップＳ１０４）。これにより、７月３１日のパーティションＰ１にデータＲ１〜Ｒ５が保存され、７月３１日のパーティションＰ３が空になる。
【００８９】
その後、図１１（Ｃ）に示すように、制御部１２は、データｒ１を７月３１日のパーティションＰ１に再び保存する（ステップＳ１０５）。図１１（Ｃ）からわかるように、以上の処理により、最終的に７月３１日のパーティションＰ１，Ｐ２にデータＲ１〜Ｒ５，ｒ１が保存され、７月３１日のパーティションＰ３が空になる。
【００９０】
この時点では、取得日が７月３０日のデータｒ１の保存が終了していない（ステップＳ１１１のＮＯ）。したがって、制御部１２は、未選択の取得日（７月３０日）の中から７月３０日（取得日ｄ）を選択する（ステップＳ１０６）。７月３０日はスイッチ範囲に含まれないため（ステップＳ１０７のＮＯ）、図１２に示すように、制御部１２は、データＤの中から７月３０日のデータｒ１を抽出し（ステップＳ１０９）、７月３０日のパーティションＰ２に保存する（ステップＳ１１０）。これにより、７月３０日のパーティションＰ２にデータＲ１〜Ｒ５，ｒ１が保存される。
【００９１】
以降、制御部１２は、同様の処理により、３回目以降に受信したデータＤを長期保存テーブルＴ２に保存することができる。５回目のデータＤの保存が終了すると、制御部１２は、スイッチ範囲外となる７月３１日のパーティションＰ１に保存されたデータを削除する。
【００９２】
以上説明した通り、本実施形態によれば、スイッチ範囲に含まれるデータを、パーティションのスイッチを利用して、パーティションＰ２に保存することができる。したがって、受信部１１が受信したデータＤに、複数のデータ範囲（取得日時の範囲）のデータが含まれる場合であっても、第１実施形態と同様に、データの保存に要する時間を大幅に短縮することができる。これにより、長期保存テーブルＴ２の負荷を低減し、ウェブサーバ４などの外部装置への応答を早め、ユーザ端末５へのウェブページの表示速度を向上させることができる。
【００９３】
また、スイッチ範囲を、受信日を含む所定の範囲に設定することにより、データの保存に要する時間を短縮しつつ、一時保存テーブルＴ１のデータ量を削減することができる。理由は以下の通りである。
【００９４】
ここで、図１３は、受信部１１が受信するデータＤに含まれるデータの割合の一例を示す図である。図１３の例では、受信日は８月１日であり、データＤには、取得日が７月２８日〜８月１日までのデータが含まれている。取得日が７月２８日のデータの割合は１％、７月２９日のデータの割合は３％、７月３０日のデータの割合は２６％、７月３１日のデータの割合は３０％、８月１日のデータの割合は４０％である。
【００９５】
一般に、図１３の例のように、データＤに含まれる各取得日のデータの割合は、取得日が受信日に近いほど大きくなり、取得日が受信日から離れると急速に小さくなる。このため、取得日が受信日から離れたデータは、通常の方法で保存したとしても、保存に要する時間がわずかであることが想定される。言い換えると、取得日が受信日から離れたデータは、パーティションのスイッチによる保存時間の短縮の効果が相対的に小さくなる。
【００９６】
本実施形態では、上記のようにスイッチ範囲を設定することにより、取得日が受信日から離れたデータを、通常の方法で長期保存テーブルＴ２に直接保存し、スイッチ範囲外の取得日を割り当てられたパーティションＰ１を空にすることができる。この結果、保存時間の短縮の効果の低下を抑制しつつ、一時保存テーブルＴ１のデータ量を大幅に削減することができる。
【００９７】
（第３実施形態）
第３実施形態に係る情報処理システムについて、図１４〜図１９を参照して説明する。本実施形態では、受信部１１が受信したデータＤに、複数のデータ範囲のデータＤが含まれる場合の処理について説明する。第２実施形態では、パーティションのスイッチにより長期保存テーブルＴ２に保存するデータを、スイッチ範囲に基づいて判定した。これに対して、本実施形態では、パーティションのスイッチにより長期保存テーブルＴ２に保存するデータを、データ量に基づいて判定する。なお、本実施形態における情報処理システムの構成及びＤＢサーバ１の構成は、第１実施形態と同様である。以下、第２実施形態との相違点を中心に説明する。
【００９８】
本実施形態において、パーティションのスイッチによりデータを保存するデータ量の閾値Ｖｔｈが予め設定される。ここでいうデータ量は、バイト数であってもよいし、受信部１１が受信したデータＤに対する割合であってもよいし、レコード数であってもよいし、データＲｎの総データ量に対するデータｒｎの割合であってもよい。制御部１２は、ある取得日のデータのデータ量Ｖが閾値Ｖｔｈ以上である場合、そのデータをパーティションのスイッチにより長期保存テーブルＴ２に保存する。一方、制御部１２は、データ量Ｖが閾値Ｖｔｈより小さい場合、そのデータを通常の方法で長期保存テーブルＴ２に直接保存する。
【００９９】
また、本実施形態において、制御部１２は、ある取得日を割り当てられたパーティションＰ１に保存されたデータを、その取得日が受信日でなくなった時点で削除する。これは、第１実施形態と同様である。
【０１００】
ここで、本実施形態におけるＤＢサーバ１の動作について説明する。図１４は、データ受信時に実行されるデータの保存処理の一例を示すフローチャートである。図１４のフローチャートは、図４のフローチャートにステップＳ１１２〜Ｓ１２０を追加したものである。以下、ステップＳ１１２〜Ｓ１２０について説明する。
【０１０１】
まず、制御部１２は、受信部１１が受信したデータＤの取得日の中から、１つの取得日ｄを選択する（ステップＳ１１２）。制御部１２は、取得日ｄをランダムに選択してもよいし、日付の昇順又は降順で選択してもよい。
【０１０２】
次に、制御部１２は、選択した取得日ｄのデータのデータ量Ｖを算出する（ステップＳ１１３）。例えば、データ量Ｖがレコード数である場合、制御部１２は、データＤの中から取得日がｄであるレコードを数えればよい。
【０１０３】
次に、制御部１２は、算出したデータ量Ｖと、閾値Ｖｔｈと、を比較する（ステップＳ１１４）。データ量Ｖが閾値Ｖｔｈ以上である場合（ステップＳ１１４のＹＥＳ）、制御部１２は、取得日ｄが受信日であるか判定する（ステップＳ１１５）。これは、取得日ｄのパーティションＰ１に、受信済みのデータが保存されているかを判定することに相当する。
【０１０４】
取得日ｄが受信日でない場合（ステップＳ１１５のＮＯ）、取得日ｄのパーティションＰ１には受信済みのデータが保存されていないため、取得日ｄのパーティションＰ２に保存されたデータを、取得日ｄのパーティションＰ１にコピーする（ステップＳ１１６）。その後、処理はステップＳ１１７に進む。一方、取得日ｄが受信日である場合（ステップＳ１１５のＹＥＳ）、取得日ｄのパーティションＰ１には受信済みのデータが保存されているため、処理はステップＳ１１７に進む。
【０１０５】
ステップＳ１１７において、制御部１２は、受信部１１が受信したデータＤの中から、選択した取得日ｄのデータを抽出する。以降、制御部１２は、ステップＳ１０１〜Ｓ１０５の処理を実行する。すなわち、制御部１２は、抽出したデータを、パーティションのスイッチを利用して、対応するパーティションＰ２（取得日ｄを割り当てられたパーティションＰ２）に保存する。その後、処理はステップＳ１２０に進む。
【０１０６】
一方、データ量Ｖが閾値Ｖｔｈ未満である場合（ステップＳ１１４のＮＯ）、制御部１２は、受信部１１が受信したデータＤの中から、選択した取得日ｄのデータを抽出する（ステップＳ１１８）。そして、制御部１２は、抽出したデータを、通常の方法により、対応するパーティションＰ２（取得日ｄを割り当てられたパーティションＰ２）に直接保存する（ステップＳ１１９）。その後、処理はステップＳ１２０に進む。
【０１０７】
ステップＳ１２０において、制御部１２は、受信部１１が受信した全てのデータＤの保存が終了したか判定する。全てのデータＤの保存が終了していない場合（ステップＳ１２０のＮＯ）、処理はステップＳ１０６に戻り、制御部１２は、次の取得日ｄを選択する。一方、全てのデータＤの保存が終了している場合（ステップＳ１２０のＹＥＳ）、データＤの保存処理が終了する。
【０１０８】
次に、ＤＢサーバ１の動作について具体的に説明する。図１５〜図１９は、データ受信時における一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３の状態遷移を示す図である。以下では、制御部１２は、取得日を日付の降順で選択するものとする。
【０１０９】
図１５（Ａ）は、８月１日に２回目にデータＤを受信した際の、一時保存テーブルＴ１、長期保存テーブルＴ２及び空テーブルＴ３の状態を示す図である。データｒ１は、データＲ１の一部である。図１５の例では、データＤには、取得日が８月１日のデータＲ１、取得日が７月３１日のデータｒ１及び取得日が７月３０日のデータｒ１が含まれている。取得日が８月１日のデータＲ１及び取得日が７月３１日のデータｒ１のデータ量Ｖは、閾値Ｖｔｈ以上であり、取得日が７月３０日のデータｒ１のデータ量Ｖは、閾値Ｖｔｈ未満であるものとする。
【０１１０】
このとき、図１５（Ａ）に示すように、一時テーブルＴ１の７月３０日及び７月３１日のパーティションＰ１は空である。これは、７月３０日及び７月３１日が受信日ではないためである。このように、受信日以外のパーティションＰ１に保存されたデータを削除することにより、一時保存テーブルＴ１のデータ量を削減することができる。また、８月１日のパーティションＰ１には取得日が８月１日のデータＲ１が保存されている。これは、８月１日が受信日のためである。
【０１１１】
また、長期保存テーブルＴ２の７月３０日，３１日のパーティションＰ２には取得日が７月３０日，３１日のデータＲ１〜Ｒ５が保存され、８月１日パーティションＰ２には取得日が８月１日のデータＲ１が保存されている。また、空テーブルＴ３の全てのパーティションＰ３は空である。
【０１１２】
受信部１１が、８月１日の２回目のデータＤを受信すると、制御部１２は、データＤに含まれる各データの取得日（７月３０日、７月３１日及び８月１日）の中から８月１日（取得日ｄ）を選択する（ステップＳ１１２）。そして、制御部１２は、８月１日のデータＲ２のデータ量Ｖを算出し（ステップ１１３）、閾値Ｖｔｈと比較する（ステップＳ１１４）。
【０１１３】
８月１日のデータＲ２のデータ量Ｖは閾値Ｖｔｈ以上であるため（ステップＳ１１４のＹＥＳ）、制御部１２は、８月１日（取得日ｄ）が受信日であるか判定する（ステップＳ１１５）。８月１日は受信日であるため（ステップＳ１１５のＹＥＳ）、図１５（Ｂ）に示すように、制御部１２は、データＤの中から８月１日のデータＲ２を抽出し（ステップＳ１１７）、８月１日のパーティションＰ１に保存する（ステップＳ１０１）。
【０１１４】
次に、図１５（Ｃ）に示すように、制御部１２は、８月１日のパーティションＰ２，Ｐ３をスイッチする（ステップＳ１０２）。これにより、８月１日のパーティションＰ２が空になり、８月１日のパーティションＰ３にデータＲ１が保存される。
【０１１５】
次に、図１６（Ａ）に示すように、制御部１２は、８月１日のパーティションＰ１，Ｐ２をスイッチする（ステップＳ１０３）。これにより、８月１日のパーティションＰ１が空になり、８月１日のパーティションＰ２にデータＲ１，Ｒ２が保存される。
【０１１６】
次に、図１６（Ｂ）に示すように、制御部１２は、８月１日のパーティションＰ１，Ｐ３をスイッチする（ステップＳ１０４）。これにより、８月１日のパーティションＰ１にデータＲ１が保存され、８月１日のパーティションＰ３が空になる。
【０１１７】
その後、図１６（Ｃ）に示すように、制御部１２は、データＲ２を８月１日のパーティションＰ１に再び保存する（ステップＳ１０５）。図６（Ｃ）からわかるように、以上の処理により、最終的に８月１日のパーティションＰ１，Ｐ２にデータＲ１，Ｒ２が保存され、８月１日のパーティションＰ３が空になる。
【０１１８】
この時点では、取得日が７月３１日のデータｒ１及び取得日が７月３０日のデータｒ１の保存が終了していない（ステップＳ１２０のＮＯ）。したがって、制御部１２は、未選択の取得日（７月３０日及び７月３１日）の中から７月３１日（取得日ｄ）を選択する（ステップＳ１１２）。そして、制御部１２は、７月３１日のデータｒ１のデータ量Ｖを算出し（ステップ１１３）、閾値Ｖｔｈと比較する（ステップＳ１１４）。
【０１１９】
７月３１日のデータｒ１のデータ量Ｖは閾値Ｖｔｈ以上であるため（ステップＳ１１４のＹＥＳ）、制御部１２は、７月３１日（取得日ｄ）が受信日であるか判定する（ステップＳ１１５）。７月３１日は受信日ではないため（ステップＳ１１５のＮＯ）、図１７（Ａ）に示すように、制御部１２は、７月３１日のパーティションＰ２に保存されたデータＲ１〜Ｒ５を７月３１日のパーティションＰ１にコピーする（ステップＳ１１６）。これにより、７月３１日のパーティションＰ１に、受信済みのデータＲ１〜Ｒ５が保存される。
【０１２０】
次に、図１７（Ｂ）に示すように、制御部１２は、データＤの中から７月３１日のデータｒ１を抽出し（ステップＳ１１７）、７月３１日のパーティションＰ１に保存する（ステップＳ１０１）。これにより、７月３１日のパーティションＰ１に、データＲ１〜Ｒ５，ｒ１が保存される。
【０１２１】
次に、図１７（Ｃ）に示すように、制御部１２は、７月３１日のパーティションＰ２，Ｐ３をスイッチする（ステップＳ１０２）。これにより、７月３１日のパーティションＰ２が空になり、７月３１日のパーティションＰ３にデータＲ１〜Ｒ５が保存される。
【０１２２】
次に、図１８（Ａ）に示すように、制御部１２は、７月３１日のパーティションＰ１，Ｐ２をスイッチする（ステップＳ１０３）。これにより、７月３１日のパーティションＰ１が空になり、７月３１日のパーティションＰ２にデータＲ１〜Ｒ５，ｒ１が保存される。
【０１２３】
次に、図１８（Ｂ）に示すように、制御部１２は、７月３１日のパーティションＰ１，Ｐ３をスイッチする（ステップＳ１０４）。これにより、７月３１日のパーティションＰ１にデータＲ１〜Ｒ５が保存され、７月３１日のパーティションＰ３が空になる。
【０１２４】
その後、図１８（Ｃ）に示すように、制御部１２は、７月３１日のデータｒ１を７月３１日のパーティションＰ１に再び保存する（ステップＳ１０５）。図１８（Ｃ）からわかるように、以上の処理により、最終的に７月３１日のパーティションＰ１，Ｐ２にデータＲ１〜Ｒ５，ｒ１が保存され、７月３１日のパーティションＰ３が空になる。なお、本実施形態において、制御部１２は、７月３１日のデータｒ１を７月３１日のパーティションＰ１に保存せずに、７月３１日のパーティションＰ１に保存されたデータＲ１〜Ｒ５を削除してもよい。
【０１２５】
この時点では、取得日が７月３０日のデータｒ１の保存が終了していない（ステップＳ１２０のＮＯ）。したがって、制御部１２は、未選択の取得日（７月３０日）の中から７月３０日（取得日ｄ）を選択する（ステップＳ１１２）。そして、制御部１２は、７月３０日のデータｒ１のデータ量Ｖを算出し（ステップ１１３）、閾値Ｖｔｈと比較する（ステップＳ１１４）。
【０１２６】
７月３０日のデータｒ１のデータ量Ｖは閾値Ｖｔｈ未満である（ステップＳ１１４のＮＯ）。したがって、図１９に示すように、制御部１２は、データＤの中から７月３０日のデータｒ１を抽出し（ステップＳ１１８）、７月３０日のパーティションＰ２に保存する（ステップＳ１１９）。これにより、７月３０日のパーティションＰ２にデータＲ１〜Ｒ５，ｒ１が保存される。
【０１２７】
以降、制御部１２は、同様の処理により、３回目以降に受信したデータＤを長期保存テーブルＴ２に保存することができる。５回目のデータＤの保存が終了すると、制御部１２は、スイッチ範囲外となる８月１日以前のパーティションＰ１に保存されたデータを削除する。
【０１２８】
以上説明した通り、本実施形態によれば、データ量Ｖが閾値Ｖｔｈ以上のデータを、パーティションのスイッチを利用して、パーティションＰ２に保存することができる。したがって、受信部１１が受信したデータＤに、複数のデータ範囲（取得日時の範囲）のデータが含まれる場合であっても、第１実施形態と同様に、データの保存に要する時間を大幅に短縮することができる。これにより、長期保存テーブルＴ２の負荷を低減し、ウェブサーバ４などの外部装置への応答を早め、ユーザ端末５へのウェブページの表示速度を向上させることができる。
【０１２９】
また、本実施形態によれば、受信日以外を割り当てられたパーティションＰ１を空にできるため、一時保存テーブルＴ１のデータ量を削減することができる。
【０１３０】
なお、本実施形態に係る保存方法と、第２実施形態に係る保存方法と、は併用されてもよい。例えば、データ量Ｖに基づく判定を、スイッチ範囲に含まれるデータに対して行うことが考えられる。
【０１３１】
（第４実施形態）
第４実施形態に係る情報処理システムについて、図２０を参照して説明する。本実施形態では、パーティションＰ２をスイッチする際に制御部１２が実行する、長期保存テーブルＴ２へのアクセス制御について説明する。なお、本実施形態における情報処理システムの構成及びＤＢサーバ１の構成は、第１実施形態と同様である。
【０１３２】
ＤＢサーバ１は、ウェブサーバ４などの外部装置に常に最新のデータを提供できるのが好ましい。しかしながら、パーティションＰ２のスイッチ中に外部装置から長期保存テーブルＴ２がアクセスされた場合、外部装置にはスイッチ前のパーティションＰ２に保存されたデータが送信される。そこで、本実施形態では、パーティションＰ２のスイッチ中に長期保存テーブルＴ２が外部装置からアクセスされた場合であっても、最新のデータを外部装置に提供できるように、制御部１２はアクセス制御を実行する。
【０１３３】
図２０は、制御部１２が実行するアクセス制御の一例を示すフローチャートである。このアクセス制御は、パーティションＰ２のスイッチ中（例えば、上述のステップＳ１０２，Ｓ１０３の実行中）に実行される。
【０１３４】
制御部１２は、パーティションＰ２と、対応するパーティションＰ１，Ｐ３と、のスイッチの実行を開始すると（ステップＳ２０１）、ウェブサーバ４などの外部装置からのアクセスへの応答を所定時間だけ待機する（ステップＳ２０２）。すなわち、制御部１２は、パーティションＰ２のスイッチ後に外部装置からアクセスされた場合、当該アクセスに対する応答を所定時間だけ待機する。所定時間は、例えば、０．２秒であるが、これに限られない。
【０１３５】
所定時間が経過すると、制御部１２は、パーティションＰ２のスイッチが終了したか判定する（ステップＳ２０３）。パーティションＰ２のスイッチが終了していない場合（ステップＳ２０３のＮＯ）、処理はステップＳ２０２に戻り、制御部１２は、再び外部装置からのアクセスへの応答を所定時間だけ待機する。
【０１３６】
一方、パーティションＰ２のスイッチが終了している場合（ステップＳ２０３のＹＥＳ）、制御部１２は、外部装置からのアクセスへの応答を再開する（ステップＳ２０４）。制御部１２は、応答を待機しているアクセスがある場合、当該アクセスに対して応答する。
【０１３７】
以上説明したアクセス制御により、パーティションＰ２のスイッチ中に長期保存テーブルＴ２が外部装置からアクセスされた場合、当該アクセスに対する応答が待機され、スイッチ後の長期保存テーブルＴ２に保存されたデータが外部装置に送信される。したがって、ＤＢサーバ１は、外部装置に常に最新のデータを提供することができる。
【０１３８】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１３９】
１：ＤＢサーバ
２：情報収集端末
３：画像形成装置
４：ウェブサーバ
５：ユーザ端末
１１：受信部
１２：制御部
１３：記憶部
【先行技術文献】
【特許文献】
【０１４０】
【特許文献１】特開２０１２−１５０５４７号公報
【図１】
2018055303.tif 000003
【図２】
2018055303.tif 000004
【図３】
2018055303.tif 000005
【図４】
2018055303.tif 000006
【図５】
2018055303.tif 000007
【図６】
2018055303.tif 000008
【図７】
2018055303.tif 000009
【図８】
2018055303.tif 000010
【図９】
2018055303.tif 000011
【図１０】
2018055303.tif 000012
【図１１】
2018055303.tif 000013
【図１２】
2018055303.tif 000014
【図１３】
2018055303.tif 000015
【図１４】
2018055303.tif 000016
【図１５】
2018055303.tif 000017
【図１６】
2018055303.tif 000018
【図１７】
2018055303.tif 000019
【図１８】
2018055303.tif 000020
【図１９】
2018055303.tif 000021
【図２０】
2018055303.tif 000022