JP6262505B2 - 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム - Google Patents
分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム Download PDFInfo
- Publication number
- JP6262505B2 JP6262505B2 JP2013246938A JP2013246938A JP6262505B2 JP 6262505 B2 JP6262505 B2 JP 6262505B2 JP 2013246938 A JP2013246938 A JP 2013246938A JP 2013246938 A JP2013246938 A JP 2013246938A JP 6262505 B2 JP6262505 B2 JP 6262505B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- query
- data
- distributed
- plan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
代表的なデータ仮想化システムは、例えば特許文献1に示されるように、複数の階層的なデータベースシステムを、データマッピングにより仮想スキーマ(実際の物理テーブルをユーザに提供する論理テーブルに変換する処理を定義したもの)に統合し、クエリ実行時において処理対象となるデータを保持するデータベースシステムにクエリを分配するよう構成されている。各データベースシステムで実行されたクエリの結果は中央に収集され、仮想スキーマに従って一つに統合して結果を出力するシステムとなっている。
OSのスワップ機構もしくはデータ仮想化システムのディスク退避の機能の実装によってある程度のサイズまでは対応可能であると考えられるが、それによる遅延は非常に大きく、その許容量を超えてしまった場合にも同様に終了してしまうという問題がある。
前記データ仮想化装置は、複数のデータ仮想化装置から構成し、
前記各データ仮想化装置は、
前記クエリ処理の手順を定義したクエリプランと前記リソース量及び前記テーブル情報を考慮し、クエリ処理を並列実施する複数のデータ仮想化装置の選定と当該複数のデータ仮想化装置でのクエリ処理内容とを含む分散処理計画を作成する分散処理計画部と、
分散処理するデータ仮想化装置群に前記分散処理計画を分配する処理計画配置部と、
前記分散処理計画に応じて各データベースシステムから取得した処理対象データをレコード単位で他のデータ仮想化装置に分配又は当該データ仮想化装置で受信するデータ分散部と、
前記分散処理計画に従った処理を行うクエリ処理部と、
前記分散処理計画に従った処理の結果を各クエリ処理部から受信し、集計した結果を前記クライアントに送信するデータ集計部とを備えることを特徴としている。
前記クライアントからクエリ処理要求があった場合に、
クエリ処理の手順を定義したクエリプランを作成するクエリプラン作成手順と、
前記クエリプランと前記リソース量及び前記データベースシステムが有するテーブル情報を考慮して、クエリ処理を並列実施する複数のデータ仮想化装置の選定と当該複数のデータ仮想化装置での分散クエリ処理内容とを含む分散処理計画を作成する分散処理計画手順と、
分散処理するデータ仮想化装置群に前記分散処理計画を分配する処理分配手順と、
前記分散処理計画に応じて各データベースシステムから取得した処理対象データをレコード単位で分配又は受信するデータ分散手順と、
前記分散処理計画に従った処理を行うクエリ処理手順と、
前記分散処理計画に従った処理の結果を受信し、集計した結果を前記クライアントに送信するデータ集計手順と
を含むことを特徴としている。
前記分散処理計画手順は、 前記分散クエリ処理内容から各データベースシステムから得られる分散クエリ結果の容量を計算する手順と、
計算された容量から、実際の物理テーブルをユーザに提供する論理テーブルに変換する処理を定義した仮想スキーマで得られるテーブルや中間テーブル、最終的な結果の出力容量と、前記仮想スキーマの処理における最大処理容量を計算する手順と、
計算された容量を利用して、必要なデータ仮想化装置の数及び適用先のデータ仮想化装置を決定するデータ仮想化装置群選択手順と
を含むことを特徴としている。
前記データ仮想化装置群選択手順は、
前記クエリプランから作成したプランツリーを根(クエリ結果)から順に前記クエリ処理を実行するノードを決める対象となるテーブルを降順探索する手順と、
前記テーブルが仮想スキーマにおける出力テーブルである場合に、当該仮想スキーマにおける最大出力容量と、データ仮想化装置群における利用状況及び利用可能メモリサイズからデータ仮想化装置群を選択する手順と
を含むことを特徴としている。
前記データ分散手順は、
前記各データベースシステムから前記処理対象データを取得する手順と、
前記処理対象データを処理するデータ仮想化装置をレコード単位で判定する手順と
を含むことを特徴としている。
前記クエリ処理手順は、
処理完了により次の処理を行う場合に、
単項演算であるか二項演算であるかを判定する手順と、
二項演算である場合は、二項演算の完了通知を待って次の処理を行うためのデータ移動とクエリ処理を行う手順と
を含むことを特徴としている。
であることを特徴している。
また、仮想スキーマを利用した分散による並列性の向上を実現することができる。
また、仮想スキーマの処理を独立化することにより、クエリ再実行の効率化及び仮想化対象のデータベースシステムの負荷軽減を実現することができる。
本発明の分散型データ仮想化システムは、データ仮想化システムにおいて、一台のデータ仮想化装置では処理しきれない大規模なデータを、複数のデータ仮想化装置に分散して並列処理を行うシステムであり、図1に示すように、システムを利用するクライアント1と、分散型データ仮想化システム管理装置2と、1つ以上のデータ仮想化装置3と、分散型データ仮想化システムが利用する1つ以上のデータベースシステム4から構成されている。
各データ仮想化装置3と、クライアント1及び分散型データ仮想化システム管理装置2とはネットワークXを介して接続されている。また、各データ仮想化装置3と各データベースシステム4とはネットワークYを介して接続されている。
例えば、上述した構成を有する各コンピュータにおいて、メディアドライブ装置で読み取られたクエリ処理プログラムがHDDにインストールされることで分散型データ仮想化システムが構築される。
ここでは、クライアント1からテーブルaへのSQLクエリが投稿されたとする。データ仮想化装置3上では、テーブルaに対して、テーブルsとテーブルtのUNION処理の結果が仮想スキーマaと定義されている。テーブルsは、実際にはデータベースシステムS上にあるテーブルであり、テーブルtは、データベースシステムTにあるテーブルである。
それぞれのデータベースシステム4の処理結果は、クエリを投稿したデータ仮想化装置3に収集され、予め作られたクエリ(UNION)処理を実行してクライアント1に送信される。
分散クエリ生成部32は、データソース管理データ22からテーブル情報を取得Bし、この情報を基にクエリプランに従って適切なデータベースシステム4向けのクエリを生成(再構成)する(図4)。
分散クエリ投稿部33は、分散クエリ生成部32で生成したクエリを各データベースシステム4に投稿Cする(図3)。
処理計画配置部35は、分散処理するデータ仮想化装置群に分散処理計画部34で生成した分散処理計画を分配Gする(図3)。
データ分散部37は、リソース管理データ21からリソース情報を受信Jするとともに、処理計画配置部35から分散処理計画を受け取り、この計画に基いて各データベースシステム4から受信したクエリ実行結果をレコード単位で各データ仮想化装置3のデータ分散部37に分配K又は受信する(図5)。
クエリ処理部38は、データ分散部37との間で分散処理計画に基いた処理Lを行う(図5)。
データ集計部39は、処理Lの結果を各クエリ処理部38から受信Mして集計し、その結果をクライアント1の分散コネクタ11に転送Oする(図5)。
なお、データ仮想化装置を構成する各データ仮想化装置3は、それぞれ同様の機能を備えて構成されている。
ユーザは、クライアント1の分散コネクタ11を経由してクエリを投稿する。
クエリ評価部31はクエリを受け取り、クエリの処理対象となるテーブルに対応する仮想スキーマをモデルデータ23から呼び出し、ユーザが投稿したクエリに仮想スキーマの処理を適用した形でクエリプランを生成する。
このクエリプランには、データ仮想化装置(以下、ノードと称する)3群に接続されたデータベースシステム4群の実際のテーブルが含まれる。
分散クエリ投稿部33は、この実行可能なクエリを、対象となるデータベースシステム4にそれぞれ投稿する。
分散処理計画部34における処理手順について、図6及び図7を参照して説明する。
次に、モデルデータ23及びデータソース管理データ22を取得し(ステップ62)、プランツリー上の処理内容から各データベースシステム4から得られる分散クエリ結果の容量を計算する(ステップ63)。
計算した容量を利用して、必要なノードの数及び適用先のノード(自身なのか別なのか)を決定する(ステップ65)。このとき、最終的にデータを収集するノード3が、現在分散処理を作成しているノード3と異なる場合には(ステップ66)、クライアント1の分散コネクタ11に接続先変更を依頼し(ステップ67)、分散処理計画を完了する(ステップ68)。
このような処理を行うことで、分散クエリ結果の容量と、仮想スキーマの処理における最大処理容量が考慮されるので、適切なノードの選択が可能となる。
ユーザが投稿したSQLクエリは、図7の例のように、3つのSQLクエリに分解される。これらのうち物理モデルであるテーブルsとテーブルtへのクエリの結果は、中間テーブルとしてノード3上に収集され、仮想スキーマaで定義されたUNION処理の対象として処理される。
処理ノード群の選択が開始された場合(ステップ81)、作成したプランツリーを根(クエリ結果)から順に、クエリ処理を実行するノードを決める対象となるテーブルを降順探索する(ステップ82)。
ステップ84のテーブル種別で、論理テーブルを発見した場合、当該仮想スキーマにおける最大出力容量と、ノード群における利用状況及び利用可能メモリサイズからノード群を選択する(ステップ85)。
なお、仮想スキーマ内のテーブルである場合は、仮想スキーマ全体で処理容量を計算しているため、ここでは無視して再度探索を続ける。
ここで空いているノードがない場合、すでに実行されている処理が最も早く終わると考えられるノードを選択し、対象ノードのリソース管理データの処理待ちキューの対象として記録される。
このように、仮想スキーマをベースとしたノード群の選択を行うことで、依存性のあるテーブル間の処理を特定のノードに集めることができ、クエリ処理に対して高い並列性を出すことが可能となる。
各データベースシステム4にクエリを投稿したノード3において、データベースシステム4の実行結果が受信されると(ステップ91)、クエリ結果受信部36は、この結果データをストリーム的にデータ分散部37に1レコードずつ渡す(ステップ92)。
したがって、ノード3を判定するに際して、前記処理対象データを処理するデータ仮想化装置をレコード単位で判定するので、処理に適したノードが選択可能となる。
ここで、事前に計算した最大処理容量の誤差等でノード3のメモリに空きがなくなった場合、リソース管理データから代替のノード3を決定し、分散処理計画を修正後に全利用ノード3に再配布し、レコードを対象のノード3に転送する(ステップ93)。
転送の可否が判断され(ステップ94)、データソース管理データ22上も空きノード3がなく転送できない場合には、分散処理計画部34と同様に、すでに実行されている処理が最も早く終わると考えられるノード3を代替ノードとして選択する(ステップ95)。
続いて、処理続行の可否を判断する(ステップ98)。例えば、演算が二項処理(2つの演算結果が必要)であって、もう片方のテーブルの受信が完了してない場合や、処理待ちキューに登録されている場合は、それぞれの完了通知が配布されるまで実行は開始されない。全ての完了通知が配布されて初めて、対象ノードのクエリ処理部38におけるクエリ処理が開始される(ステップ99)。
クエリ処理部38では、処理終了後(ステップ101)、残処理の有無を判断し(ステップ102)、他の処理が残っている場合は、分散処理計画に従って次の処理内容を続行する(ステップ103)。
他の処理が残っていない場合は、分散処理計画に従ってデータ集計部39に転送する(ステップ104)。
したがって、クエリ処理を行うに際し、二項演算の完了通知を待って次の処理を行うようにしたので、計画に沿ったクエリ処理を確実に行うことが可能となる。
完了した処理がクエリツリー上の最も根に近い最終処理の場合は、クエリ処理全体が完了となることから、最終処理の結果をデータ集計部39に転送する。
また、仮想スキーマ単位でテーブルを処理することで、複数仮想スキーマに対して仮想スキーマ毎にデータ仮想化装置(ノード)3へ分散することにより、並列性の向上を実現することができる。
また、仮想スキーマの処理を仮想スキーマ単位に独立化することにより、クエリ再実行の効率化及び仮想化対象のデータベースシステムの負荷軽減を実現することができる。
Claims (7)
- クエリ処理要求と結果受信を行うクライアントと、クエリ処理を行うデータ仮想化装置と、前記データ仮想化装置が利用する1つ以上のデータベースシステムと、前記データ仮想化装置のリソース量に関する情報、及び、前記データベースシステムが有するテーブル情報を管理する分散型データ仮想化システム管理装置と、を備えた分散型データ仮想化システムにおいて、
前記データ仮想化装置は、複数のデータ仮想化装置から構成し、
前記各データ仮想化装置は、
前記クエリ処理の手順を定義したクエリプランと前記リソース量及び前記テーブル情報を考慮し、クエリ処理を並列実施する複数のデータ仮想化装置の選定と当該複数のデータ仮想化装置でのクエリ処理内容とを含む分散処理計画を作成する分散処理計画部と、
分散処理するデータ仮想化装置群に前記分散処理計画を分配する処理計画配置部と、
前記分散処理計画に応じて、各データベースシステムから取得した処理対象データをレコード単位で他のデータ仮想化装置に分配又は当該データ仮想化装置で受信するデータ分散部と、
前記分散処理計画に従った処理を行うクエリ処理部と
前記分散処理計画に従った処理の結果を各クエリ処理部から受信し、集計した結果を前記クライアントに送信するデータ集計部と
を備えることを特徴とする分散型データ仮想化システム。 - クエリ処理要求と結果受信を行うクライアントと、クエリ処理を行う複数のデータ仮想化装置と、前記データ仮想化装置のリソース量に関する情報を管理する分散型データ仮想化システム管理装置と、前記データ仮想化装置が利用する1つ以上のデータベースシステムとを備えた分散型データ仮想化システムにおけるクエリ処理方法であって、
前記クライアントからクエリ処理要求があった場合に、
クエリ処理の手順を定義したクエリプランを作成するクエリプラン作成手順と、
前記クエリプランと前記リソース量及び前記データベースシステムが有するテーブル情報を考慮して、クエリ処理を並列実施する複数のデータ仮想化装置の選定と当該複数のデータ仮想化装置での分散クエリ処理内容とを含む分散処理計画を作成する分散処理計画手順と、
分散処理するデータ仮想化装置群に前記分散処理計画を分配する処理分配手順と、
前記分散処理計画に応じて、各データベースシステムから取得した処理対象データをレコード単位で分配又は受信するデータ分散手順と、
前記分散処理計画に従った処理を行うクエリ処理手順と
前記分散処理計画に従った処理の結果を受信し、集計した結果を前記クライアントに送信するデータ集計手順と
を含むことを特徴とするクエリ処理方法。 - 前記分散処理計画手順は、
前記分散クエリ処理内容から各データベースシステムから得られる分散クエリ結果の容量を計算する手順と、
計算された容量から、実際の物理テーブルをユーザに提供する論理テーブルに変換する処理を定義した仮想スキーマで得られるテーブルや中間テーブル、最終的な結果の出力容量と、前記仮想スキーマの処理における最大処理容量を計算する手順と、
計算された容量を利用して、必要なデータ仮想化装置の数及び適用先のデータ仮想化装置を決定するデータ仮想化装置群選択手順と
を含む請求項2に記載のクエリ処理方法。 - 前記データ仮想化装置群選択手順は、
前記クエリプランから作成したプランツリーを根(クエリ結果)から順に前記クエリ処理を実行するノードを決める対象となるテーブルを降順探索する手順と、 前記テーブルが仮想スキーマにおける出力テーブルである場合に、当該仮想スキーマにおける最大出力容量と、データ仮想化装置群における利用状況及び利用可能メモリサイズからデータ仮想化装置群を選択する手順と
を含む請求項3に記載のクエリ処理方法。 - 前記データ分散手順は、
前記各データベースシステムから前記処理対象データを取得する手順と、
前記処理対象データを処理するデータ仮想化装置をレコード単位で判定する手順と
を含む請求項2に記載のクエリ処理方法。 - 前記クエリ処理手順は、
処理完了により次の処理を行う場合に、
単項演算であるか二項演算であるかを判定する手順と、
二項演算である場合は、二項演算の完了通知を待って次の処理を行うためのデータ移動とクエリ処理を行う手順と
を含む請求項2に記載のクエリ処理方法。 - 請求項2の各手順をコンピュータに実行させるクエリ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013246938A JP6262505B2 (ja) | 2013-11-29 | 2013-11-29 | 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013246938A JP6262505B2 (ja) | 2013-11-29 | 2013-11-29 | 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015106219A JP2015106219A (ja) | 2015-06-08 |
JP6262505B2 true JP6262505B2 (ja) | 2018-01-17 |
Family
ID=53436303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013246938A Active JP6262505B2 (ja) | 2013-11-29 | 2013-11-29 | 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6262505B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6405062B2 (ja) * | 2016-02-08 | 2018-10-17 | 株式会社日立製作所 | 分散データベースシステム、及び、分散データベースシステムの管理方法 |
WO2018074479A1 (ja) * | 2016-10-20 | 2018-04-26 | 日本電信電話株式会社 | データ処理装置およびデータ処理方法 |
JP6866632B2 (ja) | 2016-12-22 | 2021-04-28 | 日本電気株式会社 | データ検索方法、データ検索装置およびデータ検索プログラム |
KR102049420B1 (ko) * | 2018-03-27 | 2019-11-27 | 주식회사 리얼타임테크 | 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법 |
JP7434088B2 (ja) | 2020-07-07 | 2024-02-20 | 株式会社東芝 | 分散処理システム、分散処理装置、データベース管理装置及び方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199804A (ja) * | 2006-01-24 | 2007-08-09 | Hitachi Ltd | データベース管理方法、データベース管理プログラム、データベース管理装置、および、データベース管理システム |
JP2013025425A (ja) * | 2011-07-19 | 2013-02-04 | Nec Corp | 分散データ管理システム、分散データ管理方法、および分散データ管理プログラム |
JP6204753B2 (ja) * | 2013-08-28 | 2017-09-27 | Kddi株式会社 | 分散クエリ処理装置、処理方法及び処理プログラム |
-
2013
- 2013-11-29 JP JP2013246938A patent/JP6262505B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015106219A (ja) | 2015-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347761B1 (en) | System and methods for distributed database query engines | |
US11620308B2 (en) | Adaptive distribution method for hash operations | |
US10521427B2 (en) | Managing data queries | |
US9665620B2 (en) | Managing data queries | |
Khalifa et al. | The six pillars for building big data analytics ecosystems | |
JP5387757B2 (ja) | 並列データ処理システム、並列データ処理方法及びプログラム | |
JP6262505B2 (ja) | 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム | |
WO2015058578A1 (zh) | 一种分布式计算框架参数优化方法、装置及系统 | |
Chen et al. | Pisces: optimizing multi-job application execution in mapreduce | |
JP6376947B2 (ja) | 仮想データベースシステム管理装置、管理方法及び管理プログラム | |
US20150347507A1 (en) | Hierarchical query plans in an elastic parallel database management system | |
JP6393193B2 (ja) | データ仮想化装置及び大規模データ処理プログラム | |
JP6523823B2 (ja) | 仮想データベースシステム管理装置、管理方法及び管理プログラム | |
JP6371136B2 (ja) | データ仮想化サーバ、データ仮想化サーバにおけるクエリ処理方法及びクエリ処理プログラム | |
JPWO2013145512A1 (ja) | 管理装置及び分散処理管理方法 | |
JP6193491B2 (ja) | 計算機システム | |
JP6401617B2 (ja) | データ処理装置、データ処理方法及び大規模データ処理プログラム | |
Choudhry | HBase High Performance Cookbook | |
JPWO2018061070A1 (ja) | 計算機システム及び分析ソースデータ管理方法 | |
Boytsov et al. | Multi-tenant Database Clusters for SaaS | |
JP6776562B2 (ja) | 更新装置、更新方法、更新プログラム、及び、データベース管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160729 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20160822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170626 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6262505 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |