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

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

Info

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
Application number
JP2013176710A
Other languages
English (en)
Other versions
JP2015045996A (ja
Inventor
和広 斉藤
和広 斉藤
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 JP2013176710A priority Critical patent/JP6204753B2/ja
Publication of JP2015045996A publication Critical patent/JP2015045996A/ja
Application granted granted Critical
Publication of JP6204753B2 publication Critical patent/JP6204753B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムにおいて、クエリ処理エンジンの特性とクエリの内容に応じてクエリを分割し、自動的に分配して処理を行う分散クエリ処理装置、処理方法及び処理プログラムに関する。
売上データや顧客データなど、企業などの組織で扱われる多くの情報はデータベースシステムに保存され、様々なアプリケーションから利用される。理想的には一つのデータベースシステムに全てのデータを重複させることなく格納し、全てのアプリケーションが一つのデータベースシステムを利用することが望まれる。
しかし実際には、目的に応じて複数のデータベースシステムが構築され、まったく同じデータが複数のデータベースシステムに格納されてしまうことや、同じようなデータが異なるデータ形式・粒度で保持する複数データベースシステムが構築される。
これにより、新規にアプリケーションを構築する上で、必要なデータを持つデータベースシステムを探し、更にその中でどのデータベースシステムに接続すればよいかの検討が必要となる等、様々な点で作業が煩雑になるという問題があった。
このような問題を解決するために、複数のデータベースシステムを仮想的に一つのデータベースシステムに見せるマルチデータベースシステム(又はデータ仮想化システム)が開発されている。
例えば、特許文献1に示されるように、複数の階層的なデータベースシステムを、データマッピングにより仮想的なスキーマに統合し、クエリ実行時において処理対象となるデータを保持するデータベースシステムにクエリを分配するマルチデータベースシステムが提案されている。
このシステムによれば、各データベースシステムで実行されたクエリの結果は中央に収集され、一つに統合して結果を出力するシステムとなっている。しかし、複数のデータベースシステムが同一のデータを保持することを考慮しておらず、仮想的なスキーマの生成時にデータの重複をさけるためには、複数のデータベースシステムのうち、一つしか選択できない。
また、上述したマルチデータベースシステムにおいて、同一のデータを保持するデータベースシステムが複数ある場合のクエリ処理手法に関して、特許文献2に示される手法が提案されている。
この手法によれば、同一のテーブルが複数のデータベースシステムにある場合に、同一のテーブルに対して一つの仮想テーブル名をつけ、クエリ実行時に適切なテーブルを選択し、ユーザとは透過的に同一のテーブルの使い分けを実現している。
一方で、データ規模の大容量化に伴い分散処理技術が発達したことで、データの規模や処理の種類に応じて様々なデータベースシステムが登場してきた。これに伴って、複数のデータベースシステムの構築を回避するために、実データを保存するデータベースと、SQL(Structured Query Languge)等のクエリを処理するクエリ処理エンジン(DBMS)を分離した新しい形式のデータベースシステム(以後、データ共有型データベースシステムと呼ぶ)が登場してきた。
このようなシステムでは、データは重複を避けるために一つのデータベースに収集される。そしてこの一つのデータベースを複数のクエリ処理エンジンが共有し、処理の種類や、対象となるデータの規模等に応じてクエリ処理エンジンを使い分けることで、より効率的なデータ処理が可能となった。
特開平07−141399号公報 特開2008−112289号公報
一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムを利用するにあたり、ユーザがそれぞれのクエリ処理エンジンがどのような特徴を持っているかを把握していない場合がある。このような場合、特定のクエリを実行できないクエリ処理エンジンを選択したり、特定の処理が不得意で遅いクエリ処理エンジンを選択したりするなどの問題が発生する可能性がある。
特許文献1のような既存のマルチデータベースシステムでは、上述したデータ共有型データベースシステムのような構成を考慮していない。そのため、マルチデータベースシステムから見ると、共有されたデータベースであっても、同一のデータを持った複数のデータベースシステムとして認識される。
特許文献2では、データ共有型データベースシステムへの適用を考慮しているが、一つのデータベースを共有する複数のクエリ処理エンジンへの振り分けが、データベースシステム間におけるデータ移動が発生する処理として高コストであると認識するため、複数のクエリ処理エンジンを跨いだクエリ分割を行わない。
また、仮にコストが低く見積もられ、クエリ処理エンジン毎にクエリを分割したとしても、既存のマルチデータベースシステムにおいては、データが同じデータベース上にあるにも関わらず、各クエリ処理の結果を各クエリエンジンから収集し、マルチデータベースシステムの管理サーバ上で結合処理等を行う必要があり、共有しているデータベースを有効活用することができない。振り分けたクエリに依存関係があるとすると、更にはその管理サーバ上の処理結果を元の同じデータベースに再度書き直すという、無駄なデータ移動が発生することとなる。
本発明は上記実情に鑑みて提案されたもので、従来のマルチデータベース技術では想定していなかった一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムにおいて、クエリ処理エンジンの特性とクエリの内容に応じて、クエリ処理エンジンが選択される分散クエリ処理装置、処理方法及び処理プログラムを提供することを目的としている。
上記目的を達成するため本発明(請求項1)の分散クエリ処理装置は、一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるクエリの処理を行うデータ共有型データベースシステムにおいて、次の構成を含むことを特徴としている。
前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データ。
前記クライアントから投稿されたクエリの解析結果に基づいて前記クエリを処理単位に分解し、前記処理単位毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮して適切なクエリ処理エンジンを選択するとともに、該クエリの分解・再構築を行う分散クエリ生成部。
前記適切なクエリ処理エンジンで前記クエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部。
請求項2は、請求項1の分散クエリ処理装置において、前記複数のクエリ処理エンジンは、データサイズに比例して常に安定した実行が可能なクエリ処理エンジンXと、所望の物理メモリサイズまでのテーブルに対する処理は前記クエリ処理エンジンXと比較して高速だがこれを超えるデータに対してクエリを実行できないクエリ処理エンジンYと、を含むことを特徴としている。
請求項3は、請求項1の分散クエリ処理装置において、前記クエリ処理エンジンのエンジン情報を定期的に又はユーザの要求により収集することで前記マルチデータベース管理データを更新するデータ更新部を備えたことを特徴としている。
請求項4は、一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムにおけるクライアントから投稿されるクエリの処理方法において、
クライアントから投稿されたクエリを基にクエリの実行計画を示すクエリプランを生成又は取得し、前記クエリプランを解析することでクエリ処理エンジンにおいて実行される処理フロー、読み込むテーブルと中間データのデータフローを作成するクエリプラン生成/取得/解析手順と、
前記クエリプラン生成/取得/解析手順で生成した処理フローとデータフロー、及び、マルチデータベース管理データのデータベース情報を利用して、テーブルサイズ、処理フロー上の各処理における中間データのデータサイズ、各処理に必要なリソースを計算する計算手順と、
前記計算されたデータサイズや必要なリソースと、マルチデータベース管理データのエンジン情報を基に、前記処理毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮してクエリ処理エンジンを選択するエンジン選択手順と、
処理毎に選択された前記クエリ処理エンジンの情報を基にクエリを生成するクエリ生成手順と、
を実行することを特徴としている。
請求項5は、請求項4に記載の分散クエリ処理方法の各手順について、コンピュータにより実行可能とした分散クエリ処理プログラムであることを特徴している。
本発明によれば、一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムに対するクエリを、各クエリ処理エンジンの特性、処理状況、クエリの処理データサイズ及びクエリ処理内容を考慮し、共有しているデータベース上に作成した一時テーブルを利用するクエリに分割して、クエリ処理エンジンに振り分ける。
その結果、従来のマルチデータベース技術では想定していなかった一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムにおいて、ユーザからは透過的にクエリ処理エンジンの特性を考慮することなく、より適したクエリ処理エンジンの選択が可能となる。
また、各クエリ処理エンジンの特性とクエリの処理内容を考慮してクエリを分割し、共有のデータベース上に作成した一時テーブルに中間データを格納することで、余計なデータ移動をなくした高速なクエリ処理が可能となる。
本発明の分散クエリ処理装置を含む分散クエリ処理システムの全体構成を示すブロック図である。 分散クエリ処理装置の分散クエリ処理生成部における処理を説明するためのブロック図である。 分散クエリ処理システムの全体構成を示すブロック図である。 クエリエンジンにおけるメモリサイズを示す表である。 テーブルaの構成を示す表である。 テーブルbの構成を示す表である。 SQLクエリのサンプル例である。 SQLクエリの処理フロー図である。 SQLクエリのデータフロー図である。 図9のデータフローにおける各データサイズを示す表である。 クエリ処理エンジンXにおける処理フロー図である。 クエリ処理エンジンYにおける処理フロー図である。 図7のSQLクエリを分割して作成したSQLクエリの例である。 図7のSQLクエリを分割して作成したSQLクエリの例である。
本発明の分散クエリ処理装置1を備えた分散クエリ処理システムの実施形態の一例について、図1を参照して説明する。
分散クエリ処理装置システムの主要部となる分散クエリ処理装置1は、クライアント2からのクエリの処理要求に対して、ネットワーク3を介して、データベースシステム(データ共有型データベースシステム)4で処理を行うに際して、クエリ処理エンジンの特性とクエリの内容に応じてクエリを分割し、自動的に分配してクエリの処理を行うシステムであり、分散クエリ処理プログラムが格納された記録媒体やインターネットを介してソフトウエアのダウンロードによりインストールすることで、コンピュータ上に構築されている。
分散クエリ処理装置1が構築されるコンピュータは、オペレーティングシステム(OS)を含む基本プログラムや各種の基本デバイスが記憶されたROMと、各種のプログラムションやデータが記憶されるハードディスクドライブ装置(HDD)と、CR-ROMやDVD等の記憶媒体からプログラムやデータを読み出すメディアドライブ装置と、プログラムを実行するCPUと、このCPUにワークエリアを提供するRAMと、入出力インターフェース(I/F)を介して接続されたディスプレイ、キーボードおよびマウス等のポインティングデバイスと、外部装置と通信するパラレル/シリアルI/Fとを主要部分とする一般的な構成を備えている。
本実施形態の分散クエリ処理装置1では、分散クエリ処理プログラムがシリアル/パラレルI/Fから入力、またはメディアドライブ装置で読み取られてHDDに予め記憶される。分散クエリ処理プログラムは記憶媒体に記憶され、メディアドライブ装置で読み取られてHDDにインストールされる。
分散クエリ処理システムは、分散クエリ処理装置1と、分散クエリ処理装置1に対してクエリ処理を要求するクライアント2と、ネットワーク3を介して接続されたデータベースシステム4から構成される。データベースシステム4は、一つの共有データベース40と複数のクエリ処理エンジン41とを備え、共有データベース40は、複数のクエリ処理エンジン41により共有するようになっている。
クライアント2は、WebアプリケーションサーバやBIツールなどの、データベースシステム4に対して、クエリ処理を要求するソフトウエア及びこれを実装したハードウェアを指す。
分散クエリ処理装置1は、マルチデータベース管理データ10と、データ更新部13と、アクセス管理部14と、分散クエリ生成部15と、クエリ実行制御部16から構成される。
マルチデータベース管理データ10は、共有データベース40の各種情報が記憶されたデータベース情報11と、データベースシステム4の共有データベース40を管理するデータベースマネジメントシステムとしての複数のクエリ処理エンジン41等の情報が記憶されたエンジン情報12を有することで、各種の情報を保持して管理する。
データベース情報11には、共有データベース40におけるスキーマ群の構成、各スキーマのサイズ、アクセス頻度、各スキーマにおける属性一覧、各属性の名前、型、サイズ、付加情報、後述するクエリ処理における中間テーブルの構成とそのサイズの履歴、クエリ処理における出力結果の構成とサイズの履歴を含む共有データベース40に関する情報が管理されている。
エンジン情報12には、ノード数、CPUクロック数、CPUコア数、メモリサイズ、ネットワーク帯域、ディスクサイズ、ディスクアクセス帯域、クエリ処理エンジン名、メタデータ及びデータベースの共有の有無、同時実行可能クエリ数、実行不可クエリ、クエリのアルゴリズム情報、リソースの利用状況(CPU利用率、メモリ利用率、ネットワークトラフィック量、ディスク利用量、ディスクスワップ利用量、ディスクI/O量)を含む各クエリ処理エンジン41の特性に関する情報が管理されている。
データ更新部13は、データベースシステム4におけるクエリ処理エンジン41のエンジン情報12及び共有データベース40のデータベース情報11を定期的に又はユーザの要求により収集することで、マルチデータベース管理データ10を更新する。若しくは、データ更新部13は、クライアント2を介してユーザから入力されるデータを受け付けることで、マルチデータベース管理データ10を更新する。
アクセス管理部14は、クライアント2からのアクセス状況を管理し、クエリの投稿がされた場合に、クエリを分散クエリ生成部15へ出力する制御が行われる。
分散クエリ生成部15は、クライアント2から投稿されたクエリを解析し、マルチデータベース管理データ10のデータベース情報11及びエンジン情報12に基づいて、適切なクエリ処理エンジン41の選択とクエリの分解・再構築を行う。クエリの分解・再構築(分散クエリの作成)とエンジン選択の詳細手順については、後述する。
クエリ実行制御部16は、適切なクエリ処理エンジン41でクエリの処理を実行するとともに、最終的な実行結果を受け取ってクライアント2に転送する。また、クエリの処理を実行するに際して、必要に応じて、分解されたクエリの中間テーブルを共有データベース40上に作成する。
データベースシステム4の各クエリ処理エンジン41は、共有データベース40に対して投稿されたクエリの処理を行う。
共有データベース40は、クエリ処理に必要なデータをクエリ処理エンジン41に提供する。
分散クエリ処理装置1と各クエリ処理エンジン41はネットワーク3を介して接続され、分散クエリ処理装置1で生成された分散クエリは、指定された各クエリ処理エンジン41にネットワーク3を通じて転送され、各クエリの処理結果も同様にネットワーク3を通じてクエリ処理エンジン41から分散クエリ処理装置1へと転送される。
共有データベース40は、物理的に一つである場合だけでなく、複数のデータベースを完全に同期または分散してデータを格納することで仮想的に一つに見せる場合も含まれる。例えば、物理的に離れている複数のデータベースにおいて、ある一つのデータベースへの書き込みが行われると同時に、その更新が他の全てのデータベースにも瞬時に適用される場合、共有する一つのデータベースの形態として適用される。
また、ここでのデータベースは、ハードディスクドライブ(HDD)やメモリなどの情報記憶媒体に保存されたデータベースシステムにおける物理データと、物理データの位置やテーブルスキーマなどのデータベースシステムのデータ構成に関する論理的情報(メタデータ)を含む。
次に、分散クエリ処理装置1におけるクエリ振り分け処理の詳細について説明する。
一つの共有データベース40を複数のクエリ処理エンジン41で共有するデータ共有型データベースに対して、クライアント2からクエリが投稿されると、アクセス管理部14が受け取り、シーケンシャルに分散クエリ生成部15へとクエリを受け渡す。
このとき、分散クエリ生成部15は、図2に示す手順で、クライアント2が投稿したクエリを、適切なクエリ処理エンジン41への分散クエリへと変換する。
クエリプラン生成/取得/解析では、クライアント2から投稿されたクエリを基にクエリの実行計画を示すクエリプランを生成又は取得し、クエリプランを解析することでクエリ処理エンジンにおいて実行される処理のフロー、読み込むテーブルと中間データのデータフローを作成する(ステップ21)。
データサイズとリソース計算では、クエリプラン生成/取得/解析で生成した処理フローとデータフロー、更にマルチデータベース管理データ10のデータベース情報11を利用して、テーブルサイズ、処理フロー上の各処理における中間データのデータサイズ、その他の各処理に必要なリソースを計算する(ステップ22)。
エンジン選択では、処理毎の対象クエリ処理エンジンを選択する。このとき、上記で計算したデータサイズや必要なリソースと、マルチデータベース管理データ10のエンジン情報12を基に、予め定めたクエリ処理エンジン選択基準と照らしあわせた上でクエリ処理エンジンが選択される(ステップ23)。
クエリ生成では、処理毎に、選択されたクエリ処理エンジンの情報を基に、クエリを生成する(ステップ24)。
このとき、処理フローに沿ってクエリを生成するが、複数のクエリ処理エンジンを跨ぐ処理フローとなる場合、一連のクエリ処理の最初に一時テーブルを生成するクエリ文を挿入し、各クエリ処理エンジンにおける最後の処理はこの一時テーブルに対しての挿入処理に変更され、この一連のクエリ処理の最後に一時テーブルの削除処理を挿入する。
クエリエンジン選択後、クエリをそのままにクエリ分割できない場合は、処理フローやデータフローからエンジン別のクエリを再構築(再作成)する。
続いて、クエリ処理を行う方法について、具体例を参照して説明する。
図3は、実際のクエリ処理におけるシステム構成例で、クエリ処理エンジンXとクエリ処理エンジンYが、共有のデータベースAを利用している。この構成により、クライアント2からは、同一のデータを持った2つのデータベースに見える。
例えば、クエリ処理エンジンXは、データサイズに比例して常に安定した実行が可能で、一方、クエリ処理エンジンYは、物理メモリサイズ(32GB)までのテーブルに対する処理はクエリ処理エンジンXと比較して高速だがこれを超えるデータに対してクエリを実行できないと仮定する。クエリ処理エンジンXとクエリ処理エンジンYの各物理メモリは、図4に示す通りとなっている。
この前提から、振り分け条件として処理対象データがクエリ処理エンジンYの物理メモリサイズを超えた場合にクエリ処理エンジンXへ分配し、クエリ処理エンジンYの物理メモリサイズ以下の処理対象データに対する処理をクエリ処理エンジンYへ分配する。
テーブルa(図5)及びテーブルb(図6)に対するSQLクエリ(図7)を例に、クエリ処理について説明する。
このSQLクエリは、テーブルa及びbを「テーブルaに含まれる属性idとテーブルbに含まれる属性aidが等しいレコード」という条件で結合処理(JOIN処理)を行い、その結果を「テーブルaに含まれる属性dateが等しいレコード」で集計し、これに紐づくテーブルbのsalesの合計値を計算(AGGREGATE処理(GROUP BY + SUM))し、このレコードをdate値で降順にソート(ORDER BY処理)するという内容となっている。
クライアント2から図7のSQLクエリが投稿されると、分散クエリ生成部15はクエリプランを生成し、上述の処理順の通りに図8の処理フローと、各処理における入出力のデータから図9のデータフローを作成する。
ここでは、「テーブル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)するものとする。
このデータフローと、対応する処理やデータベース情報から、フローにおける各データのサイズを図10のように見積る。このデータサイズと図4の物理メモリを比較し、入力データもしくは出力データが物理メモリサイズを超えているかどうかを判定することで、各処理を行うクエリ処理エンジンを決定する。
すなわち、「JOIN処理」までが全てクエリ処理エンジンYの物理メモリサイズ32GBを超えていることから、「テーブルaの読み込み」、「テーブルbの読み込み」、「JOIN処理」をクエリ処理エンジンXで処理し、残りの「AGGREGATE処理(GROUP BY + SUM)」、「ORDER BY処理」をクエリ処理エンジンYで行うこととなる。
上述したクエリ処理の場合、複数のクエリ処理エンジンを跨ぐ処理となるので、クエリ処理エンジンXとクエリ処理エンジンYの間でデータのやり取りを行うために、共有のデータベースA上に中間データ(一時テーブルtemp)を作成し、利用することが行われる。
すなわち、一連のクエリ処理の最初に一時テーブルの作成処理(一時テーブルを生成するクエリ文を挿入)、各クエリ処理エンジンにおける最後の処理は、一時テーブルに対しての書き込み処理(挿入処理)に変更し、一連のクエリ処理の最後に一時テーブルの削除処理を追加する。
図11がクエリ処理エンジンXにおける処理フローであり、分配された処理に加えて、最初に一時テーブルtempの作成処理(ステップ80)と、「JOIN処理」の後に処理結果をテーブルtempへ書き込む処理(ステップ83)が追加されている。
更に、図12がクエリ処理エンジンYにおける処理フローであり、分配された処理に加えて、最初にクエリ処理エンジンXが作成したtempのデータを読み込む処理(ステップ84)と、処理終了後にtempを削除する処理(ステップ87)が追加されている。
図11及び図12の処理フローを基に、図7のSQLクエリを分割して作成したSQLクエリは、図13及び14のようになる。すなわち、図13のSQLクエリが図11のクエリ処理エンジンXにおける処理に対応し、図14のSQLクエリが図12のクエリ処理エンジンYにおける処理に対応する。
上述したクエリ処理によれば、クエリを分割して、同じ共有データベース40を共有している点を利用し、データ移動における余計なオーバヘッドを発生させずに、より高速にクエリを実行することができる。
1…分散クエリ処理装置、 2…クライアント、 3…ネットワーク、 4…データベースシステム、 10…マルチデータベース管理データ、 11…データベース情報、 12…エンジン情報、 13…データ更新部、 14…アクセス管理部、 15…分散クエリ生成部、 16…クエリ実行制御部、 40…共有データベース、 41…クエリ処理エンジン。

Claims (5)

  1. 一つのデータベースを複数のクエリ処理エンジンが共有し、クライアントから投稿されるクエリの処理を行うデータ共有型データベースシステムにおいて、
    前記データベースに関するデータベース情報と、前記クエリ処理エンジンの特性に関するエンジン情報とを管理するマルチデータベース管理データと、
    前記クライアントから投稿されたクエリの解析結果に基づいて前記クエリを処理単位に分解し、前記処理単位毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮して適切なクエリ処理エンジンを選択するとともに、該クエリの分解・再構築を行う分散クエリ生成部と、
    前記適切なクエリ処理エンジンで前記クエリの処理を実行するとともに、最終的な実行結果を受け取って前記クライアントに転送するクエリ実行制御部と、
    を備えたことを特徴とする分散クエリ処理装置。
  2. 前記複数のクエリ処理エンジンは、データサイズに比例して常に安定した実行が可能なクエリ処理エンジンXと、
    所望の物理メモリサイズまでのテーブルに対する処理は前記クエリ処理エンジンXと比較して高速だがこれを超えるデータに対してクエリを実行できないクエリ処理エンジンYと、
    を含む請求項1に記載の分散クエリ処理装置。
  3. 前記クエリ処理エンジンのエンジン情報を定期的に又はユーザの要求により収集することで前記マルチデータベース管理データを更新するデータ更新部を備えた
    請求項1に記載の分散クエリ処理装置。
  4. 一つのデータベースを複数のクエリ処理エンジンが共有するデータ共有型データベースシステムにおけるクライアントから投稿されるクエリの処理方法において、
    クライアントから投稿されたクエリを基にクエリの実行計画を示すクエリプランを生成又は取得し、前記クエリプランを解析することでクエリ処理エンジンにおいて実行される処理フロー、読み込むテーブルと中間データのデータフローを作成するクエリプラン生成/取得/解析手順と、
    前記クエリプラン生成/取得/解析手順で生成した処理フローとデータフロー、及び、マルチデータベース管理データのデータベース情報を利用して、テーブルサイズ、処理フロー上の各処理における中間データのデータサイズ、各処理に必要なリソースを計算する計算手順と、
    前記計算されたデータサイズや必要なリソースと、マルチデータベース管理データのエンジン情報を基に、前記処理毎に前記各クエリ処理エンジン自身が有する処理の特性を考慮してクエリ処理エンジンを選択するエンジン選択手順と、
    処理毎に選択された前記クエリ処理エンジンの情報を基にクエリを生成するクエリ生成手順と、
    を実行することを特徴とする分散クエリ処理方法。
  5. 請求項4に記載の分散クエリ処理方法の各手順をコンピュータにより実行可能とした分散クエリ処理プログラム。
JP2013176710A 2013-08-28 2013-08-28 分散クエリ処理装置、処理方法及び処理プログラム Active JP6204753B2 (ja)

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)

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

* Cited by examiner, † Cited by third party
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 富士通株式会社 分散処理装置、分散処理プログラムおよび分散処理方法

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