(57)【要約】複数のデータベース管理システムに分かれて管理されているデータを組み合わせて、分析などの処理を行う際、時間がかかる。外部のデータベースで実行するクエリに関して、管理サーバと外部ＤＢサーバが協調して、外部ＤＢサーバの計算機リソースを基に外部ＤＢサーバへ送付するクエリを修正し、クエリを高速に実行する構成に変更する。また、クエリを実行するユーザや使用するデータベースの重要性を基にどの程度のリソースをクエリに付与するかを決定し、重要度に応じたクエリの実行を行う。
2016092604.tif 000002
【特許請求の範囲】
【請求項１】
第一のＤＢＭＳと複数の第二のＤＢＭＳと管理サーバを備えるデータ処理システムであって、
第一のＤＢＭＳは、
第一のクエリを受信する外部受信部と、
前記外部受信部が受信した第一のクエリから他のＤＢＭＳが管理するデータを抽出し、抽出したデータを同時に処理することができるデータの範囲である複数の区間に分割し、分割した区間ごとに第二のクエリを生成する外部クエリ処理部と、
生成した複数の第二のクエリを配布するクエリ配布部と、
配布した第二のクエリの処理結果を受け取るクエリ回収部とを備え
第二のＤＢＭＳは、
前記クエリ配布部が送信した第二のクエリを受信する受信部と、
受信したクエリを実行するクエリ処理部と、
第二のクエリの実行プランとコストを回答するプラン情報連携部と、
前記クエリ処理が処理した結果を第一のＤＢＭＳへ送信する送信部と備え
管理サーバは、
配布された複数の第二のクエリの実行プランとコストを問い合わせ、受け取った実行プランとコストを基に区間を変更し、変更された区間に基づき第二のクエリを実行する計算機リソース量を算出し、変更された区間に基づき第三のクエリの作成と配布を第一のＤＢＭＳへ通知する資源調整部を備え、
第二のＤＢＭＳが第三のクエリを配布された計算機リソース量に基づいて処理した結果を第一のＤＢＭＳへ送付し、
第一のＤＢＭＳが送付された第三のクエリの処理結果を集計することを特徴とするデータ処理システム。
【請求項２】
前記外部受信部は複数のユーザからのクエリを受け付け、前記資源調整部はＤＢＭＳの優先度とユーザの優先度を基に資源割当て量を定めた優先度対応表を参照し、
クエリを受け付けたユーザと、前記クエリが参照するＤＢＭＳに基づき資源割当て量を決定し、
第三のクエリを作成することを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
外部受信部と外部クエリ処理部、クエリ配布部及びクエリ回収部を備える第一のＤＢＭＳと、受信部とクエリ処理部及びプラン情報連携部を備える複数の第二のＤＢＭＳと、管理サーバを備えるデータ処理システムのデータ処理方法であって、
第一のＤＢＭＳが備える外部受信部が第一のクエリを受信し、
外部クエリ処理部は、前記外部受信部が受信した第一のクエリから他のＤＢＭＳが管理するデータを抽出し、抽出したデータを同時に処理することができるデータの範囲である複数の区間に分割し、分割した区間ごとに第二のクエリを生成し、
クエリ配布部が生成した複数の第二のクエリを配布し、
クエリ回収部が配布した第二のクエリの処理結果を受け取り、
第二のＤＢＭＳの受信部は前記クエリ配布部が送信した第二のクエリを受信し、
クエリ処理部が受信したクエリを実行し、
プラン情報連携部が第二のクエリの実行プランとコストを回答し、
送信部が前記クエリ処理が処理した結果を第一のＤＢＭＳへ送信し、
管理サーバの資源調整部が配布された複数の第二のクエリの実行プランとコストを問い合わせ、受け取った実行プランとコストを基に区間を変更し、変更された区間に基づき第二のクエリを実行する計算機リソース量を算出し、変更された区間に基づき第三のクエリの作成と配布を第一のＤＢＭＳに通知し、
第二のＤＢＭＳが第三のクエリを配布された計算機リソース量に基づいて処理した結果を第一のＤＢＭＳへ送付し、
第一のＤＢＭＳが送付された第三のクエリの処理結果を集計することを特徴とするデータ処理システムのデータ処理方法。
【請求項４】
前記外部受信部は複数のユーザからのクエリを受け付け、前記資源調整部はＤＢＭＳの優先度とユーザの優先度を基に資源割当て量を定めた優先度対応表を参照し、
クエリを受け付けたユーザと、前記クエリが参照するＤＢＭＳに基づき資源割当て量を決定し、
第三のクエリを作成することを特徴とする請求項３に記載のデータ処理システムのデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
情報通信システム、特に、情報システムにおけるデータベース管理システムの使用に関する。
【背景技術】
【０００２】
企業では、業務および経営を行うために、生産、購買を管理するためのトランザクション処理システムや、企業活動で生じたデータを蓄積するデータウェアハウスなど、用途の異なるデータベースを複数構築している。近年、日々蓄積される大量のデータを分析して、新たな価値を見出し経営に活かす動きがある。これを実現するためには、複数のデータベースに格納されているデータを組み合わせて、分析クエリを実行する必要がある。【０００３】
複数のデータベース管理システム（以下、ＤＢＭＳと記す）のデータを組み合わせてデータを処理するための手段として、特許文献１では、ユーザが外部関数を登録することで、別ＤＢＭＳへのクエリを別ＤＢＭＳへ送信し、実行結果を得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５１３４２６
【発明の概要】
【発明が解決しようとする課題】
【０００５】
分析サーバに蓄積しているデータに加えて、別に管理されている外部のデータを組み合わせて分析処理を行う際、外部のデータを管理するＤＢＭＳは、分析サーバが要求するクエリに最適な構成となっていないため、クエリの実行に時間がかかる課題がある。特に、組み合わされる複数のＤＢＭＳが同一の物理計算機上で動作する場合、クエリの処理内容と実行中の分析処理に基づいて、最適な構成に変更してクエリを処理する方法が存在しない。
【課題を解決するための手段】
【０００６】
本発明が提供するクエリ処理は、処理の一部を外部のＤＢＭＳで実行するクエリに関して、管理サーバと外部ＤＢサーバが協調して、クエリを高速に実行できる構成へ変更する機能を持つ。クエリごとの構成変更機能はまた、分析サーバや利用者に応じた優先度に基づいた構成変更を行うことで、個々のクエリに適した制御を実現する。
分析サーバのＤＢＭＳにおいて外部のＤＢＭＳのデータを参照するクエリを検出した場合、ＤＢＭＳの外部クエリ処理部は、クエリ、クエリの実行プランと付加情報を、外部ＤＢサーバを管理する管理サーバに送信し、ＤＢＭＳをクエリ実行に最適な構成とするよう依頼する。
管理サーバの資源調整部は、依頼を元に、外部ＤＢＭＳが対象となるクエリを実行した際の実行プランを外部ＤＢＭＳに問い合わせる。
外部ＤＢＭＳのプラン情報連携部は、当該ＤＢＭＳで実行するクエリの実行プランを管理サーバに提供する。
管理サーバの資源調整部は、外部ＤＢサーバの資源を管理すると共に、外部ＤＢサーバで実行するクエリの実行プランを取得して組み合わせることで、クエリを早く実行するために必要な資源を特定し、外部ＤＢサーバに資源割当てを依頼する。
【発明の効果】
【０００７】
外部のＤＢサーバで管理されているデータと分析サーバのデータを組み合わせる分析処理において、外部のＤＢサーバがクエリの内容に基づいて資源の割当てを調整し、クエリを実行するため、分析処理を短時間で実行できるようになる。
【図面の簡単な説明】
【０００８】
【図１】本発明が対象としているデータ処理システムの構成を示している。
【図２】実施例におけるクエリの処理フローを示している。
【図３】実施例におけるクエリの処理フローを示している。
【図４】実施例におけるクエリの処理フローを示している。
【図５】クエリの例を示している。
【図６】分析サーバのプラン生成部が、クエリを解析した結果として生成した実行プランの例を示している。
【図７】実施例における外部クエリ処理部の処理フローを示している。
【図８】実施例における実行管理テーブルの例を示している。
【図９】実施例で管理サーバの分析ＤＢ管理部が管理する分析ＤＢ情報の例を示している。
【図１０】実施例で管理サーバの分析者情報管理部が管理するユーザ情報の例を示している。
【図１１】実施例で管理サーバの資源調整部が管理する優先度対応表の例を示している。
【図１２】資源調整部が外部ＤＢサーバから受信したプランコスト情報より資源割当てを確定し、外部サーバへ資源割当て情報を送信する処理フローを示している。
【図１３】資源調整部が外部ＤＢサーバから受信したプランコスト情報より資源割当てを確定し、外部サーバへ資源割当て情報を送信する処理フローを示している。
【図１４】資源調整部が、分析サーバからクエリ実行完了を受取り、資源割当てを再計算する処理フローを示している。
【図１５】資源調整部で管理する、外部ＤＢサーバの資源の例を示している。
【図１６】資源調整部が管理する資源割当てテーブルの例を示している。
【図１７】管理サーバの外部ＤＢ管理部が管理する外部ＤＢサーバの情報の例を示している。
【図１８】別のクエリの例を示している。
【図１９】管理サーバの機能が外部ＤＢサーバ内に存在する場合の実施例を示している。
【図２０】外部ＤＢサーバが複数のサーバと共有ストレージから構成される実施例を示している。
【図２１】外部ＤＢサーバが複数のサーバで構成され、各サーバのストレージには、それぞれ異なる外部ＤＢのデータが格納されている実施例を示している。
【発明を実施するための形態】
【０００９】
実施例を用いて説明する。
【実施例１】
【００１０】
図１は、本発明が対象としているデータ処理システムの構成を示している。分析サーバ１（１００）は、データベース管理システムＤＢＭＳ１（１０１）が動作する計算機である。分析サーバ１（１００）は、ＣＰＵ１５１、メモリ１５３、ディスク１５５、他計算機との通信に用いるネットワークインタフェースカード（ＮＩＣ１５７）が、図示されていないシステムバスで接続されたハードウェア構成となっている。分析サーバ１（１０１）では、オペレーティングシステム（ＯＳ１５９）が、ハードウェアとアプリケーションソフトウェアを制御する。【００１１】
ＤＢＭＳ１（１０１）は、ＯＳ１５９のアプリケーションのひとつとして動作し、以下の機能を持つデータ処理ソフトウェアである。【００１２】
通信部１０３は、ＤＢＭＳの外部との情報通信に使用される外部入出力部１４１を含む。通信先としては、分析アプリケーション、ＤＢ管理コンソール、管理サーバ、外部のＤＢＭＳを含みクエリ配布部１４３やクエリ回収部１４５を持つ。【００１３】
アクセス管理部１０５は、ＤＢＭＳ１（１０１）の外部入出力部１４１に到着した要求が処理可能かどうかを判断する。判断の元となる情報としては、ユーザ名、パスワード、ユーザ名に対して設定された権限情報、接続元の計算機名、接続元のＩＰアドレス、アクセス対象となるデータに設定された権限情報がある。【００１４】
ＳＱＬ解析部１０７は、クライアントから受信したＳＱＬで書かれたクエリを解析し、文法確認を行う。また、後の処理に向け、文字列のクエリを、トークンなどの意味のある単位に分解する。【００１５】
プラン生成部１０９は、ＤＢＭＳ１（１０１）内に保持されている実行実績、サイズなどのデータの情報を用いて、クエリ実行プラン（内部の処理順番）を決定する。本実施例では、コストベースのプランを用いて説明する。【００１６】
外部クエリ処理部１１１は、本発明における独自の部位であり、クエリの処理にあたり、外部のＤＢＭＳの処理結果を要求する際に、動作する。【００１７】
ＳＱＬ実行部１１３は、プラン生成部１０９が生成したクエリ実行プランに基づき、データを操作してクエリを実行する。【００１８】
分析データ１２０は、ＤＢＭＳ１（１０１）で管理しているデータを示している。ここでは、種種のデータのうち、各商品の売上げを期間ごとに格納した売上表１２３と、売上表を効率的に操作するためのデータであるインデックス１２１が図示されている。【００１９】
リモートＤＢデータ１３０は、分析データ１２０と、外部のＤＢＭＳにあるデータを組み合わせて分析する際、外部のＤＢＭＳを参照する必要があるデータの種類と直近のデータが保持される。本実施例では、後述するＤＢＭＳ３（３４０）が持つ経済指標のデータ（１３１）とＤＢＭＳ４（３７０）が持つＳＮＳのデータ（１３３）が参照できる。【００２０】
なお、ここでは、データ処理ソフトウェアをデータベース管理システムとして記載したが、Ａｐａｃｈｅ（ＴＭ）  Ｈａｄｏｏｐ（Ｒ）のようなデータ処理基盤にクエリ処理機能を加えたソフトウェアを用いてもよい。【００２１】
外部のＤＢＭＳを利用する分析用のＤＢＭＳは、分析サーバ１（１００）だけでなく、分析サーバ２（４００）のＤＢＭＳ２（４０１）のように、複数存在してもよい。【００２２】
管理サーバ２００は、分析用のＤＢＭＳ（ＤＢＭＳ１、ＤＢＭＳ２等）が外部のＤＢＭＳを利用する際に、処理するクエリに合わせて外部のＤＢＭＳの構成変更を指示する。管理サーバ２００は、分析サーバ１（１００）と同様に、ハードウェアとして、ＣＰＵ２０１、メモリ２０３、ディスク２０５、ＮＩＣ２０７を持ち、図示されていないシステムバスで接続された計算機である。管理サーバ２００で動作するオペレーティングシステム（ＯＳ）２０９のアプリケーションとして、構成変更に必要となる情報を管理するソフトウェアが動作する。【００２３】
資源調整部２１１は、ＤＢＭＳ１（１０１）、ＤＢＭＳ２（４０１）からクエリとクエリの実行プランを受け取り、後述する管理部の情報および、外部のＤＢＭＳの実行プランより構成変更を指示する。【００２４】
外部ＤＢ管理部２２１は、分析サーバが利用可能な外部のＤＢＭＳの基本情報を管理する。【００２５】
分析ＤＢ管理部２２３は、外部データベースを利用する分析サーバの基本情報を管理する。【００２６】
分析者情報管理部２２５は、各分析サーバにおけるユーザの優先度と、外部のＤＢＭＳ利用時の優先度の対応を管理する。【００２７】
なお、本実施例では、管理サーバ２００は独立のサーバとして記載しているが、同様の処理を分析サーバや外部ＤＢサーバで動作させてもよい（外部ＤＢサーバで動作する例は、実施例２で示す）。【００２８】
外部ＤＢサーバ３００は、分析用のＤＢＭＳとは別に、分析に補助的に用いるＤＢＭＳを動作させるサーバである。基本的なハードウェアとシステムソフトウェアは、分析サーバ１（１００）、管理サーバ２００と同様に、ＣＰＵ３０１、メモリ３０３、ディスク３０５、ＮＩＣ３０７、ＯＳ３０９から構成される。【００２９】
外部ＤＢサーバ３００には、例として、２種類のデータが格納されている。ＤＢＭＳ３（３４０）は、経済指標３５７を、ＤＢＭＳ４（３７０）は、ソーシャルネットワーキングサービス（ＳＮＳ）で交換されている情報（３８７）を管理する。ＤＢＭＳは、データの種類ごとに最適な管理方法が異なるため、異なるＤＢＭＳで管理されている。ただし、本実施例では、説明のためＤＢＭＳ３（３４０）とＤＢＭＳ４（３７０）は、同じ構成をしている。【００３０】
通信部３４１、３７１は、受信部４３２、３７２と、送信部３４４、３７４をそれぞれ含み、上位のＤＢＭＳ、管理サーバ２００と通信を行う。【００３１】
アクセス管理部３４３、３７３は、ＤＢＭＳ１（１０１）のアクセス管理部１０５と同様な役割を持つ。【００３２】
ＳＱＬ解析部３４５、３７５は、ＳＱＬ解析部１０７と同様の役割を持つ。【００３３】
プラン生成部３４７、３７７は、クエリを処理するための実行プランを生成する。【００３４】
プラン情報連携部３４９、３７９は、本発明の特徴のひとつであり、ＤＢＭＳ１（１０１）の外部クエリ処理部１１１が生成したクエリを処理するために前処理を実行する。また、前処理に関し、通信部３４１、３７１を用いて管理サーバ２００、資源割当て部３２０と連携する。【００３５】
クエリ処理部３５２、３８２は、ＳＱＬ実行部１１３と同様の役割を持つ。【００３６】
ＤＢ基本情報管理部３５３、３８３は、当該ＤＢＭＳの管理情報を保持する。【００３７】
資源割当て部３２０は、管理サーバ２００の指示に基づき、ＯＳ（３０９）の機能およびＤＢ基本情報管理部（３５３、３８３）と協調して、ＤＢＭＳ３（３４０）とＤＢＭＳ４（３７０）に割当てる資源を変更する。【００３８】
なお、本実施例では、外部ＤＢサーバ３００上でＤＢＭＳ３（３４０）とＤＢＭＳ４（３７０）が動作しているが、各ＤＢＭＳが別々のサーバで動作してもよい。また、各ＤＢＭＳは、ＯＳ（３０９）のプロセスとして動作しても、近年の計算機でサポートされている仮想化機構で実現される仮想マシン上のプロセスとして動作してもよい。さらに、各ＤＢＭＳは、仮想マシンの実行に必要なエミュレーションを用いるのではなく、ＯＳ（３０９）および他のシステムソフトウェアが提供するコンテナ機構により、各種資源の名前空間が異なり、利用量がチューニングされたコンテナとして動作してもよい。【００３９】
分析アプリケーションは、分析データベースと、分析データベースを経由して外部のデータベースを利用する。クライアント１（５００）は、図示されていないが、分析サーバ１（１００）と同様なハードウェアとＯＳを持つ。ＤＢ管理コンソール１（５０３）は、ＤＢＭＳ１（１０１）を管理する機能を持ち、外部のＤＢＭＳを利用するための接続を設定できる。分析アプリケーション１（５０１）は、データ分析のためのクエリを発行するアプリケーションプログラムである。クライアントは複数存在することも可能であり、図１では、クライアント１（５００）の他に、例としてクライアント２（５１０）、クライアント３（５２０）が示されている。クライアントとサーバ、サーバ間はネットワーク（５６１、５６３）で接続されている。【００４０】
図２は、図１のシステムにおいて、分析アプリケーション１が、分析サーバと外部ＤＢサーバのデータを組み合わせた分析クエリを、分析サーバ１へ要求した際の処理の流れを示している。【００４１】
ＤＢＭＳ１（１０１）の外部入出力部１４１は、分析アプリケーション１（５０１）が送信したクエリを受信する（ステップＳ１００１）。ＤＢＭＳ１（１０１）のアクセス管理部１０５とＳＱＬ解析部１０７は、受信したクエリを認証、解析する。アクセス管理部１０５は、クエリがＤＢＭＳ１で処理が許可されているユーザから出されているかどうかを、接続に用いられたユーザ名、パスワードから判定する。ＳＱＬ解析部１０７は、後続の処理を容易にするために、認証が終わったクエリを意味のある文字列（トークン）の単位で区切るとともに、当該クエリがＳＱＬの文法に従っているかどうかを判定する。クエリで参照する表に対してアクセス権限が設定されている場合、アクセス管理部１０５は、クエリを要求したユーザが操作対象となる表へのアクセス権限を持つか確認する。【００４２】
プラン生成部１０９は、クエリを実行する際に利用する機能、実行の順番、処理コストを実行プランとして生成する（ステップＳ１００３）。実行プランの生成には、図１には図示されていないが、これまでの処理で蓄積した統計情報を用いる。なお、ステップＳ１００３の時点で、外部ＤＢサーバを使用する処理は、詳細なコスト値はわからなくともよい。【００４３】
ＤＢＭＳ１（１０１）の外部クエリ処理部１１１は、本発明の特徴のひとつとなる部分であり、受信したクエリの中から外部ＤＢサーバで処理する部分を特定する（ステップＳ１００６）。外部クエリ処理部１１１は、クエリおよびクエリの実行プランを参照し、リモートＤＢデータ１３０を参照するクエリを、外部ＤＢサーバの処理対象とする。さらに、外部クエリ処理部１１１は、外部ＤＢサーバで処理するクエリについて、並列で要求か可能なクエリを区間として定義する。例えば、分析サーバの売上表に格納されている商品の情報について、上位10地区の売上と、該当地区の経済状況、ＳＮＳでの登場回数の関係を調べる図５に示すクエリは、図６に示す実行プランとなる。図６では、クエリを実行するために、使用するスキャン、フィルタ、結合等の利用する機能と機能の実行にかかる見積もりが図示されている。また、経済指標を管理するＤＢＭＳ３（３４０）とＳＮＳを管理するＤＢＭＳ４（３７０）へ並列でクエリを要求する区間が定義されている。【００４４】
ＤＢＭＳ１（１０１）の外部クエリ処理部１１１は、ステップＳ１００１で受信したクエリのうち、ステップＳ１００６で特定した外部ＤＢサーバで処理する部分について、クエリの変換を実行し、変換したクエリと、該当する実行プランとコスト情報(プランコスト情報)を管理サーバ２００に送信する（ステップＳ１００８）。クエリ変換の詳細については、図７で示す。外部クエリ処理部１１１は、クエリ配布部１４３の機能を利用して、管理サーバ２００へ、外部ＤＢサーバで実行する変換済クエリとプランコスト情報を送信する。【００４５】
管理サーバ２００の資源調整部２１１は、ステップＳ１００８で送信された、分析サーバの新しいクエリとプランコスト情報を受信する。資源調整部２１１は、受信したクエリを解析し、外部ＤＢサーバでクエリを実行する際の詳細なプランコスト情報を、外部ＤＢサーバごとに要求する（ステップＳ１０２２）。【００４６】
外部ＤＢサーバ３００で動作するＤＢＭＳの受信部（３４２、３７２）は、管理サーバ２００からのプランコスト情報提示要求を受信する。アクセス管理部（３４３、３７３）は、受信が管理サーバ２００からの要求であることを確認する（ステップＳ１０３２）。【００４７】
外部ＤＢサーバ３００で動作するＤＢＭＳのプラン情報連携部（３４９、３７９）は、本発明の特徴のひとつであり、管理サーバからの要求に基づき、クエリの実行はせずに、実行プランの生成と、プランコスト情報を資源調整部に通知する機能を持つ。【００４８】
プラン情報連携部（３４９、３７９）は、プランコスト情報提示要求に含まれるクエリを取り出し、ＳＱＬ解析部（３４５、３７５）に解析を要求する。ＳＱＬ解析部（３４５、３７５）は、クエリを構成する文字列を解析し、結果をプラン情報連携部（３４９、３７９）に返す。プラン情報連携部（３４９、３７９）は、解析結果をプラン生成部（３４７、３７７）に渡し、クエリの実行プラン生成を依頼する。プラン生成部（３４７、３７７）は、クエリを実行する際の実行プランとコスト見積もりを算出する（図５のクエリの場合、図６の点線内が該当する。ただし下線部は除く）。【００４９】
プラン情報連携部（３４９、３７９）は、算出されたコストから、クエリを実行する際に、ＣＰＵとＩ／Ｏのどちらが重要となるか、必要な資源、並列実行度などの特性情報を算出する。特性情報とは、コストから算出されるＣＰＵを利用する度合い、Ｉ／Ｏを重視する度合い、ＤＢＭＳ内部での可能処理並列度、結果の出力形式などになる。図５のクエリの場合、図６の下線部の情報が相当する。【００５０】
例えば、クエリの実行において、サイズの大きいインデックスの探索が含まれる場合、ランダムなディスクＩ／Ｏを伴うためＩ／Ｏを重視する度合いが上がる。また、データの格納方式とクエリの処理方式から並列実行度を算出する。クエリの一部にソート処理とフィルタ処理が含まれる場合は、計算資源が豊富にあっても処理が一元化されるため並列度が落ちる。逆にデータがパーティショニングされている場合は、並列度を上げることができる。結果の出力形式としては、条件に合うデータが見つかるたびに結果を返せる場合と、集約をするため最後にまとめて結果を出す場合がある。【００５１】
プラン情報連携部（３４９、３７９）は、特性情報を含むプランコスト情報の送信を、送信部（３４４、３７４）に依頼する。送信部（３４４、３７４）は、依頼されたプランコスト情報を管理サーバ２００に送信する（ステップＳ１０４５）。【００５２】
管理サーバ２００の資源調整部２１１は、外部ＤＢサーバから処理結果を受信する（ステップＳ１０５１）。【００５３】
図３は、実施例におけるクエリの処理フローの図２以降の続きを示している。【００５４】
資源調整部２１１は、外部ＤＢサーバから受信したプランコスト情報、外部ＤＢ管理部２２１が管理する外部のＤＢＭＳの情報、分析ＤＢ管理部２２３が管理する分析サーバの情報、分析者情報管理部２２５が管理するユーザの情報を基に、分析サーバが要求するクエリを処理するための外部ＤＢサーバの構成を計算する（ステップＳ１０５３）。詳細は、後述する。【００５５】
資源調整部２１１は、構成変更を資源割当て情報として、外部ＤＢサーバ３００の資源割当て部３２０に依頼する（ステップＳ１０５５）。【００５６】
外部ＤＢサーバ３００の資源割当て部３２０は、ステップＳ１０５５で送信された資源割当て情報を受信し、資源割当て情報に基づき、ＤＢＭＳに割り当てている資源の構成を変更する。資源割当て部３２０は、割当ての変更後、割当て完了を管理サーバ２００へ送信する（ステップＳ１０６２）。【００５７】
管理サーバ２００の資源調整部２１１は、ステップＳ１０６５で送信された割当て完了を受信する（ステップＳ１０７１）。【００５８】
資源調整部２１１は、分析サーバ１（１００）のＤＢＭＳ１（１０１）にステップＳ１００８で受信した変換済クエリとプランコスト情報の返信として、外部のＤＢＭＳのクエリ処理準備完了を送信する（ステップＳ１０７３）。なお、この際、クエリの実行プランを修正するためのヒント情報を同時に送信してもよい。【００５９】
ＤＢＭＳ１（１０１）の外部クエリ処理部１１１は、クエリ回収部１４５の機能を用いて、ステップＳ１０７３で送信されたクエリ処理準備完了を受信する（ステップＳ１０８１）。実行プラン修正のヒント情報がある場合は、ステップＳ１００３に戻り、実行プラン再度修正してもよい。【００６０】
ＤＢＭＳ１（１０１）のＳＱＬ実行部１１３は、実行プランに従い、クエリの処理を開始する（ステップＳ１０８３）。【００６１】
図４は、実施例におけるクエリの処理フローの図３以降の続きを示している。【００６２】
ＳＱＬ実行部１１３が、外部のＤＢＭＳの情報を参照する場合、外部クエリ処理部１１１を経由して外部ＤＢサーバへクエリを送信する。外部クエリ処理部１１１は、クエリ配布部１４３の機能を用いて、外部ＤＢサーバへ変換したクエリを送信する（ステップＳ１０８５）。【００６３】
外部ＤＢサーバ３００で動作するＤＢＭＳ（３４０、３７０）では、ＤＢＭＳ１（１０１）から送信されたクエリを受信して、実行し、処理結果を送信する（ステップＳ１０９１）。受信部（３４２、３７２）は、ＤＢＭＳ１（１０１）から送信されたクエリを受信する。外部ＤＢサーバ３００で動作するＤＢＭＳのアクセス管理部（３４３、３７３）は、受信したクエリが正しいサーバかつ正規のユーザからの通信であることを確認する。ＤＢＭＳのＳＱＬ解析部（３４５、３７５）は、クエリを構成する文字列を解析する。プラン生成部（３４７、３７７）は、クエリを実行する際の処理の順番や、利用する計算方法を実行プランとして生成する。クエリ処理部（３５２、３８２）は、プラン生成部（３４７、３７７）が生成したプランを基に、当該ＤＢＭＳに保持しているデータの操作を実行する。クエリの実行結果は、送信部（３４４、３７４）により、クエリを発行した分析サーバ１（１００）のＤＢＭＳ１（１０１）に送信される。【００６４】
ＤＢＭＳ１（１０１）のクエリ回収部１４５は、外部ＤＢサーバから、ステップＳ１０８５で要求したクエリの実行結果を受信し、クエリ処理を進める（ステップＳ１１１１）。【００６５】
ＤＢＭＳ１（１０１）の外部クエリ処理部（１１１）は、ステップＳ１０７３で指定した特定の区間が終了すると（クエリの完了も含む）、クエリ配布部１４３の機能を用い、管理サーバ２００へ、実行していた区間の完了を通知する（ステップＳ１１１９）。【００６６】
管理サーバ２００の資源調整部２１１は、ＤＢＭＳ１（１０１）からの区間終了通知を受信する（ステップＳ１１３１）。【００６７】
管理サーバ２００の資源調整部２１１は、区間完了通知、ステップＳ１０２２で受信したクエリとプランコスト情報、ステップＳ１０５３で算出した資源割当てより、再度資源割当てを計算する（ステップＳ１１３３）。【００６８】
管理サーバ２００の資源調整部２１１は、再度割当てが必要な場合、計算した資源割当て情報を外部ＤＢサーバへ送信する（ステップＳ１１３５）。【００６９】
外部ＤＢサーバでの処理は、ステップＳ１０６２として既に記載している。【００７０】
管理サーバ２００の資源調整部２１１は、外部ＤＢサーバからの資源割当て変更結果を受信し、資源割当ての結果を確認する（ステップＳ１０７１）。【００７１】
ＤＢＭＳ１（１０１）は、クエリの実行が完了すると、外部入出力部１４１より、ステップＳ１００１で受けたクエリの実行結果を分析アプリケーション１（５０１）に送信する（ステップＳ１１１７）。【００７２】
図７は、分析サーバ１（１００）の外部クエリ処理部１１１の処理フローを示している。外部クエリ処理部１１１は、（１）クライアントから受信したクエリのうち外部ＤＢサーバで実行する部分の変換(ステップＳ１００６、Ｓ１００８)、（２）管理サーバから送信されるクエリ処理準備完了の受信処理（ステップＳ１０８１）、（３）外部ＤＢサーバへのクエリ送付（ステップＳ１０８５）、（４）外部ＤＢサーバからのクエリ実行結果の受信（ステップＳ１１１１）、（５）区間終了時に管理サーバへ区間終了を通知（ステップＳ１１１９）、の５つが主要機能となる。【００７３】
外部クエリ処理部１１１は、呼び出されると、まず、プラン生成部１０９からの呼び出しであり、新規クエリの変換が要求されているかを判定する（ステップＳ２００１）。該当する場合、ステップＳ２００３以降の処理を実行する（機能（１））。なお、判定の方法としては、図１などで図示されていないトランザクションの管理データ構造に、呼出し元モジュール名を保持する方法、クエリの変換が完了したかどうかを示すフラグを保持する方法がある。【００７４】
外部クエリ処理部１１１は、プラン生成部１０９が管理する実行プランの中から、当該クエリの実行プランを検索する（ステップＳ２００３）。検索は、プラン生成部１０９に問い合わせを行う、管理データ構造に実行プランへのポインタ情報を持つなどの方法がある。【００７５】
外部クエリ処理部１１１は、検索で取得した実行プランのうち、外部のＤＢＭＳに問い合わせが必要な部分を特定すると共に、クエリが複数の外部ＤＢＭＳ上で並列に実行できるかどうかを判定し、並列に実行できる部分に区間を設定する（ステップＳ２００５）。外部クエリ処理部１１１は、まず、実行プランの中で操作対象となる表がリモートＤＢデータ１３０で管理されている場合に、外部のＤＢＭＳに問い合わせが必要な部分と特定する。例えば、図５に示した商品Ｘの売上げが高い地区と、その地区の経済指標と、商品に関するＳＮＳの情報を分析するクエリでは、図６に示すように、経済指標表を参照する（ア）とＳＮＳ表を参照する（イ）の部分は、外部ＤＢＭＳへの問い合わせとなる。【００７６】
さらに、外部クエリ処理部１１１は、外部のＤＢＭＳに問い合わせる実行プランのうち、並列で実行できる箇所を決め、並列実行ができる単位を区間とし、区間ごとにＩＤを設定する。外部クエリ処理部１１１は、並列実行箇所を特定するために、実行プランで依存しているデータと使用される機能の情報を用いる。データがそろわなければ後続の処理ができない部分は、区間の境界となる。また、結合処理において、結合の対象となるデータを計算する部分は、計算資源に余裕があれば独立に実行できるため、並列実行が可能な箇所と判定できる。図６の実行プランの例では、（ア）の部分と（イ）の部分は、地区ＩＤを算出したあとに計算可能な処理であり、並列ＤＢＭＳにおいて一般的に並列処理されるネストループ結合によるデータ取得処理のため、同一の区間と判定している。【００７７】
外部クエリ処理部１１１は、区間ＩＤ以外に、分析サーバの情報、クエリを要求しているユーザ情報、トランザクションＩＤなどの情報をクエリに付与する（ステップＳ２００７）。分析サーバの情報としては、サーバ名やＩＰアドレスなどがある。設定の方法としては、ステップＳ２００５で示したコメント文を使う方法や、管理サーバに送るデータの一部に加える方法がある。【００７８】
外部クエリ処理部１１１は、クエリ配布部１４３の機能を利用して、管理サーバ２００へ、クエリとプランコスト情報を送信する（ステップＳ２００９）。【００７９】
外部クエリ処理部１１１は、ステップＳ２００１において呼出しがプラン生成部１０９からでない場合、クエリ回収部１４５の呼出しであり、渡されるメッセージがクエリ処理準備完了かどうかを判定する（ステップＳ２０２１）。該当する場合は、ステップ２０２７に進む（機能（２））。該当しない場合は、ステップＳ２０３１に進む。【００８０】
外部クエリ処理部１１１は、ＳＱＬ実行部１１３を呼び、外部ＤＢサーバのデータを利用するクエリの実行を開始する（ステップＳ２０２７）。なお、このフローには、図示していないが、クエリ処理準備完了のメッセージに外部ＤＢのプラン修正のヒント情報が入っている場合、本フローを終了して、ステップＳ１００８に戻ってもよい。【００８１】
外部クエリ処理部１１１は、呼び出された契機が、クエリ回収部１４５からの呼び出しであり、クエリ処理結果の受信であるかどうかを、通信内容から判定する（ステップＳ２０３１）。該当する場合はステップＳ２０３３に進む（機能（４））。そうでない場合は、ステップＳ２０４１に進む。【００８２】
外部クエリ処理部１１１は、呼出し元がプラン生成部１０９でも通信部１０３からでもない場合、ＳＱＬ実行部１１３からの呼出しで、外部ＤＢサーバへの実行要求かどうかを判定する（ステップＳ２０４１）。該当する場合、ステップＳ２０４３に進む（機能（３））。非該当の場合は、ステップＳ２０４５を実行する（機能（５））。【００８３】
外部クエリ処理部１１１は、ＳＱＬ実行部１１３が必要とする外部のＤＢＭＳのデータを取得するため、ステップＳ２００７で変換したクエリのうち該当する部分を、対象の外部ＤＢサーバへクエリ配布部１４３を利用して送信する（ステップＳ２０４３）。【００８４】
外部クエリ処理部１１１は、ＳＱＬ実行部１１３からの呼出しであり、呼出しの原因が外部ＤＢサーバへのクエリ実行でない場合、実行中のクエリの区間が完了したか、クエリがすべて完了したかどうかを確認する（ステップＳ２０４５）。外部クエリ処理部１１１は、外部入出力部１４１の機能を利用し、外部ＤＢＭＳと終了した区間の情報を、管理サーバ２００へ送信する。【００８５】
管理サーバ２００の資源調整部２１１は、大きく分けて次の４つの処理を実行する：（１）外部ＤＢサーバへプランコスト情報を要求、（２）外部ＤＢサーバから受信したプランコスト情報より資源割当てを確定し、外部ＤＢサーバへ資源割当て情報を送信、（３）外部ＤＢサーバから資源割当て完了を受信し、分析サーバへクエリ前処理の完了を送信、（４）分析サーバからクエリ実行完了を受取り、資源割当てを再計算し（２）と同様に外部ＤＢサーバの資源割当てを変更する。【００８６】
資源調整部２１１の処理（１）は、図２に示したステップＳ１０２２に相当する。資源調整部２１１は、分析サーバ１（１００）のＤＢＭＳ１（１０１）からクエリとプランコスト情報を受信すると、図８に示す実行管理テーブル１１００にクエリの情報を登録する。実行管理テーブル１１００は、分析サーバが外部のＤＢＭＳにクエリを依頼している間、実行中のクエリに関する情報を保持するデータ構造である。実行管理テーブル１１００は、分析ＤＢサーバの識別子（１１０１）、分析ＤＢサーバが割り当てたトランザクションＩＤ（１１０３）、要求したクエリの全区間数（１１０５）、現在実行している区間ＩＤ（１１０７）を保持する。さらに、外部ＤＢサーバの情報として、使用している外部のＤＢＭＳ（１１０９）、クエリのステータス（１１１１）、応答を待っているメッセージの数（１１１３）、外部のＤＢＭＳに設定すべき目標資源の割合（１１１５）、実際に設定している設定資源（１１１７）の情報、外部のＤＢＭＳごとに割当てた資源割当てテーブルへのポインタ（１１１８）を持つ。また、資源の割当てを変える区間のリスト（１１１９）、要求されたクエリを記録しているアドレスの情報（１１２１）、分析サーバおよび外部ＤＢサーバから取得したプランコスト情報を参照するためのデータ（１１２３）も持つ。図８では、１１５１として、ＤＢＭＳ１が要求しているクエリの情報（トランザクションＩＤ１）が登録されている。【００８７】
資源調整部２１１が分析サーバから受信するクエリには、ＤＢＭＳ１（１０１）の外部クエリ処理部１１１がステップＳ２００７で付与した分析ＤＢＭＳの情報、ユーザ情報、外部のＤＢＭＳの情報などがＳＱＬ文に加えて埋め込まれている。【００８８】
資源調整部２１１が分析サーバから受信したプランコスト情報には、一般のＤＢＭＳで利用されているコストベースの実行プランに、クエリ処理部１１１がステップＳ２００５で算出した区間情報が追加されている。なお、この時点で外部のＤＢＭＳで実行するクエリのプランについては正確であるとは限らない。例えば、図５のクエリで、図６のプランの（ア）（イ）の内部はコストが出ていなくともよい。【００８９】
資源調整部２１１は、外部ＤＢサーバで実行するクエリの詳細なプランコスト情報を外部ＤＢサーバに問い合わせる。具体的には、クエリの文字列から、区間が設定されているクエリを、外部ＤＢサーバごとに抽出する。資源調整部２１１は、外部のＤＢＭＳへ接続する情報、外部ＤＢサーバが動作するサーバの情報を図１７に示す外部データベース情報２１００で管理している。資源調整部２１１は、抽出したクエリと外部データベース情報２１００を組み合わせて、プランコスト情報を問い合わせるためのホスト名、ＩＰアドレス、ポート番号を特定する。資源調整部２１１は、プランコスト情報問合せメッセージを、特定した外部のＤＢＭＳへの宛先へ送信する。資源調整部２２１は、実行管理テーブル１１００のステータス１１１１をプラン問合せ中に変更する。【００９０】
資源調整部２１１の処理（２）は、外部のＤＢＭＳへ問い合わせたプランコスト情報を受信し資源割当てを確定する。資源調整部２１１は、まず、上述したプランコスト情報の問合せ結果を、区間ごとにそれぞれ外部のＤＢＭＳから受信する。資源調達部２１１は、外部ＤＢサーバから、分析サーバが外部のＤＢＭＳに要求するクエリのプランコスト情報
を受信する。資源調整部２１１は、実行管理テーブル１１００において当該クエリの応答待ちのメッセージ数を保持している応答待ち１１１３の１減らす。資源調整部２１１は、当該クエリの応答待ち１１１３が０かどうかを判定する。０であれば、メッセージの受信が完了となる。資源調整部２１１は、０でなければ、外部のＤＢＭＳからのプランコスト情報がすべて届いていないため、プランコスト情報の到着を待つ。【００９１】
図１２は、外部ＤＢサーバの資源割当てを確定する際の処理フローを示している。本フローは、ステップＳ１０５３を詳細化したものである。【００９２】
資源調整部２１１は、まず、図９に示す分析ＤＢ情報１２００を検索し、クエリを依頼したＤＢＭＳの優先度を取得する（ステップＳ４２０１）。分析ＤＢ情報１２００は、クエリを要求する分析サーバのＤＢＭＳの名前、ＩＰアドレス、優先度などが格納されている。分析ＤＢ情報１２００は、外部ＤＢ管理部２２１が管理するデータであり、情報システムに分析サーバが追加、削除されると、システム管理者または図１に図示していないシステム管理プログラムによって更新される。【００９３】
資源調整部２１１は、実行管理テーブル１１００のクエリ１１２１内に含まれているユーザ情報を抽出する。資源調整部２１１は、図１０に示すユーザ情報１３００を検索し、クエリを要求した分析ＤＢＭＳ名とユーザ名から、外部ＤＢサーバを利用する際の優先度を取得する（ステップＳ４２０３）。図１０のユーザ情報１３００は、分析者情報管理部２２５によって管理されているデータであり、分析サーバの変更、ユーザの変更に伴いシステム管理者またはシステム管理プログラムによって更新される。【００９４】
資源調整部２１１は、図１１にある優先度対応表１４００を参照し、ステップＳ４２０１で求めたＤＢＭＳの優先度と、ステップＳ４２０３で求めたユーザの優先度に対応する目標割当て量を取得する（ステップＳ４２０７）。優先度対応表１４００は、資源調整部２１１があらかじめ管理するクエリの優先度と目標割当て資源量の対応表である。資源調整部２１１は、取得した目標割当て資源量を、当該クエリの目標割当て資源量として、実行管理テーブル１１００の目標割当て資源１１１５に代入する。【００９５】
資源調整部２１１は、個々の外部のＤＢＭＳから取得したプランコスト情報より、区間の再計算と、割当てを変更する区間の番号を計算する（ステップＳ４２０９）。外部のＤＢＭＳが、分析サーバが要求するクエリのプランを生成すると、プランの詳細なコストや、並列実行が可能な部分などがわかる。資源調整部２１１は、プランコスト情報に基づき、ＤＢＭＳの特定の区間に関する情報を再構成する。資源調整部２１１は、実行プランにおいて、処理時間が一定時間を超える個所や、並列度が変わる個所において、仮の内部的な区間を設定する。例えば、図６の（イ）の部分において、表のスキャンで大幅に実行時間がかかる場合、表スキャンの部分を「１−ＤＢＭＳ４−内部区間１」、「１−ＤＢＭＳ４−内部区間２」などに分割する。また、処理に一定の時間がかかり、クエリを要求したＤＢＭＳに結果が返る個所を割当て変更区間とする。【００９６】
資源調整部２１１は、受信したプランコスト情報とステップＳ４２０７で計算した目標資源から最初の割当て変更区間に到達するまでに割り当てる基本割当て量を計算する（ステップＳ４２１１）。基本割当て量は、クエリの実行において外部ＤＢサーバの資源を占有できる場合など、後の判断処理で変更が不要な場合に割り当てる資源の量に相当する。プランコスト情報には、ステップＳ１０３４で計算したクエリ実行における特性情報が含まれている。資源調整部２１１は、割当ての対象となる区間の特性情報を参照し、実行プランのＣＰＵ利用特性が高い場合は、当該クエリに対するＣＰＵ資源を増やすことを決定する。また、並列実行度が高い場合についても、ＣＰＵ資源の割当てを増やす。これに対し、インデックスの操作などでＩ／Ｏ負荷が高い特性を持つ場合は、Ｉ／Ｏ資源を増やす。操作対象の表の大きさがあらかじめ決めた基準を超える場合は、メモリ資源を増やすことを決定する。この基準の値は、システム全体で決められた値、外部のＤＢＭＳごと設定した値を用いてもよい。【００９７】
資源調整部２１１は、処理対象となるクエリの実行区間内において、資源割当ての対象となる範囲が単一の外部ＤＢサーバ上かどうかを確認する（ステップＳ４２１３）。資源調整部２１１は、ステップＳ４２０９で計算した区間について、実行管理テーブル１１００の資源割当てを計算する区間内において複数の外部のＤＢＭＳでクエリが実行されるかどうかを確認する。このために、図１７の外部データベース情報２１００を参照し、実行対象となる外部のＤＢＭＳの物理サーバを確認する。対象区間において複数の外部のＤＢＭＳ上でクエリを実行し、それらの外部のＤＢＭＳが実際には１台の外部ＤＢサーバ上で動作している場合は、ステップＳ４２１５に進む。そうでない場合は、ステップＳ４２３３へ進む。なお、ステップＳ４２３３に進む際、ステップＳ４２０９で区間を再構成した場合は、クエリ全体の区間番号を更新する（上記の例では、「１−ＤＢＭＳ４−内部区間１」を「区間１」に、「１−ＤＢＭＳ４−内部区間２」を「区間２」に設定する）。【００９８】
資源調整部２１１は、同一のサーバで動作するＤＢＭＳのクエリに関して、区間、割当て変更区間を再計算する（ステップＳ４２１５）。資源調整部２１１は、まず、ステップ４２０９で計算した内部区間に関し、並行して動作するクエリを考慮して再計算する。分析サーバが設定した区間内で実行されるプランの中で、実行時間の見積もりが、一定時間(例:６０秒)かかるプランで分析サーバへの結果の返信があるプランを新しい区間として定義する。資源調整部２１１は、一定時間を超える区間については割当てを変更する区間として、実行管理テーブルの見直し区間１１１９に区間番号を追加する。また、資源調整部２１１は、ある区間ＮとＮ＋１を実行する際に、（ア）一方が区間Ｎで資源xを大量消費、他方が区間Ｎ＋１で資源yを少量消費、または（イ）一方が区間Ｎで資源xを少量消費、他方が区間Ｎ＋１で資源yを大量消費、のように区間の変わり目で、使用される資源が大きく異なる区間についても割当てを変更する。なお、分析サーバ１００の外部クエリ処理部１１１が、資源割当てを変更する区間を指定する手段を利用することもできる。【００９９】
資源調整部２１１は、当該区間のそれぞれの外部のＤＢＭＳのプランコスト情報を参照し、実行結果の出力方法と実行時間について確認する（ステップＳ４２１７）。例えば、ＤＢＭＳ３とＤＢＭＳ４を参照する４区間で構成されるクエリのうち、ステップＳ４２１５により区間１と区間２を同じ資源割当てで実行する場合、ＤＢＭＳ３の区間１と区間２の実行時間の見積もりの和が、ＤＢＭＳ４の区間１と区間２の実行時間の見積もりの和より大きく（例えば３倍）異なる場合は真と判定する。また、同じ例で、ＤＢＭＳ３とＤＢＭＳ４の区間１、２の中で、結果を少しずつ返す区間があれば真となる。クエリが該当する性質を持つ場合はステップＳ４２１９へ進む。そうでなければ、ステップＳ４２２１へ進む
図１３は、図１２に続き、資源調整部２１１が、資源割当てを確定する処理フローを示している。【０１００】
資源調整部２１１は、ステップＳ４２１７において結果を少しずつ返すクエリおよび実行時間の長いクエリに優先的に資源を割当てる（ステップＳ４２１９）。例えば、実行時間が短いクエリ、実行結果を最後にまとめて返すクエリは、Ｓ４２１１で計算した基本割当て量の計算結果の半分を、実行時間の長いクエリおよび結果を少しずつ返すクエリの資源量に割り当てる。結果が少しずつ返る場合、資源を優先的に割当てることで、クエリを要求した分析サーバが、上がってくる結果を元に後続の処理が開始できる。【０１０１】
資源調整部２１１は、同一区間に複数の外部のＤＢＭＳで実行されるクエリのプランコスト情報のうち、ＣＰＵの実行コストとＩ／Ｏの負荷コストの比率を比較する（ステップＳ４２２１）。システムで決められた比率を上回る偏りがある場合は、ステップＳ４２２３へ進む。そうでない場合は、ステップＳ４２２５へ進む。【０１０２】
資源調整部２１１は、同時に実行されるクエリがＣＰＵとＩ／Ｏの負荷特性が異なる場合、ＣＰＵ資源とＩ／Ｏ資源を比率の差に応じて配分する（ステップＳ４２２３）。例えば、ある区間においてＤＢＭＳ３のＣＰＵ利用コストが９０、Ｉ／Ｏコストが１０、ＤＢＭＳ４のＣＰＵ利用コストが１０、Ｉ／Ｏコストが９０の場合は、ＤＢＭＳ３とＤＢＭＳ４には、配分できる資源量のうち、それぞれの利用コストの割合を資源割当て量とする。【０１０３】
資源調整部２１１は、区間で実行されるクエリの並列実行度が高いかどうかを判定する（ステップＳ４２２５）。ここで判定に用いる基準値は、（ア）あらかじめ設定されて基準値や、（イ）クエリを実行するＤＢＭＳに対して割当てているコア数、を用いることができる。並列度が高いと判定された場合、ステップＳ４２２７に進む。そうでない場合は、ステップＳ４２２９に進む。【０１０４】
資源調整部２１１は、クエリの並列実行度が高い場合、ＤＢＭＳが動作するサーバが持つＣＰＵ（コア）を、優先度を考慮した上で、クエリを実行するＤＢＭＳに割当てる（ステップＳ４２２７）。資源調整部２１１は、管理対象となる外部ＤＢサーバごとに、図１５に示す資源管理テーブル２０００を保持する。資源管理テーブル２０００には、サーバに搭載されている資源の種類ごとに、資源の量と、未割当ての残り資源量、サーバ上で動作するＤＢＭＳごとの割当済み資源量が管理されている。資源調整部２１１は、ステップＳ４２０９で確定した割当て量の範囲内で、並列実行度が高いクエリのＤＢＭＳに、コアを割当てる。【０１０５】
資源調整部２１１は、同一の資源割当てで実行する区間内で、コストから必要とされるワークメモリが一定量より多いか判定する（ステップＳ４２２９）。該当する場合は、ステップＳ４２３１に進む。そうでない場合は、ステップＳ４２３３に進む。【０１０６】
資源調整部２１１は、クエリの実行に必要なワークメモリのサイズが大きい場合、ステップＳ４２０７で計算した割当て量、クエリが実行される外部ＤＢサーバの資源管理テーブル２０００、ステップＳ４２２９で計算した比率より、各ＤＢＭＳに追加するメモリ容量を確定する（ステップＳ４２３１）。【０１０７】
資源調整部２１１は、これまでのステップで確定した資源割当てを、図１６に示す資源割当てテーブル１６００に設定する（ステップ４２３３）。資源割当てテーブル１６００は、分析サーバ（１０１）が外部ＤＢサーバに送信するトランザクションごとに、利用する外部のＤＢＭＳの個数分、作成される。資源割当てテーブル１６００には、資源調整部２１１が割当てを決め、資源割当て部３２０が割当て実行する資源の要素について、目標とする資源量と実際に設定する資源量を記録する。資源調整部２１１は、計算で求めた資源割当てと、資源管理テーブル２０００の資源量より、目標とする割当て資源の量を設定する。資源割当てテーブル１６００の目標割当て資源で設定された量には、クエリを要求した分析サーバが外部ＤＢサーバを占有できる場合の理想とする資源量が設定される。資源割当てテーブル１６００の設定資源は、初期値として、目標割当て資源と同じ量が登録される。例えば、すでに別のクエリが動作しており、当該クエリを並列に実行する場合は、ステップＳ４２３５などの後のステップの計算により、調整された資源量が登録される。【０１０８】
資源調整部２１１は、ステップＳ４２３３で設定した資源量と、図１５の資源管理テーブル２０００の残りの資源量を比較し、割当て可能かを判定する（ステップＳ４２３４）。割当て可能な場合、処理を完了する。そうでない場合は、ステップＳ４２３５を実行する。【０１０９】
資源調整部２１１は、資源割当てができない場合、実行管理テーブル１１００の設定資源１１１７と優先度対応表１４００を参照し、現在設定されている設定資源１１１７よりも低い優先度の割当て量を検索する。割り当てる資源の種類について、検索した割当て量での割当て資源量を計算する（ステップＳ４２３５）。【０１１０】
資源調整部２１１は、資源割当ての計算が完了すると、クエリの実行で使用する外部ＤＢサーバに対し、資源割当要求を送付する。この処理の流れは以下となる。資源調整部２１１は、確定した資源割当て、資源割当てテーブル１６００の設定資源の値を、資源管理テーブル２０００の残りの資源量から引き、各ＤＢＭＳの資源量に加算する。資源調整部２１１は、複数の外部のＤＢＭＳの資源を変更するかどうか判定する。複数の外部のＤＢＭＳの資源を変更する場合、資源調整部２１１は、図１７の外部データベース情報２１００を参照し、変更対象となるデータベースが同一の物理サーバかどうかを確認する。外部データベース情報２１００は、外部のＤＢＭＳごとに、接続するために必要なアドレス、ポート番号、ユーザ名とパスワード、データの規模、接続する可能性のある分析データベース数の情報を保持する。１台の物理サーバ上で複数の外部のＤＢＭＳが動作している場合は、複数のＤＢＭＳに対する資源割当て要求をひとつの割当て要求として送信する。資源の割当て対象となるＤＢＭＳがひとつの場合、または、複数のＤＢＭＳがそれぞれ異なる物理サーバで動作している場合には、それぞれの資源割当て要求として、該当する外部ＤＢサーバへ資源割当て要求を送信する。【０１１１】
資源調整部２１１の処理（３）は、外部ＤＢサーバから資源割当て完了を受信し、分析サーバへクエリ前処理の完了を送信する。【０１１２】
資源調整部２１１は、外部ＤＢサーバ３００の資源割当て部３２０より、資源割当て完了メッセージを受信する。資源調整部２１１は、実行管理テーブル１１００の当該クエリ実行に関する応答待ち１１１３の個数を１減らす。【０１１３】
資源調整部２１１は、当該クエリ実行における応答待ち数１１１３の値が０かどうかを判定する。０でない場合は、区間内で複数の外部ＤＢサーバでクエリが並行に実行される場合であり、他の外部ＤＢサーバへの資源調整依頼の完了通知を待つ。【０１１４】
資源調整部２１１は、応答待ち数１１１３が０の場合、分析サーバ１００のＤＢＭＳ１（１０１）にクエリ処理準備完了を通知する。資源調整部２１１は、実行管理テーブル１１００のステータス１１１１を実行中に更新する。次に、資源調整部２１１は、外部ＤＢサーバを利用する分析サーバ１００のＤＢＭＳ１（１０１）にクエリ処理準備完了を送信する。資源調整部２１１は、クエリ処理準備完了を送信する際、資源割当ての計算時に、実行管理テーブル１１００の見直し区間１１１９に記録した区間情報を同時に含める。ステップＳ４２１３、ステップＳ４２１５にて区間を再構成した場合、資源調整部２１１は、再構成した区間情報についても送信する。また、資源調整部２１１は、分析サーバが送信する区間完了メッセージを受信するため、実行管理テーブル１１００の応答待ち１１１３をセットする。【０１１５】
資源調整部２１１の処理（４）は、分析サーバからクエリ実行区間完了を受取り、資源割当てを再計算する。図１４は、この処理フローを示している。本処理フローの前提として、資源調整部２１１は、分析サーバ１００のＤＢＭＳ１（１０１）が、ステップＳ１１１９で送信する区間完了の通知を受信する。資源調整部２１１は、通知を受信すると、実行管理テーブル１１００の応答待ち１１１３に格納されている応答待ち数を１減らし、同一区間の完了通知がそろうまで待つ。資源調整部２１１は、区間完了の通知がそろうと、実行管理テーブル１１００の区間ＩＤ（１１０７）更新して、図１４のフローを開始する。【０１１６】
資源調整部２１１は、完了した区間が最後の区間であったかどうかを確認する（ステップＳ４４０７）。このために、資源調整部２１１は、実行管理テーブル１１００にある全区間数１１０５と、ステップＳ４４０５で更新した区間ＩＤ（１１０７）を比較する。全区間数１１０５と区間ＩＤ（１１０７）が一致していれば、最後の区間の実行が終わったことを意味し、ステップＳ４４０９に進む。一致しなければ、資源調整部２１１が資源割当て時に算出した、再割当てを実施する区間に到達したことを意味し、ステップＳ４４１１に進む。【０１１７】
資源調整部２１１は、実行管理テーブル１１００、優先度対応表１４００および資源管理テーブル２０００を参照し、当該クエリを実行するために追加した資源量を算出する（ステップＳ４４０９）。クエリの処理が終了したため、実行管理テーブル１１００の１１１８にリンクされている資源割当てテーブル１６００の設定資源を解放する。さらに資源調整部２１１は、実行管理テーブル１１００に登録され、並列に実行している他のクエリの中から、設定資源１１１７が目標資源１１１５に達していないクエリを検索し、不足している資源を割当ててもよい。【０１１８】
資源調整部２１１は、当該クエリに関して、実行管理テーブル１１００に格納されている情報、実行管理テーブルからたどれるクエリおよびプランコスト情報より、次の区間を実行するための資源割当てを再計算する（ステップＳ４４１１）。【０１１９】
資源調整部２１１は、ステップＳ４４０９、Ｓ４４１１で決定した資源の割当てを外部ＤＢサーバに依頼する（ステップＳ４４１３）。詳細の実行内容は、既に記載した、資源割当ての完了時に外部ＤＢサーバへ資源割当て要求を送信する方法と同様の方法が利用できる。トランザクションが最後の区間の場合は、当該クエリのトランザクションの情報を実行管理テーブル１１００から削除する。【０１２０】
外部ＤＢサーバ３００の資源割当て部３２０は、管理サーバ２００の資源調整部２１１から資源割当て要求を受け付けると、ＤＢＭＳ３（３４０）、ＤＢＭＳ４（３７０）と協調し、オペレーティングシステム（ＯＳ）（３０９）の機能を用いて資源の追加・削除を行う。例えば、ＤＢＭＳがＯＳのアプリケーションプロセスとして動作しており、ＣＰＵ資源の変更を行う場合は、実行するコアを指定するアフィニティ機能を用いて利用コア数を増減させる。また、資源割当て部３２０は、コア数の変更だけでなく、プロセスの実行優先度の変更を行ってもよい。外部ストレージのＩ／Ｏに関する資源を変更する場合、資源割当て部３２０は、対象となるＤＢＭＳが用いるＩ／Ｏデバイスの帯域を、外部ストレージの管理機能を用いて調整する。メモリ資源を割当てる場合、資源割当て部３２０は、ＯＳ（３０９）が管理するメモリに空きがあることを確認し、ＤＢ基本情報管理部３５３、３８３）にメモリ割当てを通知する。ＤＢ基本情報管理部（３５３、３８３）は、通知された情報を元に作業メモリを確保する。メモリ資源を減らす場合、資源割当て部３２０は、ＤＢ基本情報管理部（３５３、３８３）へ解放依頼を通知する。通知を受け取ったＤＢ基本情報管理部（３５３、３８３）は、作業メモリを解放する。【０１２１】
ＯＳが提供するコンテナ機構上でＤＢＭＳが動作している場合、資源割当て部３２０は、ＣＰＵ資源の変更として、コンテナの管理機能を用いて、コンテナに割り当てているＣＰＵ利用率を増減する、もしくは、実行するコア数を増減することにより割当てを変更する。ディスクＩ／Ｏ資源の変更を行う場合、資源割当て部３２０は、コンテナが利用するＩ／Ｏデバイスへの予約帯域を変更する。ネットワークについても同様の帯域変更を行う。メモリ資源を増やす場合は、資源割当て部３２０が、コンテナに割り当てるメモリを追加し、ＤＢＭＳ３，４（３４０、３７０）のＤＢ基本情報管理部（３５３、３８３）に通知する。ＤＢ基本情報管理部（３５３、３８３）は、通知された情報を元に、クエリの実行で使用する、中間表を置くための作業メモリを確保する。メモリ資源を削減する場合は、先に中間表などのメモリ領域を解放しておき、ＤＢ基本情報管理部（３５３、３８３）が資源割当て部３２０に通知することで、コンテナに割り当てている一部のメモリを、コンテナの利用対象から外す。【０１２２】
ＤＢＭＳ３、４（３４０、３７０）が仮想化機構を用いた仮想マシンの中のアプリケーションである場合、資源割当て部３２０は、ＯＳ（３０９）で動作する仮想化基盤およびＤＢＭＳと協調して資源割当てを実行する。ＣＰＵ資源の増減を行う場合、資源割当て部３２０は、対象となるＤＢＭＳが動作している仮想マシンのＣＰＵ利用率、または実行コア数を変更する。さらに、資源割当て部３２０は、仮想マシン上のＯＳの機能を利用し、ＤＢＭＳへ割当てる仮想ＣＰＵのコア数、利用率を変更してもよい。Ｉ／Ｏ資源の増減を行う場合、資源割当て部３２０は、対象となるＤＢＭＳが動作する仮想マシンが使用している仮想デバイスのＩ／Ｏ帯域を変更する。メモリ資源を追加する場合、資源割当て部３２０は、仮想化基盤の機能を用いて、対象となるＤＢＭＳが動作する仮想マシンに割当てるメモリを増やす。資源割り当て部３２０は、仮想マシン上のＤＢＭＳと通信を行い、ＤＢ基本情報管理部（３５３、３８３）へメモリ追加を通知する。なお、仮想マシン内にメモリが十分ある場合は、仮想マシンに対するメモリ増設は省略してもよい。メモリ資源を減らす場合、資源割り当て部３２０は、仮想マシン上のＤＢＭＳと通信を行い、ＤＢ基本情報管理部（３５３、３８３）へメモリ解放を通知し、ＤＢＭＳが利用するメモリの一部を解放する。資源割当て部３２０は、仮想化基盤の機能を用いて、仮想マシンへのメモリ割り当てを減らす。【０１２３】
資源割当て部３２０は、資源割当てが完了すると、管理サーバ２００に資源割当て変更完了を通知する。【０１２４】
図５のクエリは、既に述べたとおり、分析サーバにて売り上げをソートしその上位１０件について、経済指標と、ＳＮＳに検索を行っている。図６の実行プランに示すように、上位１０件が決まるまで外部ＤＢサーバへの検索が行えない。【０１２５】
図１８は、図５とは異なるクエリの例を示している。図１８のクエリは、分析サーバのＤＢＭＳ１に格納されている売上データのうち、２０１３年の売上について、２０１３年の商品別の売上、経済指標、ソーシャルメディアで個々の商品が取り上げられた数を計算する。経済指標は、商品と関係なく求めることができるため売上表の検索と経済指標の検索は、同時に実行することができる。また、経済指標の検索コストはＳＮＳ表の検索よりも処理コストが低いため、先に経済指標の結果を求め、実行完了後にＳＮＳの情報を蓄積したＤＢＭＳ４に資源を割当てる方が効率がよい。このように、クエリ実行ごとに資源割当てを行うことで、クエリの実行に最適な割当てとなり、クエリを高速に実行することができる。
【実施例２】
【０１２６】
図１９は、異なる実施形態であり、図１における管理サーバ２００の機能と外部ＤＢサーバ３００の機能が同一の計算機上である外部ＤＢサーバ１８００で動作する例を示している（ＣＰＵ等のハードウェアとソフトウェアモジュールの詳細は省略している）。外部ＤＢサーバ１８００を用いる場合、資源調整部２１１、外部のＤＢＭＳ（３４０、３７０）および資源割当て部３２０の通信は、計算機間の通信に通常用いられるネットワークインタフェースカード（ＮＩＣ）ではなく、より軽量に処理できるプロセス間通信を用いる。具体的には、資源調整部２１１から外部ＤＢＭＳへのクエリのプランコスト情報の要求、外部ＤＢＭＳから資源調整部２１１へのプランコスト情報の送信、資源調整部２１１から資源割当て部３２０への資源割当て要求（再割当てを含む）、資源割当て部３２０から資源調整部２１１への割当て完了通知、が該当する。なお、プロセス間通信の実現方式として、共有メモリへのデータの読み書きを利用してもよい。【０１２７】
資源調整部２１１は、図１９の構成は図１の構成よりも通信オーバヘッドが削減されるため、ステップＳ４２０９やＳ４２１５で利用する同一区間で実行するかどうかを判定するための時間を、より短い時間にできる。【０１２８】
資源調整部２１１と外部ＤＢ管理部２２１は、資源管理テーブル２０００、外部データベース情報２１００で管理する資源の情報を、外部ＤＢサーバ１８００のＯＳに直接問い合わせて利用することができる。資源調整部２１１と外部ＤＢ管理部２２１は、直接利用することで、ＯＳが管理するより正確な資源量で資源の割当て計算ができる。
【実施例３】
【０１２９】
図２０は、更に異なる実施例であり、外部データを管理するＤＢＭＳが、それぞれ別々のサーバ上で動作し、データは共有ストレージに格納されている例を示している。外部ＤＢ管理部２２１は、外部データベース情報２１００のストレージの情報領域を用いて、ＤＢＭＳのデータ格納に関する情報を管理する。これにより、ＩＰアドレスや物理サーバ名が異なる場合でも、ストレージ装置が共有される場合が検出できる。資源調整部２１１は、ステップＳ４２１３において、割当て対象が同一かどうかを判定する際、ストレージの性能と共有状態により、サーバが異なる場合でも、ステップＳ４２１５のフローを実行し、Ｉ／Ｏ資源の割当てを調整する。【０１３０】
資源調整部２１１が共有ストレージの資源割当てを増減する場合、資源割当て部１（２５１０）、資源割当て部２（２５２０）は、共有ストレージ内のキャッシュ量の増減や帯域の増減も考慮して資源割当てを行う。また、ストレージ装置が複数のＩ／Ｏポートを持ち、使用するポートの本数を変えることで帯域を変えられる場合は、ストレージ装置の管理機能を用いて、ポートの設定を変えてもよい。【０１３１】
また、各外部ＤＢサーバに複数のインスタンスが用意できる場合（例えば、外部ＤＢサーバ１（２４０１）にＤＢＭＳ３（３４０）の実行バイナリの他に、ＤＢＭＳ４（３７０）の実行バイナリも配置）、資源調整部２１１は、外部ＤＢサーバ１（２５０１）でＤＢＭＳ４（３７０）を起動してクエリを実行するよう管理することもできる。例えば、ステップＳ４２０１とＳ４２０３で高い優先度で実行するクエリの割り当てが、ステップＳ４２３３で割り当てできなかった場合に、ステップＳ４２３５を実施する代わりに、ストレージを共有する別の外部ＤＢサーバ上で当該クエリを実行するＤＢＭＳを起動する。また、別の例としては、ステップＳ４２１５でクエリ区間と割り当て変更区間を再計算する際に、資源調整部２１１は、実行管理テーブル１１００と資源管理テーブル２０００を参照し、一方のＤＢＭＳが動作するサーバの残りの資源量が、予め設定した基準値を下回っている場合は、他方のサーバにクエリを実行するＤＢＭＳを起動する。ＤＢＭＳを起動する場合、資源調整部２１１は、対象となるサーバの資源割当て部に依頼を出す。サーバの資源割当て部は、依頼に基づき、ＤＢＭＳを起動する。資源調整部２１１は、同一のＤＢＭＳに対して複数の外部ＤＢサーバがある場合、ステップ１０７３で送信するクエリ処理準備完了において、クエリをどのサーバへ要求すべきかを分析サーバへヒント情報として通知する。【０１３２】
なお、資源調整部２１１は、外部ＤＢサーバ１でのＤＢＭＳ４（３７０）のクエリ実行に関して、資源が不足した場合にＤＢＭＳを起動するのではなく、事前に起動状態にしておき、資源が不足した場合に、外部ＤＢサーバ１のＤＢＭＳでクエリを実行するよう管理をしてもよい。
【実施例４】
【０１３３】
図２１は、外部データのＤＢＭＳが、別々の外部ＤＢサーバ上で動作し、ストレージが個々のサーバに接続される別の実施例の構成の一部を示している。この例では、ストレージを共有していないが、ストレージ２５１０とストレージ２５４０には同一のデータＳＮＳ３８７を保持している。ＳＮＳに関するクエリを実行するＤＢＭＳ４（３７０）は、外部ＤＢサーバ１（２５０１）と外部ＤＢサーバ２（２５３１）の両方で実行できる。外部ＤＢ管理部２２１は、外部データベース情報２１００のストレージの情報として、当該データが書かれているサーバを記録すると共に、当該ＤＢＭＳと同じ役割を提供する別サーバの情報を記録する。例えば、ＤＢＭＳ６がＳＮＳのクエリを実行する別のＤＢＭＳである場合、外部ＤＢ管理部２２１は、外部データベース情報２１００においてＤＢＭＳ４の別サーバの欄にＤＢＭＳ６を登録する(この場合、図１７では図示されていないが、ＤＢＭＳ６の行も別途登録される)。【０１３４】
資源調整部２１１は、同一の外部データのクエリを実行する外部ＤＢサーバが複数存在する場合、ステップＳ１０２２の外部ＤＢサーバへのプランコスト情報の要求の際、候補となる全ての外部ＤＢサーバに依頼する。資源調整部２１１は、ステップＳ４２０９において、得られたプランコスト情報より、どのＤＢＭＳに問い合わせを行うかを選択する。例えば、コスト情報と利用可能な資源情報から一番実行時間が短いＤＢＭＳを選択し、そのＤＢＭＳの実行プランで区間の再計算と割当てを変更する区間を選択する。もしくは、処理する外部データごとに優先的に利用するＤＢＭＳをひとつまたは複数決めておき、対象のＤＢＭＳのみプランコスト情報を依頼してもよい。【０１３５】
また、資源調整部２１１は、実施例３と同様に、ステップＳ４２３３で割り当てが行えない場合は、ステップＳ４２３５の代わりに、同一の外部データのクエリを実行する別のＤＢＭＳを選択して、資源割当てが可能かを計算する。
【符号の説明】
【０１３６】
１０１  分析サーバ１、１０９  プラン生成部、１１１  外部クエリ処理部、１１３  ＳＱＬ実行部、２００  管理サーバ、２１１  資源調整部、３００  外部ＤＢサーバ、３２０  資源割当て部、３４７  プラン生成部、３４９  プラン情報連携部、３７７  プラン生成部、３７９  プラン情報連携部、１１００  実行管理テーブル、１２００  分析ＤＢ情報、１３００  ユーザ情報、１４００  優先度対応表、２０００  資源管理テーブル、２１００  外部データベース情報
【図１】
2016092604.tif 000003
【図２】
2016092604.tif 000004
【図３】
2016092604.tif 000005
【図４】
2016092604.tif 000006
【図５】
2016092604.tif 000007
【図６】
2016092604.tif 000008
【図７】
2016092604.tif 000009
【図８】
2016092604.tif 000010
【図９】
2016092604.tif 000011
【図１０】
2016092604.tif 000012
【図１１】
2016092604.tif 000013
【図１２】
2016092604.tif 000014
【図１３】
2016092604.tif 000015
【図１４】
2016092604.tif 000016
【図１５】
2016092604.tif 000017
【図１６】
2016092604.tif 000018
【図１７】
2016092604.tif 000019
【図１８】
2016092604.tif 000020
【図１９】
2016092604.tif 000021
【図２０】
2016092604.tif 000022
【図２１】
2016092604.tif 000023
【手続補正書】
【提出日】平成29年2月14日(2017.2.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第一のＤＢＭＳと複数の第二のＤＢＭＳと管理サーバを備えるデータ処理システムであって、
前記第一のＤＢＭＳは、
第一のクエリを受信する外部受信部と、
前記外部受信部が受信した前記第一のクエリから他のＤＢＭＳが管理するデータを抽出し、抽出したデータを同時に処理することができるデータの範囲である複数の区間に分割し、分割した区間ごとに第二のクエリを生成する外部クエリ処理部と、
クエリを配布するクエリ配布部と、
配布したクエリの処理結果を受け取るクエリ回収部とを備え、
前記第二のＤＢＭＳは、
クエリを受信する受信部と、
受信したクエリを処理するクエリ処理部と、
前記第二のクエリの実行プランとコストを回答するプラン情報連携部と、
前記クエリ処理部が処理した結果を前記第一のＤＢＭＳへ送信する送信部とを備え、
前記管理サーバは、
配布された複数の前記第二のクエリの実行プランとコストを問い合わせ、受け取った実行プランとコストを基に区間を変更し、変更された区間に基づき前記第二のクエリを実行する計算機リソース量を算出し、変更された区間に基づき第三のクエリの作成と配布を前記第一のＤＢＭＳへ通知する資源調整部を備え、
前記第二のＤＢＭＳが前記第三のクエリを配布された計算機リソース量に基づいて処理した結果を前記第一のＤＢＭＳへ送付し、
前記第一のＤＢＭＳが送付された前記第三のクエリの処理結果を集計することを特徴とするデータ処理システム。
【請求項２】
前記外部受信部は複数のユーザからのクエリを受け付け、前記資源調整部はＤＢＭＳの優先度とユーザの優先度を基に資源割当て量を定めた優先度対応表を参照し、
クエリを受け付けたユーザと、前記クエリが参照するＤＢＭＳに基づき資源割当て量を決定し、
前記第三のクエリを作成することを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
外部受信部と外部クエリ処理部、クエリ配布部及びクエリ回収部を備える第一のＤＢＭＳと、受信部とクエリ処理部及びプラン情報連携部を備える複数の第二のＤＢＭＳと、管理サーバを備えるデータ処理システムのデータ処理方法であって、
前記第一のＤＢＭＳが備える前記外部受信部が第一のクエリを受信し、
前記外部クエリ処理部は、前記外部受信部が受信した前記第一のクエリから他のＤＢＭＳが管理するデータを抽出し、抽出したデータを同時に処理することができるデータの範囲である複数の区間に分割し、分割した区間ごとに第二のクエリを生成し、
前記クエリ配布部が生成した複数の前記第二のクエリを配布し、
前記管理サーバの資源調整部は、配布された複数の前記第二のクエリの実行プランとコストを問い合わせ、
前記第二のＤＢＭＳの前記プラン情報連携部が前記第二のクエリの実行プランとコストを回答し、
前記管理サーバの資源調整部は、受け取った実行プランとコストを基に区間を変更し、変更された区間に基づき前記第二のクエリを実行する計算機リソース量を算出し、変更された区間に基づき第三のクエリの作成と配布を第一のＤＢＭＳに通知し、
前記第一のＤＢＭＳの前記クエリ配布部は、通知された前記第三のクエリを配布し、
前記第二のＤＢＭＳの前記受信部は、前記クエリ配布部が配布した前記第三のクエリを受信し、
前記クエリ処理部が受信した前記第三のクエリを処理し、
前記第二のＤＢＭＳが前記第三のクエリを配布された計算機リソース量に基づいて処理した結果を前記第一のＤＢＭＳへ送付し、
前記第一のＤＢＭＳの前記クエリ回収部が送付された前記第三のクエリの処理結果を集計することを特徴とするデータ処理システムのデータ処理方法。
【請求項４】
前記外部受信部は複数のユーザからのクエリを受け付け、前記資源調整部はＤＢＭＳの優先度とユーザの優先度を基に資源割当て量を定めた優先度対応表を参照し、
クエリを受け付けたユーザと、前記クエリが参照するＤＢＭＳに基づき資源割当て量を決定し、
前記第三のクエリを作成することを特徴とする請求項３に記載のデータ処理システムのデータ処理方法。
【国際調査報告】
2016092604.tif 000024
2016092604.tif 000025
2016092604.tif 000026
2016092604.tif 000027