JP2015125726A - 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム - Google Patents
分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム Download PDFInfo
- Publication number
- JP2015125726A JP2015125726A JP2013271882A JP2013271882A JP2015125726A JP 2015125726 A JP2015125726 A JP 2015125726A JP 2013271882 A JP2013271882 A JP 2013271882A JP 2013271882 A JP2013271882 A JP 2013271882A JP 2015125726 A JP2015125726 A JP 2015125726A
- Authority
- JP
- Japan
- Prior art keywords
- query
- measurement
- user
- processing
- distributed
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データと、
前記ユーザクエリを解析し、前記データベース情報に基づいた前記ユーザクエリの処理毎の出力データサイズと前記エンジン情報とを考慮し適切なクエリ処理エンジンを選択して分散クエリを生成する分散クエリ生成部と、
前記ユーザクエリの出力レコード数を計測するための計測用クエリを生成する計測用クエリ生成部と、
前記計測用クエリを実行して出力レコード数を計測する計測部と、
前記適切なクエリ処理エンジンで前記ユーザクエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部と、
前記ユーザクエリや前記計測用クエリの実行結果から得られたレコード数を利用して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値を計算し、前記データベース情報を更新するデータ更新部と
を備えたことを特徴としている。
前記ユーザクエリを解析し、クエリ処理するデータ容量を基準に前記ユーザクエリを分割して分散クエリを作成するに際して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値から、入力データに対する出力データサイズを計算する場合に、
前記SF値が既にデータベース情報として存在している場合は、当該SF値から出力データサイズを計算し、前記ユーザクエリの分散クエリを実行する複数のクエリ処理エンジンを決定し、前記ユーザクエリの実行を行う手順と、
前記SF値がデータベース情報として存在していない場合は、出力レコード数を計測するための計測用クエリを作成する一方、当該計測用クエリが前記ユーザクエリから分散クエリを作成する前に実行可能か否かを判断し、
実行可能である場合は、処理毎の出力データサイズを計算する事前計測を行った後に、前記ユーザクエリの実行を行い、
実行可能でない場合は、処理毎の出力データサイズを計算しながら前記分散クエリの実行を行う事後計測により前記ユーザクエリの実行を行う手順を含む
ことを特徴としている。
前記事前計測は、前記ユーザクエリにおいて、クエリ処理の対象となるデータをランダム抽出することで出力レコード数を計測し、ユーザクエリ処理前に出力データサイズを計算する
ことを特徴としている。
前記事後計測は、入力されるデータサイズを基に実行するクエリ処理エンジンを決定し、ユーザクエリの処理とは別のクエリ処理エンジンを利用してユーザクエリの出力レコード数を計測する
ことを特徴としている。
分散クエリ処理装置システムの主要部となる分散クエリ処理装置1は、クライアント2からのユーザクエリの処理要求に対して、ネットワーク3を介して、データ共有型データベースシステムを構成する複数のクエリ処理エンジン4及び共有データベース5で処理を行うに際して、クエリ処理エンジン4の特性とクエリの内容に応じてユーザクエリを分割し、自動的に分配してクエリの処理を行うシステムであり、分散クエリ処理プログラムが格納された記録媒体やインターネットを介してソフトウエアのダウンロードによりインストールすることで、コンピュータ上に構築されている。
本発明の分散クエリ処理装置では、クエリ処理エンジン4の特性とクエリの内容に応じてユーザクエリを処理毎に分割するに際して、適切にクエリ分割を行うため処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比(Selectivity Factor、以下SF値と呼ぶ)を計算するために、効率的に出力レコード数を計測し収集することが行われる。
本実施形態の分散クエリ処理装置1では、分散クエリ処理プログラムがシリアル/パラレルI/Fから入力、またはメディアドライブ装置で読み取られてHDDに予め記憶される。分散クエリ処理プログラムは記憶媒体に記憶され、メディアドライブ装置で読み取られてHDDにインストールされる。
計測用クエリ生成部12は、出力レコード数を計測するための計測用クエリを生成する。処理対象となる入力データサイズが小規模である場合は、計測する処理の条件文をそのまま利用した計測用クエリを生成する。また、入力データサイズが大規模である場合は、入力データからランダムに一定数のデータを抽出して前記条件文を処理する計測用クエリを生成する。
そして、入力データサイズに算出したSF値を乗算することで、出力データサイズを計算する。
また、ここでのデータベースは、ハードディスクドライブ(HDD)やメモリなどの情報記憶媒体に保存されたデータベースシステムにおける物理データと、物理データの位置やテーブルスキーマなどのデータベースシステムのデータ構成に関する論理的情報(メタデータ)を含む。
先ず、ユーザクエリのクエリ処理毎の出力容量を計算するために、入力データに対する処理の種類と、処理に利用する条件を抽出する(ステップ20)。この処理の種類と条件から、出力データの容量を求めるために利用するのがSF値であり、出力データサイズはSF値と入力データ容量の積となる。
クエリ処理エンジン4の選択では、処理毎の対象クエリ処理エンジンを選択する。このとき、入出力データサイズや必要なリソース、マルチデータベース管理データ10のエンジン情報10bが有するSF値を基に、予め定めたクエリ処理エンジン選択基準と照らしあわせた上でクエリ処理エンジン4が選択される。
入力データサイズが大規模な場合は、ランダム抽出することができる条件かどうかを判断してから事前計測を行う(ステップ27)。例えば、不等号のようにクエリ処理の条件が範囲となるような検索処理に関しては、ランダム抽出によって規模を小さくしてもSF値が変化しないため、ランダム抽出が可能と判断できる。
例えば、SQLクエリの条件文が「a > 100 AND b = "xyz"」で、入力データサイズが大規模であった場合、「a > 100」に対する計測は事前処理が可能であるが、「b = "xyz"」に対する計測はランダム抽出ができないため、事後処理の手順が適用される。
事前計測は、大規模データから統計的に十分な量のデータをランダムに抽出することで、計測時間を大幅に短縮し、ユーザクエリの実行時間に対して大きな影響を与えずに、出力レコード数を計測できる。
入力データサイズが小規模である場合は、計測する処理の条件文をそのまま利用した計測用クエリを生成するが(ステップ32)、大規模データである場合は、入力データからランダムに一定数のデータを抽出する計測用クエリを生成する(ステップ33)。
このSF値を利用してユーザクエリの出力データサイズを算出し(ステップ36)、実行するクエリ処理エンジンを選択する。
これを基にユーザクエリを分割し(ステップ37)、適切なクエリ処理エンジンで実行する(ステップ38)。
このような事前計測によれば、ランダム抽出する計測用クエリを実行することにより、ユーザクエリの実行に大きな遅延なく、ユーザクエリの実行前にユーザクエリの出力データサイズを算出することができる。
まず、SF値の計算ができないことから、入力されるデータサイズを計算し(ステップ41)、それを基に実行するクエリ処理エンジンを選択する(ステップ42)。
ここで条件が一つの場合は、計測用クエリを作成せずに、ユーザクエリが実行される(ステップ47)。この出力レコード数を計測してSF値を計算し、ユーザクエリを計測用クエリと兼ねることで、余計なリソース消費を回避することができる。
この計測用クエリは、ユーザクエリが実行されるクエリ処理エンジンとは別のクエリ処理エンジンで実行することで、ユーザクエリの実行を阻害することなく実行させる。そのために、ユーザクエリの実行場所や、各クエリ処理エンジンのリソース状況から、計測用クエリをいつどこで実行するかを決定する(ステップ45)。
このような事後計測によれば、ユーザクエリとは別のクエリ処理エンジンで行う計測用クエリの実行によって、ユーザクエリの出力レコード数を計測することで、ユーザクエリが利用するリソースに対する影響を最小限にしつつ、クエリ分割に必要な情報を収集することができる。
Claims (5)
- 一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるユーザクエリの処理を行うデータ共有型データベースシステムにおいて、
前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データと、
前記ユーザクエリを解析し、前記データベース情報に基づいた前記ユーザクエリの処理毎の出力データサイズと前記エンジン情報とを考慮し適切なクエリ処理エンジンを選択して分散クエリを生成する分散クエリ生成部と、
前記ユーザクエリの出力レコード数を計測するための計測用クエリを生成する計測用クエリ生成部と、
前記計測用クエリを実行して出力レコード数を計測する計測部と、
前記適切なクエリ処理エンジンで前記ユーザクエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部と、
前記ユーザクエリや前記計測用クエリの実行結果から得られたレコード数を利用して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値を計算し、前記データベース情報を更新するデータ更新部と
を備えたことを特徴とする分散クエリ処理装置。 - 一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるユーザクエリの処理を行うクエリ処理方法において、
前記ユーザクエリを解析し、クエリ処理するデータ容量を基準に前記ユーザクエリを分割して分散クエリを作成するに際して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値から、入力データに対する出力データサイズを計算する場合に、
前記SF値が既にデータベース情報として存在している場合は、当該SF値から出力データサイズを計算し、前記ユーザクエリの分散クエリを実行する複数のクエリ処理エンジンを決定し、前記ユーザクエリの実行を行う手順と、
前記SF値がデータベース情報として存在していない場合は、出力レコード数を計測するための計測用クエリを作成する一方、当該計測用クエリが前記ユーザクエリから分散クエリを作成する前に実行可能か否かを判断し、
実行可能である場合は、処理毎の出力データサイズを計算する事前計測を行った後に、前記ユーザクエリの実行を行い、
実行可能でない場合は、処理毎の出力データサイズを計算しながら前記分散クエリの実行を行う事後計測により前記ユーザクエリの実行を行う手順を含む
ことを特徴とするクエリ処理方法。 - 前記事前計測は、前記ユーザクエリにおいて、クエリ処理の対象となるデータをランダム抽出することで出力レコード数を計測し、ユーザクエリ処理前に出力データサイズを計算する
請求項2に記載のクエリ処理方法。 - 前記事後計測は、入力されるデータサイズを基に実行するクエリ処理エンジンを決定し、ユーザクエリの処理とは別のクエリ処理エンジンを利用してユーザクエリの出力レコード数を計測する
請求項2に記載のクエリ処理方法。 - 請求項2に記載のクエリ処理方法の各手順をコンピュータにより実行可能としたクエリ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013271882A JP6139399B2 (ja) | 2013-12-27 | 2013-12-27 | 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013271882A JP6139399B2 (ja) | 2013-12-27 | 2013-12-27 | 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015125726A true JP2015125726A (ja) | 2015-07-06 |
JP6139399B2 JP6139399B2 (ja) | 2017-05-31 |
Family
ID=53536358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013271882A Active JP6139399B2 (ja) | 2013-12-27 | 2013-12-27 | 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6139399B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019189962A1 (ko) * | 2018-03-27 | 2019-10-03 | 주식회사 리얼타임테크 | 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225639A1 (en) * | 2003-05-09 | 2004-11-11 | Oracle International Corporation | Optimizer dynamic sampling |
-
2013
- 2013-12-27 JP JP2013271882A patent/JP6139399B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225639A1 (en) * | 2003-05-09 | 2004-11-11 | Oracle International Corporation | Optimizer dynamic sampling |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019189962A1 (ko) * | 2018-03-27 | 2019-10-03 | 주식회사 리얼타임테크 | 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법 |
KR20190113055A (ko) * | 2018-03-27 | 2019-10-08 | 주식회사 리얼타임테크 | 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법 |
KR102049420B1 (ko) * | 2018-03-27 | 2019-11-27 | 주식회사 리얼타임테크 | 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP6139399B2 (ja) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7130600B2 (ja) | ファーストクラスデータベース要素としての半構造データの実装 | |
US9424274B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US9081837B2 (en) | Scoped database connections | |
US10284623B2 (en) | Optimized browser rendering service | |
Narkhede et al. | HMR log analyzer: Analyze web application logs over Hadoop MapReduce | |
Savitha et al. | Mining of web server logs in a distributed cluster using big data technologies | |
US11561965B2 (en) | Data retrieval via incremental updates to graph data structures | |
JP6204753B2 (ja) | 分散クエリ処理装置、処理方法及び処理プログラム | |
US20170017574A1 (en) | Efficient cache warm up based on user requests | |
JP6139399B2 (ja) | 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム | |
Wang et al. | Turbo: Dynamic and decentralized global analytics via machine learning | |
US10019472B2 (en) | System and method for querying a distributed dwarf cube | |
Khashan et al. | An adaptive spark-based framework for querying large-scale NoSQL and relational databases | |
Khan et al. | Computational performance analysis of cluster-based technologies for big data analytics | |
Anusha et al. | Comparative evaluation of big data frameworks on batch processing | |
JP2016009425A (ja) | データ仮想化サーバ、データ仮想化サーバにおけるクエリ処理方法及びクエリ処理プログラム | |
JP2015045995A (ja) | 仮想データベースシステム管理装置、管理方法及び管理プログラム | |
Lupelli et al. | Preemptive data distribution infrastructure for data centric analysis and modelling | |
Aydin et al. | Distributed log analysis on the cloud using mapreduce | |
JP2010218219A (ja) | レプリカ表生成装置、レプリカ表生成方法、及びプログラム | |
JP6397101B2 (ja) | 最適化されたブラウザレンダリング処理 | |
Rahman et al. | Development of a framework to reduce overhead on database engine through data distribution | |
Sharma et al. | Supportive architectural analysis for big data | |
Balusamy et al. | Cloud Database Systems: NoSQL, NewSQL, Hybrid | |
Vorona et al. | Benchmarking elastic query processing on big data |
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: 20170410 |
|
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: 20170426 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170427 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6139399 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |