JP6204753B2 - 分散クエリ処理装置、処理方法及び処理プログラム - Google Patents
分散クエリ処理装置、処理方法及び処理プログラム Download PDFInfo
- Publication number
- JP6204753B2 JP6204753B2 JP2013176710A JP2013176710A JP6204753B2 JP 6204753 B2 JP6204753 B2 JP 6204753B2 JP 2013176710 A JP2013176710 A JP 2013176710A JP 2013176710 A JP2013176710 A JP 2013176710A JP 6204753 B2 JP6204753 B2 JP 6204753B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- processing
- data
- database
- engine
- 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に示されるように、複数の階層的なデータベースシステムを、データマッピングにより仮想的なスキーマに統合し、クエリ実行時において処理対象となるデータを保持するデータベースシステムにクエリを分配するマルチデータベースシステムが提案されている。
このシステムによれば、各データベースシステムで実行されたクエリの結果は中央に収集され、一つに統合して結果を出力するシステムとなっている。しかし、複数のデータベースシステムが同一のデータを保持することを考慮しておらず、仮想的なスキーマの生成時にデータの重複をさけるためには、複数のデータベースシステムのうち、一つしか選択できない。
この手法によれば、同一のテーブルが複数のデータベースシステムにある場合に、同一のテーブルに対して一つの仮想テーブル名をつけ、クエリ実行時に適切なテーブルを選択し、ユーザとは透過的に同一のテーブルの使い分けを実現している。
このようなシステムでは、データは重複を避けるために一つのデータベースに収集される。そしてこの一つのデータベースを複数のクエリ処理エンジンが共有し、処理の種類や、対象となるデータの規模等に応じてクエリ処理エンジンを使い分けることで、より効率的なデータ処理が可能となった。
また、仮にコストが低く見積もられ、クエリ処理エンジン毎にクエリを分割したとしても、既存のマルチデータベースシステムにおいては、データが同じデータベース上にあるにも関わらず、各クエリ処理の結果を各クエリエンジンから収集し、マルチデータベースシステムの管理サーバ上で結合処理等を行う必要があり、共有しているデータベースを有効活用することができない。振り分けたクエリに依存関係があるとすると、更にはその管理サーバ上の処理結果を元の同じデータベースに再度書き直すという、無駄なデータ移動が発生することとなる。
前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データ。
前記クライアントから投稿されたクエリの解析結果に基づいて前記クエリを処理単位に分解し、前記処理単位毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮して適切なクエリ処理エンジンを選択するとともに、該クエリの分解・再構築を行う分散クエリ生成部。
前記適切なクエリ処理エンジンで前記クエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部。
クライアントから投稿されたクエリを基にクエリの実行計画を示すクエリプランを生成又は取得し、前記クエリプランを解析することでクエリ処理エンジンにおいて実行される処理フロー、読み込むテーブルと中間データのデータフローを作成するクエリプラン生成/取得/解析手順と、
前記クエリプラン生成/取得/解析手順で生成した処理フローとデータフロー、及び、マルチデータベース管理データのデータベース情報を利用して、テーブルサイズ、処理フロー上の各処理における中間データのデータサイズ、各処理に必要なリソースを計算する計算手順と、
前記計算されたデータサイズや必要なリソースと、マルチデータベース管理データのエンジン情報を基に、前記処理毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮してクエリ処理エンジンを選択するエンジン選択手順と、
処理毎に選択された前記クエリ処理エンジンの情報を基にクエリを生成するクエリ生成手順と、
を実行することを特徴としている。
分散クエリ処理装置システムの主要部となる分散クエリ処理装置1は、クライアント2からのクエリの処理要求に対して、ネットワーク3を介して、データベースシステム(データ共有型データベースシステム)4で処理を行うに際して、クエリ処理エンジンの特性とクエリの内容に応じてクエリを分割し、自動的に分配してクエリの処理を行うシステムであり、分散クエリ処理プログラムが格納された記録媒体やインターネットを介してソフトウエアのダウンロードによりインストールすることで、コンピュータ上に構築されている。
本実施形態の分散クエリ処理装置1では、分散クエリ処理プログラムがシリアル/パラレルI/Fから入力、またはメディアドライブ装置で読み取られてHDDに予め記憶される。分散クエリ処理プログラムは記憶媒体に記憶され、メディアドライブ装置で読み取られてHDDにインストールされる。
マルチデータベース管理データ10は、共有データベース40の各種情報が記憶されたデータベース情報11と、データベースシステム4の共有データベース40を管理するデータベースマネジメントシステムとしての複数のクエリ処理エンジン41等の情報が記憶されたエンジン情報12を有することで、各種の情報を保持して管理する。
共有データベース40は、クエリ処理に必要なデータをクエリ処理エンジン41に提供する。
また、ここでのデータベースは、ハードディスクドライブ(HDD)やメモリなどの情報記憶媒体に保存されたデータベースシステムにおける物理データと、物理データの位置やテーブルスキーマなどのデータベースシステムのデータ構成に関する論理的情報(メタデータ)を含む。
一つの共有データベース40を複数のクエリ処理エンジン41で共有するデータ共有型データベースに対して、クライアント2からクエリが投稿されると、アクセス管理部14が受け取り、シーケンシャルに分散クエリ生成部15へとクエリを受け渡す。
クエリプラン生成/取得/解析では、クライアント2から投稿されたクエリを基にクエリの実行計画を示すクエリプランを生成又は取得し、クエリプランを解析することでクエリ処理エンジンにおいて実行される処理のフロー、読み込むテーブルと中間データのデータフローを作成する(ステップ21)。
このとき、処理フローに沿ってクエリを生成するが、複数のクエリ処理エンジンを跨ぐ処理フローとなる場合、一連のクエリ処理の最初に一時テーブルを生成するクエリ文を挿入し、各クエリ処理エンジンにおける最後の処理はこの一時テーブルに対しての挿入処理に変更され、この一連のクエリ処理の最後に一時テーブルの削除処理を挿入する。
クエリエンジン選択後、クエリをそのままにクエリ分割できない場合は、処理フローやデータフローからエンジン別のクエリを再構築(再作成)する。
図3は、実際のクエリ処理におけるシステム構成例で、クエリ処理エンジンXとクエリ処理エンジンYが、共有のデータベースAを利用している。この構成により、クライアント2からは、同一のデータを持った2つのデータベースに見える。
この前提から、振り分け条件として処理対象データがクエリ処理エンジンYの物理メモリサイズを超えた場合にクエリ処理エンジンXへ分配し、クエリ処理エンジンYの物理メモリサイズ以下の処理対象データに対する処理をクエリ処理エンジンYへ分配する。
このSQLクエリは、テーブルa及びbを「テーブルaに含まれる属性idとテーブルbに含まれる属性aidが等しいレコード」という条件で結合処理(JOIN処理)を行い、その結果を「テーブルaに含まれる属性dateが等しいレコード」で集計し、これに紐づくテーブルbのsalesの合計値を計算(AGGREGATE処理(GROUP BY + SUM))し、このレコードをdate値で降順にソート(ORDER BY処理)するという内容となっている。
ここでは、「テーブルaの読み込み」(ステップ81a)は「a」を出力(ステップ91a)、「テーブルbの読み込み」(ステップ81b)では「b」を出力(ステップ91b)、「JOIN処理」(ステップ82)では「temp_join」を出力(ステップ92)、「AGGREGATE処理(GROUP BY + SUM)」(ステップ85)では「temp_aggr」を出力(ステップ95)、「ORDER BY処理」(ステップ86)ではoutputを出力(ステップ96)するものとする。
すなわち、「JOIN処理」までが全てクエリ処理エンジンYの物理メモリサイズ32GBを超えていることから、「テーブルaの読み込み」、「テーブルbの読み込み」、「JOIN処理」をクエリ処理エンジンXで処理し、残りの「AGGREGATE処理(GROUP BY + SUM)」、「ORDER BY処理」をクエリ処理エンジンYで行うこととなる。
すなわち、一連のクエリ処理の最初に一時テーブルの作成処理(一時テーブルを生成するクエリ文を挿入)、各クエリ処理エンジンにおける最後の処理は、一時テーブルに対しての書き込み処理(挿入処理)に変更し、一連のクエリ処理の最後に一時テーブルの削除処理を追加する。
Claims (5)
- 一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるクエリの処理を行うデータ共有型データベースシステムにおいて、
前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データと、
前記クライアントから投稿されたクエリの解析結果に基づいて前記クエリを処理単位に分解し、前記処理単位毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮して適切なクエリ処理エンジンを選択するとともに、該クエリの分解・再構築を行う分散クエリ生成部と、
前記適切なクエリ処理エンジンで前記クエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部と、
を備えたことを特徴とする分散クエリ処理装置。 - 前記複数のクエリ処理エンジンは、データサイズに比例して常に安定した実行が可能なクエリ処理エンジンXと、
所望の物理メモリサイズまでのテーブルに対する処理は前記クエリ処理エンジンXと比較して高速だがこれを超えるデータに対してクエリを実行できないクエリ処理エンジンYと、
を含む請求項1に記載の分散クエリ処理装置。 - 前記クエリ処理エンジンのエンジン情報を定期的に又はユーザの要求により収集することで前記マルチデータベース管理データを更新するデータ更新部を備えた
請求項1に記載の分散クエリ処理装置。 - 一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムにおけるクライアントから投稿されるクエリの処理方法において、
クライアントから投稿されたクエリを基にクエリの実行計画を示すクエリプランを生成又は取得し、前記クエリプランを解析することでクエリ処理エンジンにおいて実行される処理フロー、読み込むテーブルと中間データのデータフローを作成するクエリプラン生成/取得/解析手順と、
前記クエリプラン生成/取得/解析手順で生成した処理フローとデータフロー、及び、マルチデータベース管理データのデータベース情報を利用して、テーブルサイズ、処理フロー上の各処理における中間データのデータサイズ、各処理に必要なリソースを計算する計算手順と、
前記計算されたデータサイズや必要なリソースと、マルチデータベース管理データのエンジン情報を基に、前記処理毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮してクエリ処理エンジンを選択するエンジン選択手順と、
処理毎に選択された前記クエリ処理エンジンの情報を基にクエリを生成するクエリ生成手順と、
を実行することを特徴とする分散クエリ処理方法。 - 請求項4に記載の分散クエリ処理方法の各手順をコンピュータにより実行可能とした分散クエリ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013176710A JP6204753B2 (ja) | 2013-08-28 | 2013-08-28 | 分散クエリ処理装置、処理方法及び処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013176710A JP6204753B2 (ja) | 2013-08-28 | 2013-08-28 | 分散クエリ処理装置、処理方法及び処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015045996A JP2015045996A (ja) | 2015-03-12 |
JP6204753B2 true JP6204753B2 (ja) | 2017-09-27 |
Family
ID=52671455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013176710A Active JP6204753B2 (ja) | 2013-08-28 | 2013-08-28 | 分散クエリ処理装置、処理方法及び処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6204753B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6262505B2 (ja) * | 2013-11-29 | 2018-01-17 | Kddi株式会社 | 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム |
US20180097886A1 (en) * | 2015-03-27 | 2018-04-05 | Nec Corporation | Sensor network system |
EP3365809B1 (en) | 2015-10-23 | 2020-12-09 | Oracle International Corporation | System and method for sandboxing support in a multidimensional database environment |
US11188434B2 (en) * | 2017-12-08 | 2021-11-30 | Ab Initio Technology Llc | Systems and methods for monitoring execution of structured query language (SQL) queries |
US12032631B2 (en) | 2018-05-30 | 2024-07-09 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003308335A (ja) * | 2002-04-15 | 2003-10-31 | Just Syst Corp | 文書検索システム及び方法、並びにプログラム |
JP3838248B2 (ja) * | 2004-07-26 | 2006-10-25 | 株式会社日立製作所 | データ格納方法およびデータ管理システム |
JP4432733B2 (ja) * | 2004-11-05 | 2010-03-17 | 富士ゼロックス株式会社 | 連携処理装置及びシステム |
US7853603B2 (en) * | 2007-05-23 | 2010-12-14 | Microsoft Corporation | User-defined relevance ranking for search |
US9165032B2 (en) * | 2007-11-21 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Allocation of resources for concurrent query execution via adaptive segmentation |
US8402469B2 (en) * | 2008-04-08 | 2013-03-19 | Infosys Limited | Allocating resources for parallel execution of query plans |
JP5149840B2 (ja) * | 2009-03-03 | 2013-02-20 | 株式会社日立製作所 | ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置 |
JP2011145813A (ja) * | 2010-01-13 | 2011-07-28 | Ntt Docomo Inc | 検索支援装置及び検索支援方法 |
JP5640432B2 (ja) * | 2010-03-31 | 2014-12-17 | 富士通株式会社 | 分散処理装置、分散処理プログラムおよび分散処理方法 |
-
2013
- 2013-08-28 JP JP2013176710A patent/JP6204753B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015045996A (ja) | 2015-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240211461A1 (en) | Customer-requested partitioning of journal-based storage systems | |
US11816126B2 (en) | Large scale unstructured database systems | |
US10346434B1 (en) | Partitioned data materialization in journal-based storage systems | |
JP6697392B2 (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
US9740706B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US9507807B1 (en) | Meta file system for big data | |
Padhy | Big data processing with Hadoop-MapReduce in cloud systems | |
US7689538B2 (en) | Autonomic recommendation and placement of materialized query tables for load distribution | |
Humbetov | Data-intensive computing with map-reduce and hadoop | |
JP6204753B2 (ja) | 分散クエリ処理装置、処理方法及び処理プログラム | |
US10235407B1 (en) | Distributed storage system journal forking | |
Cruz et al. | A scalable file based data store for forensic analysis | |
Färber et al. | An in-memory database system for multi-tenant applications | |
Peng et al. | An analysis platform of road traffic management system log data based on distributed storage and parallel computing techniques | |
US9275059B1 (en) | Genome big data indexing | |
JP2017526090A (ja) | ホスト型分析のための動的n次元キューブ | |
Kumar et al. | Cost model for pregel on graphx | |
Karunarathna et al. | Scalable graph convolutional network based link prediction on a distributed graph database server | |
JP6139399B2 (ja) | 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム | |
JP2015045995A (ja) | 仮想データベースシステム管理装置、管理方法及び管理プログラム | |
Dory | Study and Comparison of Elastic Cloud Databases: Myth or Reality? | |
Nazdrowicz | A relational database environment for numerical simulation backend storage | |
Johnson et al. | Big data processing using Hadoop MapReduce programming model | |
Martinez | Study of resource management for multitenant database systems in cloud computing | |
Dai et al. | An asynchronous traversal engine for graph-based rich metadata management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160128 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20160810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170301 |
|
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: 20170809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170901 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6204753 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |