(57)【特許請求の範囲】
【請求項１】
所定のサーバから送信される書込みアクセス及び読出しアクセスを収集し、アクセス対象データの情報及びアクセス種類ごとのスケーラビリティの低い第１のデータベース及びスケーラビリティの高い第２のデータベースへのアクセス回数を所定時間ごとに記憶部に記憶するアクセス収集部と、
前記アクセス収集部により収集された所定時間ごとのアクセス回数に所定のパターンが存在するか否かを判断し、前記パターンが存在する場合に、前記所定時間ごとのアクセス回数をアクセスパターンとして記憶部に記憶するアクセス分析部と、
前記アクセス分析部により分析された前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定するデータ保存先決定部と、
前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する移行スケジュール決定部と、
を備えることを特徴とするデータベース移行管理装置。
【請求項２】
前記サーバで実行されるアプリケーションプログラムの所定のデータ単位であるエンティティの関連性を分析し、関連のあるエンティティ同士の集合であるエンティティ群の情報を記憶部に記憶するデータ構造分析部
を備え、
前記データ保存先決定部は、
前記エンティティ群の一部を更新した場合に当該エンティティ群の関連するエンティティの全ての更新に遅延が生じる場合であって、かつ、前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定し、
前記移行スケジュール決定部は、
前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する
ことを特徴とする請求項１に記載のデータベース移行管理装置。
【請求項３】
前記データ構造分析部は、
前記エンティティ群を第三正規化し、第三正規化した前記エンティティ群にテーブルの数が２つ以上存在する場合に前記エンティティ群の各エンティティに対する処理プログラムを解読し、前記エンティティ群の各エンティティに書込み処理が存在する場合に前記エンティティ群の情報を記憶し、
前記データ保存先決定部は、
前記エンティティ群の情報が記憶されていない場合に、該当するアクセス対象データを前記第２のデータベースに配置するように決定する
ことを特徴とする請求項２に記載のデータベース移行管理装置。
【請求項４】
前記データ保存先決定部は、
前記エンティティ群の一部を更新した場合に当該エンティティ群の関連するエンティティの全ての更新が遅延することなく完了する場合に、該当するアクセス対象データを前記第２のデータベースに配置するように決定する
ことを特徴とする請求項２に記載のデータベース移行管理装置。
【請求項５】
前記アクセス分析部は、
前記所定時間ごとの前記アクセス回数をグラフ化して当該グラフの極値を検出すると共に、各極値及び当該極値周辺の分散を算出して、所定の時間ごと、所定の日ごと、所定の曜日ごと又は所定の月ごとに関連する前記極値が出現しており、かつ、前記極値周辺の分散誤差が所定範囲内であり、前記極値周辺以外の時間帯において前記所定時間ごとのアクセス回数の平均値が所定しきい値以下である場合に、前記アクセスパターンを記憶する
ことを特徴とする請求項１に記載のデータベース移行管理装置。
【請求項６】
前記データ保存先決定部は、
前記エンティティ群の一部を更新した場合に当該エンティティ群の関連するエンティティの全ての更新に遅延が生じる場合であって、かつ、前記アクセスパターンが存在しない場合に、該当するアクセス対象データを前記第１のデータベースに配置するように決定する
ことを特徴とする請求項２に記載のデータベース移行管理装置。
【請求項７】
前記データ保存先決定部は、
利用者により決定された前記第１のデータベースの冗長度及びハードウェア処理に関する情報を取得し、
前記エンティティ群の一部を更新した場合に影響が及ぶ前記エンティティの数及び前記第１のデータベースの冗長度及びハードウェア処理に関する情報に基づいて、前記エンティティ群の関連するエンティティが全て更新されるために必要とする時間を算出すると共に、前記エンティティ群の同一のエンティティに対するアクセス回数のうちの単位時間当たりの最大アクセス回数を算出し、
前記エンティティ群の関連するエンティティが全て更新されるために必要とする時間と前記最大アクセス回数とを乗じた値が１以上の場合であって、かつ、前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定し、
前記移行スケジュール決定部は、
前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する
ことを特徴とする請求項２に記載のデータベース移行管理装置。
【請求項８】
アクセス収集部が、所定のサーバから送信される書込みアクセス及び読出しアクセスを収集し、アクセス対象データの情報及びアクセス種類ごとのスケーラビリティの低い第１のデータベース及びスケーラビリティの高い第２のデータベースへのアクセス回数を所定時間ごとに記憶部に記憶する第１のステップと、
アクセス分析部が、前記第１のステップにおいて収集した所定時間ごとのアクセス回数に所定のパターンが存在するか否かを判断し、前記パターンが存在する場合に、前記所定時間ごとのアクセス回数をアクセスパターンとして記憶部に記憶する第２のステップと、
データ保存先決定部が、前記第２のステップにおいて分析した前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定する第３のステップと、
移行スケジュール決定部が、前記第３のステップにおいて前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する移行スケジュール決定部と、
を備えることを特徴とするデータベース移行管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース移行管理装置及びその方法に関する。
【背景技術】
【０００２】
従来、異種のデータベースを自動的に検索し、複雑なネットワーク間でも、効率的にアクセス対象のデータのやりとりを行う管理装置が広く知られている。
【０００３】
このような管理装置として、例えば、特許文献１の異種データベース統合管理システム装置が開示されている。特許文献１の異種データベース統合管理システム装置では、検索するデータに関連したキーワードを入力すると、該キーワード入力手段により入力された前記キーワードに関連するデータを保存した異種データベース間の関連情報と前記異種データベースへのインタフェースを定義したデータ関連定義ファイルをもとに、ネットワーク上に分散している異種データベースからキーワードに関連するデータを検索し、データ抽出部により抽出したデータを統合する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−０２５１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、クラウド向けのリレーショナルデータベース管理システム（Relational database management system :RDBMS）として、リレーショナルデータベース（Relational database :RDB）及びキー・バリューストア（Key-value store :KVS）を共通のインタフェースにより提供する技術が台頭してきている。
【０００６】
データベースのうち、現在最も広く利用されているリレーショナルデータベースは、厳密なトランザクション機能を備えており、更新処理と読み出し処理を高性能に行うことができる。そのため、アクセス対象のデータの一貫性、整合性を保証する必要のある業務アプリケーションには、リレーショナルデータベースの利用が適している。しかしながら、一方で、リレーショナルデータベースにより大量のアクセス、大量のアクセス対象のデータを処理する場合、ハードウェア（Hardware :HW）コストが高くなることや、リレーショナルデータベースの構造上スケーラビリティが低いという問題がある。
【０００７】
また、キー・バリューストアは、ハードウェアコストが低く、スケーラビリティを高めやすいことから、クラウド環境でのデータベースとして、近年、使用の増加が見込まれている。しかしながら、スケーラブルにアクセス対象のデータを分散配置した場合、リレーショナルデータベースと同等の更新時排他処理を実現するには、多大な時間を要するという問題がある。
【０００８】
データセンタなどにおいて利用時間及び利用機器に応じて課金されるサービス提供形態では、クラウドサービス提供事業者にとっては、ハードウェアの利用効率を上げることによって、ハードウェア関連のコストを下げることが課題となっており、サービス利用者にとっては、サービス利用にかかるコストを下げることが課題となっている。
【０００９】
従来は、システム構築時にデータベースモデルを決定すると、その後、データベースモデルを変更することはなかった。そのため、厳密なトランザクション機能を必要とする更新処理が、ある一定期間に集中している業務アプリケーションであっても、リレーショナルデータベースを採用しており、更新処理が少ない期間であっても高価なハードウェアを動作させ続けるため、無駄なコストが生じていた。
【００１０】
キー・バリューストアを利用する場合、ハードウェア資源はリレーショナルデータベースを利用する場合に比べてより多く必要になるが、安価なハードウェアを利用することが可能となる。従って、リレーショナルデータベースを利用する必要のないアクセス対象のデータをリレーショナルデータベースに格納する従来の使用方法は、ハードウェア資源を有効活用したいサービス提供者にとっても、利用料を安くしたいサービス利用者にとってもマイナスとなるという問題がある。
【００１１】
本発明は以上の点を考慮してなされたものであり、事業者及び利用者双方の利便性を向上させ得るデータベース移行管理装置及びその方法を提案するものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するために本発明は、所定のサーバから送信される書込みアクセス及び読出しアクセスを収集し、アクセス対象データの情報及びアクセス種類ごとのスケーラビリティの低い第１のデータベース及びスケーラビリティの高い第２のデータベースへのアクセス回数を所定時間ごとに記憶部に記憶するアクセス収集部と、前記アクセス収集部により収集された所定時間ごとのアクセス回数に所定のパターンが存在するか否かを判断し、前記パターンが存在する場合に、前記所定時間ごとのアクセス回数をアクセスパターンとして記憶部に記憶するアクセス分析部と、前記アクセス分析部により分析された前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定するデータ保存先決定部と、前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する移行スケジュール決定部と、を備えることを特徴とする。
【００１３】
また、本発明は、アクセス収集部が、所定のサーバから送信される書込みアクセス及び読出しアクセスを収集し、アクセス対象データの情報及びアクセス種類ごとのスケーラビリティの低い第１のデータベース及びスケーラビリティの高い第２のデータベースへのアクセス回数を所定時間ごとに記憶部に記憶する第１のステップと、アクセス分析部が、前記第１のステップにおいて収集した所定時間ごとのアクセス回数に所定のパターンが存在するか否かを判断し、前記パターンが存在する場合に、前記所定時間ごとのアクセス回数をアクセスパターンとして記憶部に記憶する第２のステップと、データ保存先決定部が、前記第２のステップにおいて分析した前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定する第３のステップと、移行スケジュール決定部が、前記第３のステップにおいて前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する第４のステップと、を備えることを特徴とする。
【００１４】
従って、データ構造が単純なアプリケーションだけでなく、整合性を維持する必要のあるアプリケーションであっても、動作する時期をパターン化することができるシステムに対しては、堅牢な処理を実現しつつも、安価でスケーラビリティの高い運用を実現することができる。また、高性能・高価なハードウェアだけでなく安価なハードウェアも共存させることにより、提供者及び利用者が、それぞれ運用コスト、利用コストを削減することができる。
【発明の効果】
【００１５】
本発明によれば、事業者及び利用者双方の利便性を向上させ得るデータベース移行管理装置及びその方法を実現することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態のデータベース移行管理システムの構成を示すブロック図の一例である。
【図２】データベース移行管理装置のハードウェア構成を示すブロック図の一例である。
【図３】データベース移行管理装置の機能的構成を示すブロック図の一例である。
【図４】データベース移行管理装置の全体の流れを示すフローチャートの一例である。
【図５】データ構造分析処理手順を示すフローチャートの一例である。
【図６】アクセス分析処理手順を示すフローチャートの一例である。
【図７】データベースアクセスパターンの説明に供する概念図の一例である。
【図８】データ保存先決定処理手順を示すフローチャートの一例である。
【図９】データベース移行処理手順を示すフローチャートの一例である。
【図１０】データベース移行処理手順を示すフローチャートの一例である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。なお、これにより本発明が限定されるものではない。
【００１８】
（構成）
図１は、本実施形態のデータベース（ＤＢ）移行管理システム１の構成を例示する図である。データベース移行管理システム１は、クラウド業務アプリケーションサーバ２、アプリケーション取得装置３、データベース（ＤＢ）移行管理装置４、リレーショナルデータベース（ＲＤＢ）５、キー・バリューストア（ＫＶＳ）６及び契約変更支援装置７を含んで構成されている。
【００１９】
ＤＢ移行管理装置４は、クラウド業務アプリケーションサーバ２と、ＲＤＢ５及びＫＶＳ６との間に設置されている。
【００２０】
具体的に、クラウド業務アプリケーションサーバ２は、アプリケーション取得装置３と接続されている。また、クラウド業務アプリケーションサーバ２は、既存の共通インタフェース８を介してＤＢ移行管理装置４と接続されている。アプリケーション取得装置３は、ＤＢ移行管理装置４と接続されている。ＤＢ移行管理装置４は、既存の共通インタフェース９を介してＲＤＢ５及びＫＶＳ６と接続されている。また、ＤＢ移行管理装置４は、契約変更支援装置７と接続されている。
【００２１】
クラウド業務アプリケーションサーバ２は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵにバス結合されたＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、記憶部、入力部、表示部及び入出力インタフェース等、通常のコンピュータ装置と同様のハードウェア（図示せず）を含んで構成されている。クラウド業務アプリケーションサーバ２は、種々のクラウド業務アプリケーションを実行する。
【００２２】
アプリケーション取得装置３は、例えば、ＣＰＵ、ＣＰＵにバス結合されたＲＯＭ、ＲＡＭ、記憶部、入力部、表示部及び入出力インタフェース等、通常のコンピュータ装置と同様のハードウェア（図示せず）を含んで構成されている。アプリケーション取得装置３は、クラウド業務アプリケーションサーバ２に格納されているクラウド業務アプリケーションプログラムをＤＢ移行管理装置４に送信する。
【００２３】
ＤＢ移行管理装置４は、クラウド業務アプリケーションを解析したデータ構造及び読出しアクセス及び書込みアクセスのアクセスパターンを一定期間記憶しておき、例えば、日や曜日ごとなどの特定の期間の読出しアクセス及び書込みアクセスのアクセスパターンの差異に基づいて、ＲＤＢ５及びＫＶＳ６間のアクセス対象データの移行を管理する。ＤＢ移行管理装置４のハードウェア構成及び機能的構成については、後述する。
【００２４】
ＲＤＢ５及びＫＶＳ６は、種々のクラウド業務アプリケーションに利用されるアクセス対象データを関連づけたデータベースを作成し、当該アクセス対象データ及び関連性に関する情報を格納する。
【００２５】
契約変更支援装置７は、例えば、日や曜日ごとなどの特定の期間の読出しアクセスと書込みアクセスとの差異に基づいて運用形態に変更する場合の利用料金などを含めた契約内容を、クラウド業務アプリケーションの利用者に提示し、運用形態を変更する場合には、その旨をＤＢ移行管理装置４に通知する。
【００２６】
図２は、ＤＢ移行管理装置４のハードウェア構成を例示する図である。ＤＢ移行管理装置４は、例えば、ＣＰＵ１１、ＣＰＵ１１にバス結合されたＲＯＭ１２、ＲＡＭ１３、記憶部１４、入力部１５、表示部１６及び入出力インタフェース１７など、通常のコンピュータ装置と同様のハードウェアを備えている。ここで、例えば、記憶部１４は、ＨＤＤ（Hard Disk Drive）などの外部記憶装置である。
【００２７】
ＤＢ移行管理装置４は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであっても良い。例えば、一般的な構成の情報処理装置において、本発明のＤＢ移行管理装置４における各処理は、規定した処理を行うアプリケーションプログラムを呼び出すことによって実現することもできる。
【００２８】
図３は、ＤＢ移行管理装置４の機能的構成を例示する図である。ＤＢ移行管理装置４は、機能的に、少なくとも、データ構造分析部２１、データベース（ＤＢ）アクセス受付部２２、データベース（ＤＢ）アクセス収集部２３、データベース（ＤＢ）アクセス分析部２４、ＫＶＳ要件設定部２５、データ保存先データベース（ＤＢ）決定部２６、データベース（ＤＢ）移行指令部２７、データベース（ＤＢ）移行スケジュール決定部２８及びデータベース（ＤＢ）移行部２９を備えている。データ構造分析部２１〜ＤＢ移行部２９は、主にＣＰＵ１１がＲＯＭ１２やＲＡＭ１３格納されるプログラムを呼び出して、各ハードウェアを制御することによって実現することができる。
【００２９】
また、ＤＢ移行管理装置４は、機能的に、データ構造記憶部３０、データベース（ＤＢ）アクセスパターン蓄積部３１、移行内容記憶部３２及び移行時データ一時記憶部３３を備えている。データ構造記憶部３０〜移行時データ一時記憶部３３は、例えば、ＲＡＭ１３や記憶部１４を用いて構成される。
【００３０】
データ構造分析部２１は、アプリケーション取得装置３から受信したクラウド業務アプリケーションプログラムを分析し、分析した結果であるデータ同士の関連性に関する情報等のデータ構造情報をデータ構造記憶部３０に記憶する。
【００３１】
ＤＢアクセス受付部２２は、クラウド業務アプリケーションサーバ２からアクセス対象データの書込みアクセス及び読出しアクセスを受信し、データ構造記憶部３０に記憶されたデータ構造情報に関する書込みアクセス及び読出しアクセスをＤＢアクセス収集部２３に送信する。
【００３２】
ＤＢアクセス収集部２３は、ＤＢアクセス受付部２２から受信した書込みアクセス及び読出しアクセスを、アクセス対象データの情報、アクセスの種類(書込み又は読出し)等によって分類する。また、ＤＢアクセス収集部２３は、分類したアクセス対象データの情報、アクセス種類ごとの１秒あたりのアクセス回数をカウントし、カウントしたアクセス対象データ情報、アクセス種類ごとの１秒あたりのアクセス回数（以下、単にアクセス回数と呼ぶ）を、書込みアクセス及び読出しアクセスと共に、１秒ごとに、ＤＢアクセスパターン蓄積部３１に蓄積する。
【００３３】
ＤＢアクセス分析部２４は、アクセスパターン蓄積部３１から取得したアクセス回数について、時系列に整理、グラフ化してパターン解析を行い、データベース（ＤＢ）アクセスパターン４１（後述）を作成し、ＤＢアクセスパターン蓄積部３１に蓄積する。また、ＤＢアクセス分析部２４は、アクセス収集開始から所定の時間が経過すると、時間ごとのパターン解析を開始し、所定の日、所定の週、所定の月が経過すると、日ごと、曜日ごと、月ごとのパターン解析及び特定の期間でのパターン解析を行い、ＤＢアクセスパターン４１（後述）を作成する。なお、ＤＢアクセス分析部２４は、ＫＶＳ６に配置されるアクセス対象データの書込みアクセス及び読出しアクセスについては、パターン解析を行わない。
【００３４】
ＫＶＳ要件設定部２５は、サービス利用者の決定に基づいて、ＫＶＳの冗長度やＫＶＳのハードウェア処理に関する情報等のキー・バリューストア（ＫＶＳ）要件情報を設定する。
【００３５】
データ保存先ＤＢ決定部２６は、データ構造記憶部３０から取得したデータ構造情報、ＤＢアクセスパターン蓄積部３１から取得したＤＢアクセスパターン４１（後述）及びＫＶＳ要件設定部２５により設定されたＫＶＳ要件情報等に基づいて、データベースのアクセス対象データをＲＤＢ５に配置するのか、ＫＶＳ６に配置するのか決定する。データ保存先ＤＢ決定部２６は、決定したアクセス対象データの配置先の内容をデータ配置先情報として移行内容記憶部３２に記憶する。
【００３６】
ＤＢ移行スケジュール決定部２７は、特定の期間の読出しアクセスと書込みアクセスとの差異が所定以上である場合に、データベースのアクセス対象データ移行のタイミングを決定し、移行スケジュール情報として移行内容記憶部３２に記憶する。ＤＢ移行指令部２８は、契約変更支援装置７から運用形態を変更する旨通知されると、移行スケジュール情報に従って、ＤＢ移行部２９にデータベース移行指示を送信する。ＤＢ移行部２９は、ＤＢ移行指令部２８からのデータベース移行指示に従ってデータベースのアクセス対象データを移行すると共に、アクセス対象データ移行中の更新要求を移行時データ一時記憶部３３に記憶する。
【００３７】
（全体の流れ）
次に、本実施形態のＤＢ移行管理装置４の動作について詳細に説明する。図４は、本実施形態のＤＢ移行管理装置４の全体の流れを示すフローチャートである。
【００３８】
本実施形態では、２種類のデータベース（ＲＤＢ５及びＫＶＳ６）が複数台用意されているデータセンタにおいて、ハードウェアの種類や利用時間、蓄積データ量に応じて課金される業務形態が採用されている場合に利用することを想定する。また、サービス利用者があらかじめ指定するデータ取得期間ｍは、パターンが現れると推定される期間の３倍以上とする。また、サービス利用者があらかじめ決定するＫＶＳ６の冗長度に依存した、データ更新が完了するまでに必要な時間をｔ秒とする。
【００３９】
データ構造分析部２１は、アプリケーション取得装置３から受信したクラウド業務アプリケーションプログラムを解析し、解析した結果であるデータ同士の関連性に関する情報等のデータ構造情報をデータ構造記憶部３０に記憶する（ステップＳＰ１）。
【００４０】
続いて、ＤＢアクセス受付部２２は、クラウド業務アプリケーションサーバ２からアクセス対象データの書込みアクセス及び読出しアクセスを受信し、データ構造記憶部３０に記憶されたデータ構造情報に関する書込みアクセス及び読出しアクセスをＤＢアクセス収集部２３に送信する（ステップＳＰ２）。
【００４１】
続いて、ＤＢアクセス収集部２３は、ＤＢアクセス受付部２２から受信した書込みアクセス及び読出しアクセスを分類・カウントし、分類・カウントしたアクセス回数を、書込みアクセス及び読出しアクセスと共に、アクセスパターン蓄積部３１に蓄積する（ステップＳＰ３）。
【００４２】
続いて、ＤＢアクセス分析部２４は、アクセスパターン蓄積部３１からアクセス回数を取得し、所定の期間ごとに時系列に整理、グラフ化してＤＢアクセスパターン４１（後述）を作成して、ＤＢアクセスパターン蓄積部３１に蓄積する（ステップＳＰ４）。
【００４３】
続いて、データ保存先ＤＢ決定部２６は、データ構造情報、ＤＢアクセスパターン４１（後述）及びＫＶＳ要件情報等を取得して、データベースのアクセス対象データをＲＤＢ５に配置するのか、ＫＶＳ６に配置するのか決定する（ステップＳＰ５）。
【００４４】
続いて、ＤＢ移行スケジュール決定部２７は、特定の期間の読出しアクセスと書込みアクセスとの差異が所定以上である場合に、データベースのアクセス対象データ移行のタイミングを決定し、移行スケジュール情報として移行内容記憶部３２に記憶する（ステップＳＰ６）。
【００４５】
（データ構造分析処理）
図５は、本実施形態のＤＢ移行管理装置４のデータ構造分析処理を示すフローチャートである。
【００４６】
データ構造分析部２１は、ＤＢ移行管理装置４の電源がオンになると、図５に示すデータ構造分析処理手順ＲＴ１を開始して、アプリケーション取得装置３からクラウド業務アプリケーションプログラムを受信するのを待機モードで待ち受ける（ステップＳＰ１１）。
【００４７】
やがて、データ構造分析部２１は、アプリケーション取得装置３からクラウド業務アプリケーションプログラムを受信すると（ステップＳＰ１１：ＹＥＳ）、受信したクラウド業務アプリケーションプログラムから、所定のデータ単位であるエンティティ間の全ての関連性を分析して、第三正規化まで行う（ステップＳＰ１２）。なお、関連のあるエンティティ同士の集合を以後、エンティティ群（データ構造情報）と呼ぶ。
【００４８】
続いて、データ構造分析部２１は、第三正規化したエンティティ群にテーブルの数が２つ以上存在するか否かをチェックする（ステップＳＰ１３）。そして、データ構造分析部２１は、エンティティ群にテーブルの数が２つ以上存在しない場合（ステップＳＰ１３：ＮＯ）、すなわち、エンティティ群にテーブルの数が１つしか存在しない場合には、エンティティ群のアクセス対象データ保存先をＫＶＳ６に決定し（ステップＳＰ１６）、その後、図５に示すデータ構造分析処理手順ＲＴ１を終了する（ステップＳＰ１８）。
【００４９】
これに対して、データ構造分析部２１は、エンティティ群にテーブルの数が２つ以上存在する場合には（ステップＳＰ１３：ＹＥＳ）、エンティティ群の各エンティティに対する処理プログラムを解読する（ステップＳＰ１４）。
【００５０】
続いて、データ構造分析部２１は、エンティティ群の各エンティティに書込み処理が存在するか否かをチェックする（ステップＳＰ１５）。そして、データ構造分析部２１は、エンティティ群の各エンティティに書込み処理が存在しない場合には（ステップＳＰ１５：ＮＯ）、エンティティ群のアクセス対象データ保存先をＫＶＳ６に決定し（ステップＳＰ１６）、その後、図５に示すデータ構造分析処理手順ＲＴ１を終了する（ステップＳＰ１８）。
【００５１】
これに対して、データ構造分析部２１は、エンティティ群の各エンティティに書込み処理が存在する場合には（ステップＳＰ１５：ＹＥＳ）、エンティティ群をデータ構造記憶部３０に記憶し（ステップＳＰ１７）、その後、図５に示すデータ構造分析処理手順ＲＴ１を終了する（ステップＳＰ１８）。
【００５２】
（アクセス分析処理）
図６は、本実施形態のＤＢ移行管理装置４のアクセス分析処理を示すフローチャートである。
【００５３】
ＤＢアクセス分析部２４は、データ構造記憶部３０に記憶されたエンティティ群に関する書込みアクセス及び読出しアクセスの受信が開始されてから所定の時間（例えば、データ取得期間ｍの２／３）を経過すると、図６に示すアクセス分析処理手順ＲＴ２を開始して、アクセスパターン蓄積部３１からエンティティ群の各エンティティの１秒ごとのアクセス回数を取得する（ステップＳＰ２１）。
【００５４】
続いて、ＤＢアクセス分析部２４は、当該エンティティ群の各エンティティのアクセス回数について、アクセス種類別に横軸を時間、縦軸をアクセス回数とするグラフを作成してグラフの山を検出し、各山の頂点（極値）及び分散を算出する（ステップＳＰ２２）。
【００５５】
続いて、ＤＢアクセス分析部２４は、グラフの山の頂点が出現する箇所が時間、日、曜日、月、休日などに関連しているか否かをチェックする。すなわち、ＤＢアクセス分析部２４は、所定の時間ごと、所定の日ごと、所定の曜日ごと、所定の月ごと等に、グラフの山が定期的に出現しているか否かをチェックする（ステップＳＰ２３）。そして、ＤＢアクセス分析部２４は、グラフの山が定期的に出現していない場合には（ステップＳＰ２３：ＮＯ）、アクセスパターンが存在しないと判断し（ステップＳＰ２７）、その後、図６に示すアクセス分析処理手順ＲＴ２を終了する（ステップＳＰ２８）。
【００５６】
そして、ＤＢアクセス分析部２４は、グラフの山が定期的に出現している場合には（ステップＳＰ２３：ＹＥＳ）、グラフの山の分散誤差が所定範囲内（例えば、１０％以内）であるか否かをチェックする（ステップＳＰ２４）。そして、ＤＢアクセス分析部２４は、グラフの山の分散誤差が所定範囲内でない場合には（ステップＳＰ２４：ＮＯ）、アクセスパターンが存在しないと判断し（ステップＳＰ２７）、その後、図６に示すアクセス分析処理手順ＲＴ２を終了する（ステップＳＰ２８）。
【００５７】
これに対して、ＤＢアクセス分析部２４は、グラフの山の分散誤差が所定範囲内である場合には（ステップＳＰ２４：ＹＥＳ）、グラフの山以外の時間帯において、アクセス回数の平均値が所定しきい値以下であるか否かをチェックする（ステップＳＰ２５）。そして、ＤＢアクセス分析部２４は、グラフの山以外の時間帯において、アクセス回数の平均値が所定しきい値以下でない場合には（ステップＳＰ２５：ＮＯ）、アクセスパターンが存在しないと判断し（ステップＳＰ２７）、その後、図６に示すアクセス分析処理手順ＲＴ２を終了する（ステップＳＰ２８）。
【００５８】
これに対して、ＤＢアクセス分析部２４は、グラフの山以外の時間帯において、アクセス回数の平均値が所定しきい値以下（後述）である場合には（ステップＳＰ２５：ＮＯ）、アクセスパターンが存在すると判断し、当該グラフをＤＢアクセスパターン４１（後述）としてＤＢアクセスパターン蓄積部３１に蓄積して（ステップＳＰ２６）、その後、図６に示すアクセス分析処理手順ＲＴ２を終了する（ステップＳＰ２８）。
【００５９】
図７は、ＤＢアクセスパターン４１の一例を示した図である。ＤＢアクセスパターン４１の横軸は時間、縦軸はアクセス回数である。
【００６０】
ＤＢアクセス分析部２４は、例えば、エンティティ群の１日分のアクセスがＤＢアクセスパターン蓄積部３１に蓄積されると、ＤＢアクセスパターン蓄積部３１からエンティティ群の１日分のアクセス回数を取得し、時間ごとのアクセスパターン分析を開始する。
【００６１】
また、ＤＢアクセス分析部２４は、例えば、エンティティ群の１週間分のアクセスがＤＢアクセスパターン蓄積部３１に蓄積されると、ＤＢアクセスパターン蓄積部３１からエンティティ群の１週間分のアクセス回数を取得し、日ごとのアクセスパターン分析を開始する。
【００６２】
さらに、ＤＢアクセス分析部２４は、例えば、エンティティ群の１ヶ月分のアクセスがＤＢアクセスパターン蓄積部３１に蓄積されると、ＤＢアクセスパターン蓄積部３１からエンティティ群の１ヶ月分のアクセス回数を取得し、曜日ごとのアクセスパターン分析を開始する。
【００６３】
さらに、ＤＢアクセス分析部２４は、例えば、エンティティ群の３ヶ月分のアクセスがＤＢアクセスパターン蓄積部３１に蓄積されると、ＤＢアクセスパターン蓄積部３１からエンティティ群の３ヶ月分のアクセス回数を取得し、月ごとのアクセスパターン分析及び特定期間のアクセスパターン分析を開始する。
【００６４】
（データ保存先決定処理）
図８は、本実施形態のＤＢ移行管理装置４のデータ保存先決定処理を示すフローチャートである。
【００６５】
データ保存先ＤＢ決定部２６は、データ構造記憶部３０に記憶されたエンティティ群に関する書込みアクセス及び読出しアクセスの受信が開始されてから所定の時間（例えば、データ取得期間ｍの２／３）を経過すると、図８に示すデータ保存先決定処理手順ＲＴ３を開始して、データ構造記憶部３０に記憶されたエンティティ群、ＤＢアクセスパターン蓄積部３１に蓄積されたエンティティ群の各エンティティのアクセス回数及びＫＶＳ要件設定部２５からＫＶＳ要件情報を取得する（ステップＳＰ３１）。
【００６６】
続いて、データ保存先ＤＢ決定部２６は、取得したエンティティ群の関係から、１つのエンティティを変更した場合に影響が及ぶエンティティの数を算出し、さらに、ＫＶＳ要件情報から、他のエンティティとの関連が最も多いエンティティに対して更新処理が行われた場合、ＫＶＳ６内のエンティティ群の関連するエンティティが全て更新されるために必要とする時間Ｔ（秒）を算出する（ステップＳＰ３２）。
【００６７】
続いて、データ保存先ＤＢ決定部２６は、取得したエンティティ群の同一のエンティティに対するアクセス回数のうちの単位時間当たりの最大アクセス回数Ｎを算出する（ステップＳＰ３３）。
【００６８】
続いて、データ保存先ＤＢ決定部２６は、取得したエンティティ群の関連するエンティティの全ての更新を遅延することなく完了することができるか否かをチェックする（ステップＳＰ３４）。そして、データ保存先ＤＢ決定部２６は、取得したエンティティ群の関連するエンティティの全ての更新を遅延することなく完了することができる場合には（ステップＳＰ３４：ＹＥＳ）、当該エンティティ群のアクセス対象データ保存先をＫＶＳ６に決定する（ステップＳＰ３５）。
【００６９】
具体的に、データ保存先ＤＢ決定部２６は、取得したエンティティ群の関連するエンティティが全て更新されるために必要とする時間Ｔ（秒）と取得したエンティティ群の単位時間当たりの最大アクセス回数Ｎとを乗じた値が１より小さい場合に、当該エンティティ群の関連するエンティティの全ての更新を遅延することなく完了することができると判断する（Ｔ×Ｎ＜１）。また、データ保存先ＤＢ決定部２６は、ＤＢアクセス収集部２３に対して、取得したエンティティ群の関連するエンティティの全ての書込みアクセス及び読出しアクセスの蓄積を中止する。
【００７０】
これに対して、データ保存先ＤＢ決定部２６は、取得したエンティティ群の関連するエンティティの全ての更新を遅延することなく完了することができない場合（ステップＳＰ３４：ＮＯ）、すなわち、取得したエンティティ群のエンティティの更新に遅延が生じる場合には、当該エンティティ群のアクセス対象データ保存先を一旦ＲＤＢ５に決定する（ステップＳＰ３６）。
【００７１】
続いて、データ保存先ＤＢ決定部２６は、ＤＢアクセスパターン蓄積部３１に、取得したエンティティ群のＤＢアクセスパターン４１が存在するか否かをチェックする（ステップＳＰ３７）。そして、データ保存先ＤＢ決定部２６は、ＤＢアクセスパターン蓄積部３１に、取得したエンティティ群のＤＢアクセスパターン４１が存在する場合には（ステップＳＰ３７：ＹＥＳ）、取得したエンティティ群のアクセス対象データ保存先をＲＤＢ５及びＫＶＳ６に決定し（ステップＳＰ３８）、その後、図８に示すデータ保存先決定処理手順ＲＴ３を終了する（ステップＳＰ４０）。
【００７２】
これに対して、データ保存先ＤＢ決定部２６は、ＤＢアクセスパターン蓄積部３１に、取得したエンティティ群のＤＢアクセスパターン４１が存在しない場合には（ステップＳＰ３７：ＮＯ）、取得したエンティティ群のアクセス対象データ保存先をＲＤＢ５に決定し（ステップＳＰ３９）、その後、図８に示すデータ保存先決定処理手順ＲＴ３を終了する（ステップＳＰ４０）。
【００７３】
そして、ＤＢ移行スケジュール決定部２７は、データ保存先ＤＢ決定部２６が取得したエンティティ群のアクセス対象データ保存先をＲＤＢ５及びＫＶＳ６に決定した場合には、書込みアクセスが多い期間を判別し、判別した期間に対応する期間の直前で当該エンティティ群のアクセス対象データのＲＤＢ５への移行が完了するように移行スケジュール情報を決定すると共に、読出しアクセスが多い期間を判別し、判別した期間に対応する期間の直前で当該エンティティ群のアクセス対象データのＫＶＳ６への移行が完了するように移行スケジュール情報を決定する。
【００７４】
（データベース移行処理）
図９及び図１０は、本実施形態のＤＢ移行管理装置４のデータベース移行処理を示すフローチャートである。
【００７５】
契約変更支援装置７には、予めデータセンタのデータベース利用に関する課金情報が設定されており、契約変更支援装置７は、移行スケジュール情報の結果と照らし合わせて年間のデータベース利用金額を算出することができる。また、契約変更支援装置７は、年間のデータベース利用金額の結果をクラウド業務アプリケーションのサービス利用者に送信することができる。クラウド業務アプリケーションのサービス利用者がデータベース移行型の運用に承諾した場合、契約変更支援装置７は、契約内容の変更を行う。
【００７６】
ＤＢ移行管理装置４は、契約内容の変更によって、ＤＢ移行スケジュール決定部２７のデータベース移行機能がオンに変更し、ＤＢ移行指令部２８もオンに変更する。ＤＢ移行指令部２７は、ＤＢ移行スケジュール決定部２７の移行スケジュール情報と現在日時とを比較し、アクセス対象データ移行を開始する時点でＤＢ移行部２９にデータベース移行指示を送信する。
【００７７】
ＤＢ移行部２９は、データベース移行指示がＲＤＢ５からＫＶＳ６へのデータベース移行指示である場合に、図９に示すデータベース移行処理手順ＲＴ４を開始して、ＲＤＢ５をリードオンリーアクセスに変更する（ステップＳＰ４１）。続いて、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行を開始する（ステップＳＰ４２）。
【００７８】
続いて、ＤＢ移行部２９は、ＤＢアクセス受付部２２から該当するエンティティ群への書込みアクセス情報を取得して、該当するエンティティ群への書込みアクセスを受信したか否かをチェックする（ステップＳＰ４３）。そして、ＤＢ移行部２９は、該当するエンティティ群への書込みアクセスを受信していない場合には（ステップＳＰ４３：ＮＯ）、ステップＳＰ４５に進む。
【００７９】
これに対して、ＤＢ移行部２９は、該当するエンティティ群への書込みアクセスを受信した場合には（ステップＳＰ４３：ＹＥＳ）、該当するエンティティ群への書込みアクセスのアクセス対象データを移行時データ一時記憶部３３に記憶する（ステップＳＰ４４）。
【００８０】
続いて、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行が完了したか否かをチェックする（ステップＳＰ４５）。そして、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行が完了していない場合には（ステップＳＰ４５：ＮＯ）、ステップＳＰ４３に戻り、再び、該当するエンティティ群への書込みアクセスを受信したか否かをチェックする。
【００８１】
これに対して、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行が完了した場合には（ステップＳＰ４５：ＹＥＳ）、移行時データ一時記憶部３３に記憶した書込みアクセスのアクセス対象データをＫＶＳ６の該当するエンティティ群に反映する（ステップＳＰ４６）。
【００８２】
続いて、ＤＢ移行部２９は、移行したエンティティ群をＲＤＢ５から消去する（ステップＳＰ４７）。続いて、ＤＢ移行部２９は、ＲＤＢ５のリードオンリーアクセスを解除し、ＫＶＳ６に移行したエンティティ群のアクセス対象データの読書きを開始し（ステップＳＰ４８）、その後、図９に示すデータベース移行処理手順ＲＴ４を終了する（ステップＳＰ４９）。
【００８３】
一方、ＤＢ移行部２９は、データベース移行指示がＫＶＳ６からＲＤＢ５へのデータベース移行指示である場合に、図１０に示すデータベース移行処理手順ＲＴ５を開始して、ＫＶＳ６をリードオンリーアクセスに変更する（ステップＳＰ５１）。続いて、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行を開始する（ステップＳＰ５２）。
【００８４】
続いて、ＤＢ移行部２９は、ＤＢアクセス受付部２２から該当するエンティティ群への書込みアクセス情報を取得して、該当するエンティティ群への書込みアクセスを受信したか否かをチェックする（ステップＳＰ５３）。そして、ＤＢ移行部２９は、該当するエンティティ群への書込みアクセスを受信していない場合には（ステップＳＰ５３：ＮＯ）、ステップＳＰ５５に進む。
【００８５】
これに対して、ＤＢ移行部２９は、該当するエンティティ群への書込みアクセスを受信した場合には（ステップＳＰ５３：ＹＥＳ）、該当するエンティティ群への書込みアクセスのアクセス対象データを移行時データ一時記憶部３３に記憶する（ステップＳＰ５４）。
【００８６】
続いて、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行が完了したか否かをチェックする（ステップＳＰ５５）。そして、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行が完了していない場合には（ステップＳＰ５５：ＮＯ）、ステップＳＰ５３に戻り、再び、該当するエンティティ群への書込みアクセスを受信したか否かをチェックする。
【００８７】
これに対して、ＤＢ移行部２９は、該当するエンティティ群のアクセス対象データ移行が完了した場合には（ステップＳＰ５５：ＹＥＳ）、移行時データ一時記憶部３３に記憶した書込みアクセスのアクセス対象データをＲＤＢ５の該当するエンティティ群に反映する（ステップＳＰ５６）。
【００８８】
続いて、ＤＢ移行部２９は、移行したエンティティ群をＫＶＳ６から消去する（ステップＳＰ５７）。続いて、ＤＢ移行部２９は、ＫＶＳ６のリードオンリーアクセスを解除し、ＲＤＢ５に移行したエンティティ群のアクセス対象データの読書きを開始し（ステップＳＰ５８）、その後、図１０に示すデータベース移行処理手順ＲＴ５を終了する（ステップＳＰ５９）。
【００８９】
このように、ＤＢ移行部２９は、アクセス対象データ移行時は、読出しアクセスに対しては移行元のデータベースを参照させ、書込みアクセスのアクセス対象データに対しては移行時データ一時記憶部３３に記憶させておき、移行完了後にまとめて反映させる。なお、移行処理については、バックアップ及びリストア等の既存技術を用いる。
【００９０】
このようにして、ＤＢ移行管理装置４では、データ保存先ＤＢ決定部２６が、取得したエンティティ群のエンティティの更新に遅延が生じる場合であって、かつ、取得したエンティティ群のＤＢアクセスパターン４１が存在する場合には、取得したエンティティ群のアクセス対象データ保存先をＲＤＢ５及びＫＶＳ６に決定し、ＤＢ移行スケジュール決定部２７が、データ保存先ＤＢ決定部２６が取得したエンティティ群のアクセス対象データ保存先をＲＤＢ５及びＫＶＳ６に決定した場合には、書込みアクセスが多い期間を判別し、判別した期間に対応する期間の直前で当該エンティティ群のアクセス対象データのＲＤＢ５への移行が完了するように移行スケジュール情報を決定すると共に、読出しアクセスが多い期間を判別し、判別した期間に対応する期間の直前で当該エンティティ群のアクセス対象データのＫＶＳ６への移行が完了するように移行スケジュール情報を決定する。
【００９１】
従って、データ構造が単純なアプリケーションだけでなく、整合性を維持する必要のあるアプリケーションであっても、動作する時期をパターン化することができるシステムに対しては、堅牢な処理を実現しつつも、安価でスケーラビリティの高い運用を実現することができる。
【００９２】
また、高性能・高価なハードウェアだけでなく安価なハードウェアも共存させることにより、提供者及び利用者が、それぞれ運用コスト、利用コストを削減することができる。
【００９３】
また、利用者のデータベースアクセスパターンを分析した結果に基づいて、高価なハードウェア資源を一時的にあけることができるため、アクセス時間の異なるサービス同士が同一のデータベースを利用するようにアクセス対象データを配置することができ、高価なハードウェアの利用効率の向上を実現することができる。さらに、スケーラビリティの低いＲＤＢ５に配置するアクセス対象データを必要最小限にしておくことができるため、障害発生時のアクセス対象データ移行やアクセス対象データのバックアップ、ハードウェアのメンテナンスの実施を容易にすることができる。
【００９４】
なお、本発明は、リレーショナルデータベースが冗長化された構成及びキー・バリューストアを複数台にスケールアウトした場合にも適用することができる。
【００９５】
また、本発明は、キー・バリューストア以外にも、リレーショナルデータベースと異なる性質を有するデータベースであり、書き込みアクセスに対する性能についてはリレーショナルデータベースより劣るが、読み込みアクセスに対する性能についてはリレーショナルデータベースに勝る特徴を有するデータベースに対しても適用することができる。
【００９６】
さらに、本発明は、各システムのデータベースアクセスパターンが、データデースアクセスパターン蓄積部３１に蓄積されているため、そのデータベースアクセスパターンをデータセンタ全体で管理することにより、負荷のかかる時期を分散させ、データベースの運用効率向上を図ることもできる。
【００９７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９８】
（付記１）所定のサーバから送信される書込みアクセス及び読出しアクセスを収集し、アクセス対象データの情報及びアクセス種類ごとのスケーラビリティの低い第１のデータベース及びスケーラビリティの高い第２のデータベースへのアクセス回数を所定時間ごとに記憶部に記憶するアクセス収集部と、前記アクセス収集部により収集された所定時間ごとのアクセス回数に所定のパターンが存在するか否かを判断し、前記パターンが存在する場合に、前記所定時間ごとのアクセス回数をアクセスパターンとして記憶部に記憶するアクセス分析部と、前記アクセス分析部により分析された前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定するデータ保存先決定部と、前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する移行スケジュール決定部と、を備えることを特徴とするデータベース移行管理装置である。
【００９９】
（付記２）前記サーバで実行されるアプリケーションプログラムの所定のデータ単位であるエンティティの関連性を分析し、関連のあるエンティティ同士の集合であるエンティティ群の情報を記憶部に記憶するデータ構造分析部を備え、前記データ保存先決定部は、前記エンティティ群の一部を更新した場合に当該エンティティ群の関連するエンティティの全ての更新に遅延が生じる場合であって、かつ、前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定し、前記移行スケジュール決定部は、前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定することを特徴とする付記１に記載のデータベース移行管理装置である。
【０１００】
（付記３）前記データ構造分析部は、前記エンティティ群を第三正規化し、第三正規化した前記エンティティ群にテーブルの数が２つ以上存在する場合に前記エンティティ群の各エンティティに対する処理プログラムを解読し、前記エンティティ群の各エンティティに書込み処理が存在する場合に前記エンティティ群の情報を記憶し、前記データ保存先決定部は、前記エンティティ群の情報が記憶されていない場合に、該当するアクセス対象データを前記第２のデータベースに配置するように決定することを特徴とする付記２に記載のデータベース移行管理装置である。
【０１０１】
（付記４）前記データ保存先決定部は、前記エンティティ群の一部を更新した場合に当該エンティティ群の関連するエンティティの全ての更新が遅延することなく完了する場合に、該当するアクセス対象データを前記第２のデータベースに配置するように決定することを特徴とする付記２に記載のデータベース移行管理装置である。
【０１０２】
（付記５）前記アクセス分析部は、前記所定時間ごとの前記アクセス回数をグラフ化して当該グラフの極値を検出すると共に、各極値及び当該極値周辺の分散を算出して、所定の時間ごと、所定の日ごと、所定の曜日ごと又は所定の月ごとに関連する前記極値が出現しており、かつ、前記極値周辺の分散誤差が所定範囲内であり、前記極値周辺以外の時間帯において前記所定時間ごとのアクセス回数の平均値が所定しきい値以下である場合に、前記アクセスパターンを記憶することを特徴とする付記１に記載のデータベース移行管理装置である。
【０１０３】
（付記６）前記データ保存先決定部は、前記エンティティ群の一部を更新した場合に当該エンティティ群の関連するエンティティの全ての更新に遅延が生じる場合であって、かつ、前記アクセスパターンが存在しない場合に、該当するアクセス対象データを前記第１のデータベースに配置するように決定することを特徴とする付記２に記載のデータベース移行管理装置である。
【０１０４】
（付記７）前記データ保存先決定部は、利用者により決定された前記第１のデータベースの冗長度及びハードウェア処理に関する情報を取得し、前記エンティティ群の一部を更新した場合に影響が及ぶ前記エンティティの数及び前記第１のデータベースの冗長度及びハードウェア処理に関する情報に基づいて、前記エンティティ群の関連するエンティティが全て更新されるために必要とする時間を算出すると共に、前記エンティティ群の同一のエンティティに対するアクセス回数のうちの単位時間当たりの最大アクセス回数を算出し、前記エンティティ群の関連するエンティティが全て更新されるために必要とする時間と前記最大アクセス回数とを乗じた値が１以上の場合であって、かつ、前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定し、前記移行スケジュール決定部は、前記データ保存先決定部により前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定することを特徴とする付記２に記載のデータベース移行管理装置である。
【０１０５】
（付記８）アクセス収集部が、所定のサーバから送信される書込みアクセス及び読出しアクセスを収集し、アクセス対象データの情報及びアクセス種類ごとのスケーラビリティの低い第１のデータベース及びスケーラビリティの高い第２のデータベースへのアクセス回数を所定時間ごとに記憶部に記憶する第１のステップと、アクセス分析部が、前記第１のステップにおいて収集した所定時間ごとのアクセス回数に所定のパターンが存在するか否かを判断し、前記パターンが存在する場合に、前記所定時間ごとのアクセス回数をアクセスパターンとして記憶部に記憶する第２のステップと、データ保存先決定部が、前記第２のステップにおいて分析した前記アクセスパターンが存在する場合に、前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置することを決定する第３のステップと、移行スケジュール決定部が、前記第３のステップにおいて前記アクセス対象データを前記第１のデータベース及び前記第２のデータベースに配置する場合に、前記書込みアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第１のデータベースに配置するように移行スケジュールを決定すると共に、前記読出しアクセスが所定回数以上となる期間を判別し、判別した期間に対応する期間の前記アクセス対象データを前記第２のデータベースに配置するように移行スケジュールを決定する第４のステップと、を備えることを特徴とするデータベース移行管理方法である。
【符号の説明】
【０１０６】
１……データベース移行管理システム、２……クラウド業務アプリケーションサーバ、３……アプリケーション取得装置、４……データベース移行管理装置、５……リレーショナルデータベース、６……キー・バリューストア、７……契約変更支援装置、８、９……共通インタフェース、１１……ＣＰＵ、１２……ＲＯＭ、１３……ＲＡＭ、１４……記憶部、１５……入力部、１６……表示部、１７……入出力インタフェース、２１……データ構造分析部、２２……データベースアクセス受付部、２３……データベースアクセス収集部、２４……データベースアクセス分析部、２５……キー・バリューストア要件設定部、２６……データ保存先データベース決定部、２７……データベース移行指令部、２８……データベース移行スケジュール決定部、２９……データベース移行部、３０……データ構造記憶部、３１……データベースアクセスパターン蓄積部、３２……移行内容記憶部、３３……移行時データ一時記憶部、４１……データベースアクセスパターン
【図１】
0005633689.tif 000002
【図２】
0005633689.tif 000003
【図３】
0005633689.tif 000004
【図４】
0005633689.tif 000005
【図５】
0005633689.tif 000006
【図６】
0005633689.tif 000007
【図７】
0005633689.tif 000008
【図８】
0005633689.tif 000009
【図９】
0005633689.tif 000010
【図１０】
0005633689.tif 000011