JP2015125726A - 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム - Google Patents

分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム Download PDF

Info

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
Application number
JP2013271882A
Other languages
English (en)
Other versions
JP6139399B2 (ja
Inventor
和広 斉藤
Kazuhiro Saito
和広 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2013271882A priority Critical patent/JP6139399B2/ja
Publication of JP2015125726A publication Critical patent/JP2015125726A/ja
Application granted granted Critical
Publication of JP6139399B2 publication Critical patent/JP6139399B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ共有型マルチデータベースシステムにおいて、適切にクエリ分割を行うためのSF値を計算するために、効率的に出力レコード数を計測し収集する分散クエリ処理装置を得る。【解決手段】分散クエリ処理装置であって、データベース情報を管理するマルチデータベース管理データ10と、ユーザクエリを解析しユーザクエリの処理毎の出力データサイズとエンジン情報を考慮し適切なクエリ処理エンジンを選択して分散クエリを生成する分散クエリ生成部11と、前記ユーザクエリの出力レコード数を計測するための計測用クエリを生成する計測用クエリ生成部12と、前記計測用クエリを実行する計測部13と、前記ユーザクエリの処理を実行するクエリ実行制御部14と、前記ユーザクエリや前記計測用クエリの実行結果からレコード数やSF値を計算して前記データベース情報を更新するデータ更新部15を備える。【選択図】図1

Description

本発明は、一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型マルチデータベースシステムにおいて、ユーザクエリを分割し適切なクエリ処理エンジンに振り分けるために、振り分け条件として利用するクエリ処理の出力レコード数を取得するための分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラムに関する。
データ共有型マルチデータベースシステムは、一つのデータベースを複数のクエリ処理エンジンが共有する環境において、クエリ処理エンジンの特性やクエリの内容に応じてユーザクエリを分割し、自動的に分配するシステムである。例えば、特許文献1では、共有するデータベースを利用することで、無駄なデータ移動なく、ユーザには透過的に適切なクエリ処理エンジンへとクエリを振り分ける手法が提案されている。
特願2013−176710
特許文献1に記載の手法によると、クエリ処理するデータ容量を基準としたクエリの分配について言及し、処理容量を事前に計算しておくことでクエリ分割を実現することが開示されている。通常、このような処理容量は、クエリで表現されている条件文における入力データに対する増減の度合いを利用することで計算することができる。この増減の度合いSelectivity Factor(SF値)は、レコード数を利用して計算することができ、入力データに対してクエリ処理を行った場合の出力レコード数を計測することで求めることができる。
出力データサイズは、過去の実行記録を教師データとする機械学習等を利用することで予測可能だが、統計的に正しくなる量の実行記録を残すまでには長期間の運用が必要となり、実用的ではないという課題が存在した。
その一方、クエリ実行時に出力レコード数を計測するためには、対象のデータ及び条件を含むクエリを実行する必要があり、大規模なデータではユーザへのレスポンスが大幅に遅くなるという問題点があった。
本発明は上記実情に鑑みて提案されたもので、データ共有型マルチデータベースシステムにおいて、適切にクエリ分割を行うためのSF値を計算するために、効率的に出力レコード数を計測し収集可能とした分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラムを提供することを目的としている。
上記目的を達成するため本発明の分散クエリ処理装置(請求項1)は、一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるユーザクエリの処理を行うデータ共有型データベースシステムにおいて、
前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データと、
前記ユーザクエリを解析し、前記データベース情報に基づいた前記ユーザクエリの処理毎の出力データサイズと前記エンジン情報とを考慮し適切なクエリ処理エンジンを選択して分散クエリを生成する分散クエリ生成部と、
前記ユーザクエリの出力レコード数を計測するための計測用クエリを生成する計測用クエリ生成部と、
前記計測用クエリを実行して出力レコード数を計測する計測部と、
前記適切なクエリ処理エンジンで前記ユーザクエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部と、
前記ユーザクエリや前記計測用クエリの実行結果から得られたレコード数を利用して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値を計算し、前記データベース情報を更新するデータ更新部と
を備えたことを特徴としている。
請求項2は、一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるユーザクエリの処理を行うクエリ処理方法において、
前記ユーザクエリを解析し、クエリ処理するデータ容量を基準に前記ユーザクエリを分割して分散クエリを作成するに際して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値から、入力データに対する出力データサイズを計算する場合に、
前記SF値が既にデータベース情報として存在している場合は、当該SF値から出力データサイズを計算し、前記ユーザクエリの分散クエリを実行する複数のクエリ処理エンジンを決定し、前記ユーザクエリの実行を行う手順と、
前記SF値がデータベース情報として存在していない場合は、出力レコード数を計測するための計測用クエリを作成する一方、当該計測用クエリが前記ユーザクエリから分散クエリを作成する前に実行可能か否かを判断し、
実行可能である場合は、処理毎の出力データサイズを計算する事前計測を行った後に、前記ユーザクエリの実行を行い、
実行可能でない場合は、処理毎の出力データサイズを計算しながら前記分散クエリの実行を行う事後計測により前記ユーザクエリの実行を行う手順を含む
ことを特徴としている。
請求項3は、請求項2のクエリ処理方法において、
前記事前計測は、前記ユーザクエリにおいて、クエリ処理の対象となるデータをランダム抽出することで出力レコード数を計測し、ユーザクエリ処理前に出力データサイズを計算する
ことを特徴としている。
請求項4は、請求項2のクエリ処理方法において、
前記事後計測は、入力されるデータサイズを基に実行するクエリ処理エンジンを決定し、ユーザクエリの処理とは別のクエリ処理エンジンを利用してユーザクエリの出力レコード数を計測する
ことを特徴としている。
請求項5は、請求項2に記載のクエリ処理方法の各手順をコンピュータにより実行可能としたクエリ処理プログラムであることを特徴としている。
本発明によれば、データ共有型マルチデータベースシステムにおいて、SF値が既にデータベース情報として存在している場合は、当該SF値から出力データサイズを計算して分散クエリを作成してユーザクエリの実行を行い、SF値がデータベース情報として存在していない場合は、ユーザクエリの出力レコード数を計測する事前計測を行った後に処理毎の出力データサイズを計算して分散クエリを作成してユーザクエリの実行を行い、又は、ユーザクエリの出力レコード数を計測しながら分散クエリの実行(事後計測)を行うので、クエリ分割に必要な情報収集によるユーザクエリの処理の遅延を削減することができる。
また、ユーザクエリの出力レコード数を計測する事前計測において、処理対象のデータからランダム抽出する計測用クエリを実行することにより、ユーザクエリの実行に大きな遅延なく、ユーザクエリの実行前にユーザクエリの出力レコード数を計測することができる。
また、事前に実行できない事後計測においては、ユーザクエリとは別のクエリ処理エンジンで行う計測用クエリの実行によって、ユーザクエリの出力レコード数を計測することで、ユーザクエリが利用するリソースに対する影響を最小限にしつつ、クエリ分割に必要な情報を収集することができる。
本発明の分散クエリ処理装置を含む分散クエリ処理システムの全体構成を示すブロック図である。 本発明の分散クエリ処理装置によりユーザクエリを実行する場合の処理を示すフローチャートである。 図2の事前計測における詳細な処理を示すフローチャートである。 図2の事後計測における詳細な処理を示すフローチャートである。
本発明の分散クエリ処理装置を備えた分散クエリ処理システムの実施形態の一例について、図1を参照して説明する。
分散クエリ処理装置システムの主要部となる分散クエリ処理装置1は、クライアント2からのユーザクエリの処理要求に対して、ネットワーク3を介して、データ共有型データベースシステムを構成する複数のクエリ処理エンジン4及び共有データベース5で処理を行うに際して、クエリ処理エンジン4の特性とクエリの内容に応じてユーザクエリを分割し、自動的に分配してクエリの処理を行うシステムであり、分散クエリ処理プログラムが格納された記録媒体やインターネットを介してソフトウエアのダウンロードによりインストールすることで、コンピュータ上に構築されている。
本発明の分散クエリ処理装置では、クエリ処理エンジン4の特性とクエリの内容に応じてユーザクエリを処理毎に分割するに際して、適切にクエリ分割を行うため処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比(Selectivity Factor、以下SF値と呼ぶ)を計算するために、効率的に出力レコード数を計測し収集することが行われる。
分散クエリ処理装置1が構築されるコンピュータは、オペレーティングシステム(OS)を含む基本プログラムや各種の基本デバイスが記憶されたROMと、各種のプログラムションやデータが記憶されるハードディスクドライブ装置(HDD)と、CR-ROMやDVD等の記憶媒体からプログラムやデータを読み出すメディアドライブ装置と、プログラムを実行するCPUと、このCPUにワークエリアを提供するRAMと、入出力インターフェース(I/F)を介して接続されたディスプレイ、キーボードおよびマウス等のポインティングデバイスと、外部装置と通信するパラレル/シリアルI/Fとを主要部分とする一般的な構成を備えている。
本実施形態の分散クエリ処理装置1では、分散クエリ処理プログラムがシリアル/パラレルI/Fから入力、またはメディアドライブ装置で読み取られてHDDに予め記憶される。分散クエリ処理プログラムは記憶媒体に記憶され、メディアドライブ装置で読み取られてHDDにインストールされる。
分散クエリ処理システムは、分散クエリ処理装置1と、分散クエリ処理装置1に対してクエリ処理を要求するクライアント2と、ネットワーク3を介して接続されたデータ共有型データベースシステムから構成される。データ共有型データベースシステムは、一つの共有データベース5と複数(1〜N)のクエリ処理エンジン4とを備え、共有データベース5は、複数のクエリ処理エンジン4により共有するようになっている。
クライアント2は、WebアプリケーションサーバやBIツールなどの、データ共有型ベースシステムに対して、クエリ処理を要求するソフトウエア及びこれを実装したハードウェアを指す。
分散クエリ処理装置1は、データベース情報とエンジン情報を保持するマルチデータベース管理データ10と、マルチデータベース管理データ10を利用する等して適切なクエリ処理エンジンを選択して分散クエリを生成する分散クエリ生成部11と、データベースの情報を収集するための計測用クエリを生成する計測用クエリ生成部12と、計測用クエリを実行する計測部13と、生成した分散クエリを実行するクエリ実行制御部14と、ユーザクエリや計測用クエリの実行結果からレコード数やSF値を計算しマルチデータベース管理データ10のデータベース情報を更新するデータ更新部15を備えて構成されている。
マルチデータベース管理データ10は、共有データベース5の各種情報が記憶されたデータベース情報10aと、共有データベース5を管理するデータベースマネジメントシステムとしての複数のクエリ処理エンジン4等の情報が記憶されたエンジン情報10bを有することで、各種の情報を保持して管理する。
データベース情報10aには、共有データベース5におけるスキーマ群の構成、各スキーマのサイズ、アクセス頻度、各スキーマにおける属性一覧、各属性の名前、型、サイズ、付加情報、クエリ処理における出力結果の構成とサイズの履歴を含む共有データベース5に関する情報が管理されている。
エンジン情報10bには、ノード数、CPUクロック数、CPUコア数、メモリサイズ、ネットワーク帯域、ディスクサイズ、ディスクアクセス帯域、クエリ処理エンジン名、メタデータ及びデータベースの共有の有無、同時実行可能クエリ数、実行不可クエリ、クエリのアルゴリズム情報、リソースの利用状況(CPU利用率、メモリ利用率、ネットワークトラフィック量、ディスク利用量、ディスクスワップ利用量、ディスクI/O量)を含む各クエリ処理エンジン4の特性に関する情報が管理されている。
データ更新部15は、データベースシステムにおけるクエリ処理エンジン4のエンジン情報10b及び共有データベース5のデータベース情報10aを定期的に又はユーザの要求により収集することで、マルチデータベース管理データ10を更新する。若しくは、データ更新部15は、クライアント2を介してユーザから入力されるデータを受け付けることで、マルチデータベース管理データ10を更新する。
分散クエリ生成部11では、クライアント2を介してユーザから投稿されたユーザクエリを解釈し、処理毎の出力データサイズを計算して分散クエリを作成し、処理毎に適切なクエリ処理エンジン4を選択する。
計測用クエリ生成部12は、出力レコード数を計測するための計測用クエリを生成する。処理対象となる入力データサイズが小規模である場合は、計測する処理の条件文をそのまま利用した計測用クエリを生成する。また、入力データサイズが大規模である場合は、入力データからランダムに一定数のデータを抽出して前記条件文を処理する計測用クエリを生成する。
計測部13は、計測用クエリを実行することで、実行結果から処理の出力レコード数を計測し、入力レコード数と出力レコード数との比(出力レコード数/入力レコード数)であるSF値を計算する。
そして、入力データサイズに算出したSF値を乗算することで、出力データサイズを計算する。
クエリ実行制御部14は、算出した出力データサイズを利用して適切なクエリ処理エンジン4でクエリの処理を実行するとともに、最終的な実行結果を受け取ってクライアント2に転送する。また、クエリの処理を実行するに際して、必要に応じて、分解されたクエリの中間テーブルを共有データベース5上に作成する。
データベースシステム4の各クエリ処理エンジン4は、共有データベース5に対して投稿されたクエリの処理を行う。共有データベース5は、クエリ処理に必要なデータをクエリ処理エンジン4に提供する。
分散クエリ処理装置1と各クエリ処理エンジン4はネットワーク3を介して接続され、分散クエリ処理装置1で生成された分散クエリは、指定された各クエリ処理エンジン4にネットワーク3を通じて転送され、各クエリの処理結果も同様にネットワーク3を通じてクエリ処理エンジン4から分散クエリ処理装置1へと転送される。
共有データベース5は、物理的に一つである場合だけでなく、複数のデータベースを完全に同期または分散してデータを格納することで仮想的に一つに見せる場合も含まれる。例えば、物理的に離れている複数のデータベースにおいて、ある一つのデータベースへの書き込みが行われると同時に、その更新が他の全てのデータベースにも瞬時に適用される場合、共有する一つのデータベースの形態として適用される。
また、ここでのデータベースは、ハードディスクドライブ(HDD)やメモリなどの情報記憶媒体に保存されたデータベースシステムにおける物理データと、物理データの位置やテーブルスキーマなどのデータベースシステムのデータ構成に関する論理的情報(メタデータ)を含む。
次に、分散クエリ生成部11における分散クエリの生成、及び、クエリ実行制御部14におけるクエリの実行の手順について、図2のフローチャートを参照して説明する。
先ず、ユーザクエリのクエリ処理毎の出力容量を計算するために、入力データに対する処理の種類と、処理に利用する条件を抽出する(ステップ20)。この処理の種類と条件から、出力データの容量を求めるために利用するのがSF値であり、出力データサイズはSF値と入力データ容量の積となる。
次に、SF値の有無を判断する(ステップ21)。処理対象となる入力データと、処理の種類と、処理に利用する条件に対するSF値がデータベース情報10aに既に存在していれば、これを利用してユーザクエリの処理毎の出力データサイズを計算し(ステップ22)、実行するクエリ処理エンジン4を選択し(ステップ23)、ユーザクエリを実行する(ステップ24)。
クエリ処理エンジン4の選択では、処理毎の対象クエリ処理エンジンを選択する。このとき、入出力データサイズや必要なリソース、マルチデータベース管理データ10のエンジン情報10bが有するSF値を基に、予め定めたクエリ処理エンジン選択基準と照らしあわせた上でクエリ処理エンジン4が選択される。
該当のSF値がデータベース情報10aに存在しない場合は、SF値を計算するために出力レコード数を計測する計測用クエリを生成する。計測用クエリをユーザクエリの分割前に実行可能かどうかを判断するために、計測する処理を分類する(ステップ25)。分類の観点は、入力データのサイズと、クエリの処理の条件がランダム抽出に適しているかどうかを判断して分類する。
すなわち、入力データサイズが小規模でユーザクエリの実行時間に対する影響が小さいのであれば、事前処理が可能であると判断し(ステップ26)、ユーザクエリの実行前に出力レコード数を計測する事前計測を行う(ステップ27)。
入力データサイズが大規模な場合は、ランダム抽出することができる条件かどうかを判断してから事前計測を行う(ステップ27)。例えば、不等号のようにクエリ処理の条件が範囲となるような検索処理に関しては、ランダム抽出によって規模を小さくしてもSF値が変化しないため、ランダム抽出が可能と判断できる。
一方で、等号のように、ランダム抽出によって本来のSF値と大きな差異が生じる場合にはランダム抽出が利用できないと判断し(ステップ26)、ユーザクエリの実行と並行して出力レコード数を計測する事後計測を行う(ステップ28)。
なお、SF値を計算すべき処理の条件が複数ある場合には、各条件に対して分類を行い、1つでも事前計測が不可の場合は事後計測となる。
例えば、SQLクエリの条件文が「a > 100 AND b = "xyz"」で、入力データサイズが大規模であった場合、「a > 100」に対する計測は事前処理が可能であるが、「b = "xyz"」に対する計測はランダム抽出ができないため、事後処理の手順が適用される。
図2のステップ26において、事前処理が可能と判断された場合における計測処理(ステップ27の事前計測)の手順を図3に示す。
事前計測は、大規模データから統計的に十分な量のデータをランダムに抽出することで、計測時間を大幅に短縮し、ユーザクエリの実行時間に対して大きな影響を与えずに、出力レコード数を計測できる。
そのために、まず処理対象となる入力データサイズから、ランダム抽出が必要かどうかを判断する(ステップ31)。
入力データサイズが小規模である場合は、計測する処理の条件文をそのまま利用した計測用クエリを生成するが(ステップ32)、大規模データである場合は、入力データからランダムに一定数のデータを抽出する計測用クエリを生成する(ステップ33)。
この計測用クエリを実行し、結果から処理の出力レコード数を計測し(ステップ34)、SF値を計算する(ステップ35)。このSF値は、データベース情報10aとしてマルチデータベース管理データ10に保存する。
このSF値を利用してユーザクエリの出力データサイズを算出し(ステップ36)、実行するクエリ処理エンジンを選択する。
これを基にユーザクエリを分割し(ステップ37)、適切なクエリ処理エンジンで実行する(ステップ38)。
このような事前計測によれば、ランダム抽出する計測用クエリを実行することにより、ユーザクエリの実行に大きな遅延なく、ユーザクエリの実行前にユーザクエリの出力データサイズを算出することができる。
図2のステップ26において、事前処理が可能と判断できない場合における計測処理(ステップ28の事後計測)の手順を図4に示す。
まず、SF値の計算ができないことから、入力されるデータサイズを計算し(ステップ41)、それを基に実行するクエリ処理エンジンを選択する(ステップ42)。
次に、SF値を計算すべき処理の条件の個数を計算する(ステップ43)。
ここで条件が一つの場合は、計測用クエリを作成せずに、ユーザクエリが実行される(ステップ47)。この出力レコード数を計測してSF値を計算し、ユーザクエリを計測用クエリと兼ねることで、余計なリソース消費を回避することができる。
一方、条件が2つ以上の場合は、それぞれの条件における出力レコード数を計測するための計測用クエリを生成する(ステップ44)。ここでリソースの消費を抑える目的で、前述のランダム抽出による計測が適用出来る場合は、計測用クエリに対して同様に適用する。
この計測用クエリは、ユーザクエリが実行されるクエリ処理エンジンとは別のクエリ処理エンジンで実行することで、ユーザクエリの実行を阻害することなく実行させる。そのために、ユーザクエリの実行場所や、各クエリ処理エンジンのリソース状況から、計測用クエリをいつどこで実行するかを決定する(ステップ45)。
そして、各計測用クエリを実行するスレッドを生成することで(ステップ46)、ユーザクエリとは独立して実行される(ステップ47)。これと併せて、ユーザクエリも同様に実行される(ステップ48)。
このような事後計測によれば、ユーザクエリとは別のクエリ処理エンジンで行う計測用クエリの実行によって、ユーザクエリの出力レコード数を計測することで、ユーザクエリが利用するリソースに対する影響を最小限にしつつ、クエリ分割に必要な情報を収集することができる。
そして、ステップ48のユーザクエリや、ステップ47の計測用クエリを実行し、その結果から処理の出力レコード数を計測してSF値を計算し、データベース情報としてマルチデータベース管理データ10に保存する(ステップ49)。
上述した分散クエリ処理装置によれば、データ共有型マルチデータベースシステムにおいて、クエリ処理エンジン4の特性とクエリの内容に応じてユーザクエリを分割するに際して、データベース情報10aからSF値を取得、若しくは、事前計測又は事後計測により効率的に出力レコード数を計測し収集することで、クエリ分割を行うためのSF値を計算するので、クエリ分割に必要な情報収集によるユーザクエリの処理の遅延を削減することができる。
1…分散クエリ処理装置、 2…クライアント、 3…ネットワーク、 4…クエリ処理エンジン、 5…共有データベース、10…マルチデータベース管理データ、 10a…データベース情報、 10b…エンジン情報、 11…分散クエリ生成部、 12…計測用クエリ生成部、 13…計測部、 14…クエリ実行制御部、 15…データ更新部。

Claims (5)

  1. 一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるユーザクエリの処理を行うデータ共有型データベースシステムにおいて、
    前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データと、
    前記ユーザクエリを解析し、前記データベース情報に基づいた前記ユーザクエリの処理毎の出力データサイズと前記エンジン情報とを考慮し適切なクエリ処理エンジンを選択して分散クエリを生成する分散クエリ生成部と、
    前記ユーザクエリの出力レコード数を計測するための計測用クエリを生成する計測用クエリ生成部と、
    前記計測用クエリを実行して出力レコード数を計測する計測部と、
    前記適切なクエリ処理エンジンで前記ユーザクエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部と、
    前記ユーザクエリや前記計測用クエリの実行結果から得られたレコード数を利用して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値を計算し、前記データベース情報を更新するデータ更新部と
    を備えたことを特徴とする分散クエリ処理装置。
  2. 一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるユーザクエリの処理を行うクエリ処理方法において、
    前記ユーザクエリを解析し、クエリ処理するデータ容量を基準に前記ユーザクエリを分割して分散クエリを作成するに際して、前記ユーザクエリの処理毎の出力データサイズを計算する上で必要となる処理毎の入力レコード数と出力レコード数との比であるSF値から、入力データに対する出力データサイズを計算する場合に、
    前記SF値が既にデータベース情報として存在している場合は、当該SF値から出力データサイズを計算し、前記ユーザクエリの分散クエリを実行する複数のクエリ処理エンジンを決定し、前記ユーザクエリの実行を行う手順と、
    前記SF値がデータベース情報として存在していない場合は、出力レコード数を計測するための計測用クエリを作成する一方、当該計測用クエリが前記ユーザクエリから分散クエリを作成する前に実行可能か否かを判断し、
    実行可能である場合は、処理毎の出力データサイズを計算する事前計測を行った後に、前記ユーザクエリの実行を行い、
    実行可能でない場合は、処理毎の出力データサイズを計算しながら前記分散クエリの実行を行う事後計測により前記ユーザクエリの実行を行う手順を含む
    ことを特徴とするクエリ処理方法。
  3. 前記事前計測は、前記ユーザクエリにおいて、クエリ処理の対象となるデータをランダム抽出することで出力レコード数を計測し、ユーザクエリ処理前に出力データサイズを計算する
    請求項2に記載のクエリ処理方法。
  4. 前記事後計測は、入力されるデータサイズを基に実行するクエリ処理エンジンを決定し、ユーザクエリの処理とは別のクエリ処理エンジンを利用してユーザクエリの出力レコード数を計測する
    請求項2に記載のクエリ処理方法。
  5. 請求項2に記載のクエリ処理方法の各手順をコンピュータにより実行可能としたクエリ処理プログラム。
JP2013271882A 2013-12-27 2013-12-27 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム Active JP6139399B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019189962A1 (ko) * 2018-03-27 2019-10-03 주식회사 리얼타임테크 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225639A1 (en) * 2003-05-09 2004-11-11 Oracle International Corporation Optimizer dynamic sampling

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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