(57)【要約】【課題】  本発明では、災害時対策としてのバックアップシステムへデータ転送、反映の効率化を図ることを目的とする。【解決手段】  本発明では、転送先システム５１においてデータを格納する際、データの格納処理を並列に行う事を実現する。実現手段として、ディザスタリカバリ（災害対策）を実現したシステムを前提として、データの格納処理の並列化を行う。  より詳細には、本発明では、１トランザクションのような単位データについて、それを構成する各要素の順序性を示す並列キーを用いて、その順序性を保証して並列化された反映処理を実行する。この並列キーとは、カラム名について所定条件を満たすものを同一の並列キーを付与し、これに従って制御を行う。【選択図】  図５
2014206800.tif 000002
【特許請求の範囲】
【請求項１】
転送元システムのデータを、転送先システムに反映させるためのデータ反映方法において、
前記転送元システムにおいて、反映対象のデータを構成する各要素に対して、その順序性を示す並列キーを付与し、
前記転送元システムから前記転送先システムに対して、前記データを転送し、
前記転送先システムにおいて、前記並列キーに従って前記各要素を並列化して、当該転送先システムにおけるデータベースに反映させることを特徴とするデータ反映方法。
【請求項２】
請求項１に記載のデータ反映方法において、
前記データは、金融業務のトランザクションデータであって、前記要素は当該トランザクションを構成する処理内容であることを特徴とするデータ反映方法。
【請求項３】
請求項１または２のいずれかに記載のデータ反映方法において、
前記並列キーは、前記データに含まれるカラム名について所定の条件を満たすものであることを特徴とするデータ反映方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信されたデータを、データベースへ反映させるための技術に関する。その中でも特に、災害時などに備えバックアップとして管理されるデータベースへのデータの反映する技術に関する。
【背景技術】
【０００２】
現在、データを冗長化しておき管理することが行われている。例えば、災害時に企業が業務を続行するため、事業継続計画を策定し、災害時に事業を継続できるように、平常時に業務で使用しているデータを別の場所に退避して置き、災害時は退避したデータを使用する事で事業の継続を実現する計画が存在する。データ転送技術を用いることで、平常時に使用しているシステムのデータを、別の場所へ退避することを実現している。
【０００３】
特許文献１では、災害時専用のバックアップシステムの保有コストを削減するための技術が開示されている。このため、特許文献１のバックアップシステムは、複数のユーザシステムをバックアップすべくバックアップ用データベースを有する共用サーバリソース群の共用サーバをユーザシステムに割り当てる優先度を含む管理テーブルが格納されたサーバリソース管理用データベースと、管理テーブルに基づき、共用サーバをユーザシステムに割り当てるためのサーバ割当用システムとを備え、複数の共用サーバは、バックアップ時以外も複数のユーザシステムによって共同で利用され、バックアップ時において、サーバ割当用システムは、管理テーブルの優先度に基づき、ユーザシステムを選定して共用サーバを割り当てる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３４７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなバックアップにおいては、元になるシステムからデータを送信（転送）することになる。ここで、現在のデータ転送技術では、転送先のシステムでデータを格納する際、データの格納処理を並列に行い、格納に掛かる処理時間を効率化する手段は確立されていない。特に、特許文献１では、リソースの割当てについては考慮されているが、その際の転送については考慮されていない。本発明では、上記の事情を鑑み、データ転送、反映の効率化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明では、転送先システムにおいてデータを格納する際、データの格納処理を並列に行う事を実現する。実現手段として、ディザスタリカバリ（災害対策）を実現したシステムを前提として、データの格納処理の並列化を行う。
【０００７】
より詳細には、本発明では、１トランザクションのような単位データについて、それを構成する各要素の順序性を示す並列キーを用いて、その順序性を保証して並列化された反映処理を実行する。この並列キーとは、カラム名について所定条件を満たすものを同一の並列キーを付与し、これに従って制御を行う。この所定条件として、カラム名等が同じもの＝それらの情報で処理が完結するものとする。
【発明の効果】
【０００８】
本発明によれば、データの反映を効率化（高速化）することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態で用いられる並列キー定義ファイルを示す図。
【図２】本発明の一実施形態における条件合致確認フローを示す図。
【図３】本発明の一実施形態における並列化可否の最終決定フローを示す図。
【図４】本発明の一実施形態におけるデータ転送時の処理フローを示す図。
【図５】本発明の一実施形態を実行するシステム構成例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施形態を、金融業務を例に説明する。本実施形態では、ディザスタリカバリ（災害対策）やデータバックアップ、複数システムから1つのデータベースへのデータ集約などの観点において、従来よりデータのレプリケーション（複製）を実現する製品がソフトウェアベンダから供給されている。これらの製品は、特にデータセンタ間においてデータのレプリケーションを行う際に使用される。
【００１１】
従来技術においては、データのレプリケーションを行う際、転送元データセンタで作成されたデータ（更新情報）を、データが作成された順番に逐次、転送先データセンタへ転送していた。また、転送先データセンタにおいて、送られてきたデータを永続化（データベースへの格納など）する際、送られてきたデータを送られてきた順番に一つずつ永続化していた。この方法では、データが転送先データセンタへ大量に送られてきたとしても、一つずつ永続化が行われるため、データ転送の完了（全ての転送データを転送先データセンタで永続化）までに時間が掛かる。
【００１２】
そこで、データの永続化を並列に処理する手段を確立し、性能を向上させる処理方式を実現する。データ永続化の並列処理を実現するため、「並列キー」という処理方式に基づいたデータ並列反映装置を考案した。本装置では、転送されてきたデータを永続化する際、そのデータが並列に永続化して良いかを判断する。並列に永続化可能なデータは並列に永続化し、並列に永続化できないものは逐次処理にて順次、データを永続化する。
【００１３】
例として、以下の２つのトランザクション（(1)、(2)）が処理された際、どのように並列可否が判定されるかを示す。なお、トランザクションとはシステムが業務処理を行う際の処理の単位であり、１トランザクションに複数のクエリ（データベース言語）が含まれる。また、本装置が永続化を行うデータの単位は、トランザクション単位である。
【００１４】
以下の例は、転送先システムにおけるデータ並列反映装置の処理の例である。また、システム構成例としては、図５に示すものである。
（１）日立太郎（カラムACCOUNT_ID=100）の口座から日立花子（カラムACCOUNT_ID=200）の口座へ1000円を振り込む。
（２）日立太郎（カラムACCOUNT_ID=100）の個人情報において住所を変更する。
【００１５】
（１）日立太郎の口座から日立花子の口座へ1000円を振り込むトランザクションＡ
（１）のトランザクションＡを処理する際、例として２つのクエリが実行される事を想定する。実行されるクエリは以下の通りである。
（クエリ1）日立太郎（カラムACCOUNT_ID=100）の口座情報を持つ表ACCOUNT_TABLEにおける日立太郎の口座情報の残高から1000を減算する。
（クエリ2）日立花子（カラムACCOUNT_ID=200）の口座情報を持つ表ACCOUNT_TABLEにおける日立花子の口座情報の残高に1000を加算する。
【００１６】
上記のトランザクションＡを図2条件合致確認フローに適用する。
図2に示す条件合致確認フローの202の処理において、図1並列キー定義ファイルの1014「テーブル名」を確認すると、図1並列キー定義ファイルのNo1の1014「テーブル名」において、テーブル名ACCOUNT_TABLEと合致する事が確認できる。そのため、図2条件合致確認フローの202の処理判定結果は「Yes」となる。
【００１７】
図2の条件合致確認フローの203の処理において、図1並列キー定義ファイルの1013「項目名」を確認すると、図1並列キー定義ファイルのNo1の1013「項目名」において、カラム名ACCOUNT_IDと合致する事が確認できる。そのため、図2条件合致確認フローの203の処理判定結果は「Yes」となる。
【００１８】
図2の条件合致確認フローの204の処理において、トランザクションＡのカラムACCOUNT_IDの値を確認すると、クエリ1では100であり、クエリ2では200であるため、トランザクションＡの中でのカラムACCOUNT_IDの値が同一ではない。そのため、図2条件合致確認フローの204の処理判定結果は「No」となる。したがって、トランザクションＡに図2条件合致確認フローを適用した場合、並列キーは「Gr_OTHER」と判定される。
【００１９】
（２）日立太郎（カラムACCOUNT_ID=100）の個人情報において住所を変更するトランザクションＢ
（２）のトランザクションＢを処理する際、例として２つのクエリが実行される事を想定する。実行されるクエリは以下の通りである。
（クエリ1）日立太郎（カラムACCOUNT_ID=100）の個人情報を持つ表CUSTOMER_TABLEから個人情報を取得する。
（クエリ2）日立太郎（カラムACCOUNT_ID=100）の個人情報を持つ表CUSTOMER_TABLEの住所情報に対して、日立太郎の住所を変更する。
【００２０】
上記のトランザクションＢを図２の条件合致確認フローに適用する。図2の条件合致確認フローの202の処理において、図1の並列キー定義ファイルの1014「テーブル名」を確認すると、図1並列キー定義ファイルのNo2の1014「テーブル名」において、テーブル名CUSTOMER_TABLEと合致する事が確認できる。そのため、図2の条件合致確認フローの202の処理判定結果は「Yes」となる。
【００２１】
図2の条件合致確認フローの203の処理において、図1並列キー定義ファイルの1013「項目名」を確認すると、図1並列キー定義ファイルのNo2の1013「項目名」において、カラム名ACCOUNT_IDと合致する事が確認できる。そのため、図2の条件合致確認フローの203の処理判定結果は「Yes」となる。
【００２２】
図2の条件合致確認フローの204の処理において、トランザクションＢのカラムACCOUNT_IDの値を確認すると、クエリ1では100であり、クエリ2でも100であるため、トランザクションＢの中でのカラムACCOUNT_IDの値が同一である。そのため、図2の条件合致確認フローの204の処理判定結果は「Yes」となる。したがって、トランザクションＢに図2条件合致確認フローを適用した場合、並列キーは図1の並列キー定義ファイルの1012「並列グループ名」のNo2における「Gr_B」となる。
【００２３】
上記のトランザクションＡおよびトランザクションＢに対する図2の条件合致確認フローの適用結果から、トランザクションＡは「並列化不可能」となり、トランザクションＢは「並列化可能」となる。そのため、永続化処理を行う際は、トランザクションＡとトランザクションＢは並列に永続化処理が行われる事になる。
【００２４】
以下、図４のデータ転送時の処理フローに従って、本実施形態での処理全体の流れを説明する。
（利用者による並列化可否の条件の決定（並列キー定義ファイルの作成））
図４の402において、この処理方式の利用者は、図1の並列キー定義ファイルの各項目について、並列化可能なデータの条件／並列化不可能なデータの条件を定義する。並列化可否の判断に使用する確認項目は、「テーブル名」「カラム名」「指定したカラムの値」である。
図1の並列キー定義ファイルの1012「並列化グループ名」は、並列化可否を決める条件を一意に特定する名前を定義する。図1の並列キー定義ファイルの1013「項目名」には、データを一意に決定する情報（会員ID、株式の銘柄IDなど）を定義する。項目名は１つだけ定義することが可能である。図1の並列キー定義ファイルの1014「テーブル名」には、定義する条件が対象とするデータに含まれるテーブル名を定義する。テーブル名は複数定義することが可能である。
【００２５】
図1の並列キー定義ファイルの1015「強制逐次処理」には、強制逐次処理（並列化不可能）であるかを指定するフラグを定義する。
【００２６】
（転送元システム５１における転送先への更新情報の転送）
図４の403において、転送元システム５１は、転送元システム５１のデータベースの更新情報をトランザクション単位に転送先システム５２へ転送する。転送には、データを転送する為の装置を利用して転送することとなる。データ転送のための装置は、ベンダが提供するものを利用できる。
【００２７】
（転送先における転送されてきたデータの判定）
図４の404において、転送されてきたデータは、図2の条件合致確認フローに従い、図1並列キー定義ファイルのどの条件に合致するか判断される。最終的に判断される結果は、グループ名が「Gr_OTHER」か、それ以外のグループ名となるかが判断される。グループ名が「Gr_OTHER」と判断されたデータは、並列化不可能となる。「Gr_OTHER」以外のグループ名と判断されたデータは、そのグループに指定された強制逐次処理フラグに従う。「Gr_OTHER」は、図1並列キー定義ファイルに必ず存在する必要がある。また「Gr_OTHER」は、並列化不可能を示す固定値である。
【００２８】
図2の条件合致確認フローの202は、転送されてきたデータに図1の並列キー定義ファイルの1014「テーブル名」で定義したテーブル名が含まれるかを判断する。図2条件合致確認フローの203は、転送されてきたデータに図1並列キー定義ファイルの1013「項目名」で定義したカラム名が含まれるかを判断する。図2条件合致確認フロー204は、転送されてきたデータにおいて図1の並列キー定義ファイルの1013「項目名」で定義したカラムの値が、転送されてきたデータの中で同じ値かを判断する。転送されてきたデータには、同一のカラム名が複数存在する場合がある（クエリが複数含まれる場合など）。複数存在し、また図1の並列キー定義ファイルの1013にてカラム名が定義されていた場合、各カラムに格納されている値を本処理方式では確認する。本装置が確認する内容としては、転送されてきたデータにおいて、同一のカラム名の値が全て同じか否かを確認する。
この判定により、転送されてきたデータが並列化可能か否かが判定される。
【００２９】
（転送先における永続化処理の並列化可否の決定）
図４の405における処理を説明する。図４の404までで転送されてきたデータがどの条件（グループ名）に該当するかが判断される。グループ名が判断された後、そのグループ名における図1並列キー定義ファイルの1015「強制逐次処理」フラグにて、永続化処理の並列化可否の最終的な決定が行われる。永続化処理の並列化可否の最終的な決定は、図3の並列化可否の最終決定フローに従う。
【００３０】
図1の並列キー定義ファイルの1015「強制逐次処理」が「Yes」である場合、図３の302に従い、永続化処理の並列化は不可能と判断する。つまり、「Yes」である場合、その条件に合致したデータはグループ名「Gr_OTHER」同じ扱いとなる。
図1の並列キー定義ファイルの1015「強制逐次処理」が「No」である場合、永続化処理の並列化が可能と判断する。
【００３１】
（転送先における並列化可否の決定後の処理）
図４の406において、図４の405までで決定した転送されてきたデータの永続化処理の並列化可否に基づき、永続化処理を行う。
転送されてきたデータがグループ名「Gr_OTHER」に該当する場合、そのデータは並列化されず、「Gr_OTHER」に該当する全てのデータを一つずつ順次永続化していく。
グループ名「Gr_OTHER」以外に該当するデータについては、「Gr_OTHER」に該当するデータと並列して永続化が行われる。
【符号の説明】
【００３２】
５１…転送元システム、５２…転送先システム
【図１】
2014206800.tif 000003
【図２】
2014206800.tif 000004
【図３】
2014206800.tif 000005
【図４】
2014206800.tif 000006
【図５】
2014206800.tif 000007