JP2016130929A - 集約装置、集約システム、集約方法、および、プログラム - Google Patents

集約装置、集約システム、集約方法、および、プログラム Download PDF

Info

Publication number
JP2016130929A
JP2016130929A JP2015004726A JP2015004726A JP2016130929A JP 2016130929 A JP2016130929 A JP 2016130929A JP 2015004726 A JP2015004726 A JP 2015004726A JP 2015004726 A JP2015004726 A JP 2015004726A JP 2016130929 A JP2016130929 A JP 2016130929A
Authority
JP
Japan
Prior art keywords
aggregation
data set
sum
value
variable
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.)
Pending
Application number
JP2015004726A
Other languages
English (en)
Inventor
浩平 海外
Kohei Kaigai
浩平 海外
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015004726A priority Critical patent/JP2016130929A/ja
Publication of JP2016130929A publication Critical patent/JP2016130929A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 データセットの集約演算を、緩和された制約条件のもとで、高速に実行する。【解決手段】 集約装置は、N(複数)個の原レコードからなる全体データセットを格納するデータ記憶手段に接続され、当該全体データセットをn(N未満の複数)個の部分集合に分割し、各部分集合に対して指定された集約演算を行って中間結果を含むn個の中間レコードからなる部分集約済みデータセットを出力する集約前処理手段と、指定されたデータセットに対して指定された集約演算を行って、集約結果を装置外に出力するクエリ実行手段と、全体データセットに対する第1の集約演算命令を受信して、前処理部に第2の集約演算を実行させ、クエリ実行手段に部分集約済みデータセット対して第3の集約演算を実行させるクエリ最適化手段と、を備える。【選択図】 図2

Description

本発明は、集約装置、集約システム、集約方法、および、プログラム、特に、データセットの数値データを集約する集約装置、集約システム、集約方法、および、プログラム関する。
リレーショナルデータベース管理システムは、データを、列および行から成る表(テーブル)形式で保存する。リレーショナルデータベースの利用者は、データを読み出す際に、クエリ言語、例えばSQL(Structured Query Language)により、どの表から、どの列を、どういった条件で読み出すかを指定する。
データベース活用の一領域であるOLAP(Online Analytic Processing)等では、利用者は、リレーショナルデータベースシステムに蓄積された大量のデータに対し、集約演算と呼ばれる操作を実行する。集約演算は、特定の列(集約キー)の値が等しい行同士をグループ化し、各々グループごとに、そのグループ内で別の列に含まれる値の平均値や合計、標準偏差といった統計情報を算出する演算である。
図1は、集約演算の例を示す図である。本図において、左側の表が入力データである。右側の表は、この入力データに対して、集約キーをX列としてY列のデータの平均値を求める集約演算を実行した結果を示す。結果の表は、Yの平均値をAVG(Y)列に、当該グループに属す行の数をCOUNT(*)列に示している。例えば、本図の左側の入力データにおいて、X列の値が“ccc”である行のグループは3行目と7行目を含み、当該2つの行のY列の値は30と20である。本図の右側の表の3行目は、このグループの集約演算の結果を示し、AVG(Y)列の値が25、COUNT(*)列の値が2となっている。
リレーショナルデータベース管理システムは、OLAPにおける集約演算を、例えば、次のように実行する。まず、リレーショナルデータベース管理システムは、入力データを集約キー値でソートする。その後、当該システムは、ソート済みの入力データの行をチェックして、集約キー値が一つ前の行の値と同じである限り、平均値や合計値を計算し続け、集約キー値の値が変わった時点で、そこまで記録した集約演算結果を出力する。
上述した方法を用いた場合、大規模な入力データの集約演算の計算時間は長くなることが多い。多数の行データの処理が必要になるからである。特に、前処理として入力データのソートが発生するときには、顕著に長い処理時間を要する。ソートのアルゴリズムにもよるが、計算時間は、データ量の増加率よりも大きな比率で増加する。
この問題に対応するため、以下の特許文献に示すような様々な工夫がなされている。
特許文献1は、リレーショナルデータベースにおける最大値、最小値、合計値を求める集約演算を、複数の処理装置で並列に行うシステムを開示する。このシステムは、リレーショナルデータベースを複数の副処理装置に分割して格納する。副処理装置は、並行して、各々に格納された部分の最大値、最小値、合計値を求める集約演算を実行し、その結果を主処理装置に送信する。主処理装置は、全副処理装置から送信された結果に対して、副処理装置と同様な集約演算を行い、最終結果を得る。
特許文献2は、リレーショナルデータベースにおける関数従属性の特性を利用して集約演算を行うべきレコード数を削減するシステムを開示する。
特許文献3は、データベース・ユーザ定義プログラムを高パフォーマンス並列コンピュータ上で実行するシステムを開示する。
特許文献4は、データベースへのデータ格納をデータベースサービスと並行して処理するデータベース管理システムを開示する。
特開平5−2610号公報 国際公開2007/002281号 国際公開2009/038911号 特開2002−157156号公報
特許文献1のシステムは、リレーショナルデータベースの集約演算を指示され、各副処理装置、および、主処理装置で、指示された演算を実行する。演算の対象となるデータは変わるが、実行する演算は同じである。最大値、最小値、合計値は、このような方法で計算可能であるが、この仕組みで可能な演算の種類は限られる。
特許文献2の技術は、データの特性に基づいて計算量を減らすものであり、その有効性はデータ特性に制限される。
特許文献3のシステムは、並列実行可能な部分を予めユーザ定義関数として事前定義させなければならない。
本発明は、上述の制限を排除若しくは緩和させるための集約装置、集約システム、集約方法、および、プログラムを提供することを目的とする。
本発明の1実施形態にかかる集約装置は、N(複数)個の原レコードからなる全体データセットを格納するデータ記憶手段に接続され、当該全体データセットをn(N未満の複数)個の部分集合に分割し、各部分集合に対して指定された集約演算を行って中間結果を含むn個の中間レコードからなる部分集約済みデータセットを出力する集約前処理手段と、指定されたデータセットに対して指定された集約演算を行って、集約結果を装置外に出力するクエリ実行手段と、前記全体データセットに対する第1の集約演算命令を受信して、前記前処理部に第2の集約演算を実行させ、前記クエリ実行手段に前記部分集約済みデータセット対して第3の集約演算を実行させるクエリ最適化手段と、を備える。
本発明の1実施形態にかかる集約方法は、データ記憶手段に格納された、N(複数)個の原レコードからなる全体データセットに対する第1の集約演算命令を受信して、当該全体データセットを、n(N未満の複数)個の部分集合に分割し、各部分集合に対して第2の集約演算を行って中間結果を含むn個の中間レコードからなる部分集約済みデータセットを生成し、前記部分集約済みデータセットに対して第3の集約演算を行って、集約結果を出力する。
本発明にかかる集約装置は、リレーショナルデータベースなどのデータセットに対する、集約演算を、緩和された制約条件のもとで、高速に実行することが出来る。
図1は、集約演算の例を示す図である。 図2は、第1の実施の形態の集約システム50の構成を示す。 図3は、集約装置10が実行する集約演算の処理フロー(その1)である。 図4は、集約装置10が実行する集約演算の処理フロー(その2)である。 図5は、集約前処理ステップで行われる部分データセットの集約処理を説明する概念図である。 図6は、並列演算部30は、部分データセットの集約を、複数の部分データセットについて、並列して実行する状況を説明する概念図である。 図7は、第2の実施の形態の集約装置10の構成を示す。
<第1の実施の形態>
本実施の形態の集約システム50は、リレーショナルデータベース等から読み出した多数の入力レコードに対して問合せ(クエリ)で要求された集約演算を行う際に、a)並列プロセッサによる前処理と、b)クエリの変更とを組み合わせて実行する。これにより、集約システム50は、クエリの応答時間を短縮する。
図2は、第1の実施の形態の集約システム50の構成を示す。集約システム50は、集約装置10と、データ記憶部20、および、並列演算部30を包含する。データ記憶部20、および、並列演算部30は、集約装置10に接続されている。
データ記憶部20は、例えば、リレーショナルデータベースを格納する。集約システム50は、利用者端末装置(以下、利用者と呼ぶ)からクエリを受信して、当該クエリで要求されたリレーショナルデータベースの集約演算を実行し、実行結果を利用者に送信する。
集約装置10は、クエリ構文解析部11、クエリ最適化部12、クエリ実行部13、集約前処理部14、および、通信部15を包含する。
利用者は、データ記憶部20に格納されているデータベースへの問い合わせを、通信部15を通じて集約装置10へ送出する。集約装置10が受け取った問い合わせは、次にクエリ構文解析部11へと送られる。クエリ構文解析部11は、文字列として渡された問い合わせを内部形式へと変換し、クエリ最適化部12に送出する。
クエリ実行部13は、図示しないデータ集約装置、データソート装置、等を有しても良い。データソート装置は、レコードのソートを実行する専用の装置である。データ集約装置は、複数のレコードの集約演算を行う専用装置である。
一般的にリレーショナルデータベースシステムは、多種多様な問い合わせを処理するための実行装置群を備えており、クエリ最適化部12は、これらの実行装置群を組み合わせて最も効率的に問い合わせを実行するためのクエリ実行計画を作成する。
クエリ実行部13は、クエリ最適化部12が作成したクエリ実行計画に基づいて実行装置群を起動し、問合せで要求された演算を行う。最後にクエリ実行部13は、最終的な処理結果を、通信部15経由で利用者へと返信する。
図3は、集約装置10が実行する集約演算の処理フロー(その1)である。図3が示すフローは、通常のリレーショナルデータベースシステムでも実行されていた集約演算と類似したフローである。
このクエリ実行フローは、ディスクスキャン(S1)、データソート(S2)、および、データ集約(S3)の3つの処理ステップから成る。クエリ実行部13は、クエリ最適化部12が作成した実行計画に従って、以下のように動作する。
クエリ実行部13は、ディスクスキャンステップにおいて、データ記憶部20から入力データを読み出し、データベースのレコードとして主記憶上にロードする。この時、各レコードは、集約キーとなる列、例えばX列、および、集約演算の対象となる列、例えばY列を含んでいる。レコードの並び順は規定されない。
次に、クエリ実行部13は、データソートステップにおいて、これらのレコードをX列の値をキーとしてソートする。クエリ実行部13は、このとき、図示されないデータソート装置を用いても良い。クエリ実行部13は、このデータソートステップで、入力と同じ型のレコードを、集約キーの大小関係の順に並べ替えて出力する。
通常、最速とされるクイックソートを用いた場合でも、クエリ実行部13は、N行(Nは複数)からなるデータベースのレコードの並び替えに、Nlog2N回の比較を行わなければならない。したがって、このソートステップの実行時間は、問合せの応答時間に大きな影響を与える。
データ集約ステップにおいて、クエリ実行部13は、集約キーでソートされたレコードをソートされた順にチェックする。チェックしたレコードのX列の値が、一つ前にチェックしたレコードのX列の値と同じである限り、クエリ実行部13は、集約演算、例えば、Y列の平均値(AVG(Y))と行数(COUNT(*))の計算を続ける。X列の値が、値が次のグループに移ったか終端に達したとき、クエリ実行部13は、前のグループのAVG(Y)とCOUNT(*)の値を出力する。データ集約ステップにおいて、クエリ実行部13は、図示されないデータ集約装置を用いても良い。
図4は、集約装置10が実行する集約演算の処理フロー(その2)である。図4に示すフローは、上述したa)並列プロセッサによる前処理と、b)クエリの変更を包含するフローである。集約装置10が、図3のフローと図4のフローとを、どのように選択して使い分けるかは後述する。
クエリ最適化部12は、図4に示すフローの実行計画においても図3ときと同様に、ディスクスキャン(S10)、データソート(S20)、データ集約(S30)のステップを組み込む。但し、クエリ最適化部12は、図4に示すフローの実行計画には、ディスクスキャン(S10)とデータソート(S20)の間に集約前処理(S15)のステップを挟み込む。
クエリ実行部13、および、集約前処理部14は、クエリ最適化部12が作成した実行計画に従って、以下のように動作する。
まず、クエリ実行部13は、ディスクスキャンステップ(S10)において、データ記憶部20からNレコードからなる入力データを読み出す。クエリ実行部13は、読み出したデータ(全体データセット)を、例えば、集約装置10の主記憶装置に格納する。
集約前処理ステップ(S15)において、集約前処理部14は、全体データセットを、例えば、一定数k(kは複数)レコードごとの部分データセットに分割する。集約前処理部14は、例えば、並列演算部30の主記憶サイズに応じて入力データを複数の領域に分割する。分割は、必ずしも同じレコード数ごとに行う必要は無い。
次に、集約前処理部14は、並列演算部30を使用して、その部分データセットの集約処理を行う。
ここで、並列演算部30は、例えば、数百乃至数千レベルの並列演算可能なプロセッサを備え、集約装置10のクエリ実行部13よりも十分に大きな計算能力を有している。また、並列演算部30は、集約装置10とは独立な主記憶装置を持っているが、その容量は集約装置10の主記憶装置よりも小さくても良い。並列演算部30は、その主記憶装置に格納された部分データセットに対しては非常に高速なソートや、集約処理を行う事ができる。
並列演算部30の並列計算特性を活かしたソート処理は、例えば、Bitonic-SortingやRedix-Sortingが知られている。また、並列演算部30の並列計算特性を活かした集約処理は、例えば、Parallel Reductionアルゴリズムが知られている。並列演算部30は、例えば、これらのアルゴリズムを用いる事により、入力データの一部分に対する部分集約処理を高速に実行する。
図5は、集約前処理ステップ(S15)で行われる部分データセットの集約処理を説明する概念図である。
集約前処理部14は、順番に、各部分データセットを並列演算部30の主記憶装置に格納し、並列演算部30を起動する。起動された並列演算部30は、部分データセットのソートと集約処理を行い、集約済みのデータセット(部分集約済みデータセット)を集約前処理部14に出力する。そして、集約前処理部14は、部分集約済みデータセットを、受け取ると、クエリ実行部13に出力する。
図5は、集約前処理部14が、i行目(iはkの倍数)からi+k行目までのレコードからなる部分データセットを、並列演算部30の主記憶装置に格納し、当該部分データセットのソートと集約を行い、部分集約済みデータセットを出力する様子を示している。
図4のS15で、すべての部分集約済みデータセットが集約前処理部14からクエリ実行部13に渡されると、クエリ実行部13は、すべての部分集約済みデータセットに属するレコード(中間レコード)に対して、データソート(S20)とデータ集約(S30)を行う。このとき、クエリ実行部13は、図示されないデータソート装置、および、データ集約装置を用いても良い。
クエリ実行部13が行うデータソート(S20)とデータ集約(S30)は、部分集約済みデータセットを対象とする。これにより、クエリ実行部13に入力されるレコードの数が、図3のフローの場合より大幅に少なくなることが期待される。また、並列演算部30は、クエリ実行部13も大幅に処理速度が優れる事が期待できる。さらに、並列演算部30を使うことで、クエリ実行部13の負荷を下げる事が出来る。これらの効果により、集約システム50は、問い合わせ結果を利用者へ返却する際の応答速度を改善できる。
ここで、全体データセットが、部分データセットの集約事前処理(S15)と、その結果作成された部分集約済みデータセットの集約(S20、S30)に分けて集約される意味を説明する。
図1で説明したように、集約演算は、あるグループ化キー値の同じレコード同士で平均値や合計、標準偏差といった値を計算するものである。集約演算の中には、部分データセットの集約(S15)の結果を、後で統合する(S20、S30)事によって、全体データセットを直接集約した場合と等価な結果を得られるものがある。
例えば、全体データセットのグループ化されたレコードの件数を示すCOUNT(*)は、部分集約済みデータセットの同グループに含まれる行数NROWS、すなわち、各部分データセットの同グループ内のレコード数、の合計と等価である。集約装置10は、全体データセットに対するCOUNT(*)の値として、全部分集約済みデータセットのNROWSの合計値SUM(NROWS)を出力しても良い。
また、列Yの平均値AVG(Y)は、部分データセットの集約で集計されたYの部分合計値P_SUM(Y)の合計値SUM(P_SUM(Y))を、部分集約済みデータセットに含まれる行数NROWSの合計値SUM(NROWS)で除した値と等価である。したがって、集約装置10は、AVG(Y)として、上記の除算結果を出力しても良い。
さらに、列Yの分散VARIANCE(Y)は、定義により以下の式(1)で計算される。
Figure 2016130929
すなわち、VARIANCE(Y)は、部分集約で集計された、Yの二乗の部分合計値P−SUM(Y^2)の合計値SUM(P_SUM(Y^2))から、SUM(P_SUM(Y))の2乗を減じた値を、SUM(NROWS)で除した値と等価である。したがって、集約装置10は、VARIANCE(Y)として、上記の除算結果を出力しても良い。
この手法を適用する事で、集約装置10は、行数、平均値、総和、最大値、最小値、分散、標準偏差、共分散、相関係数等の演算を、部分データセットの集約事前処理と、その結果作成された部分集約済みデータセットの集約との組み合わせで実行できる。
すなわち、集約装置10は、全体データセットに対する第1の集約演算を、各部分データセットに対する第2の集約演算と部分集約済みデータセットに対する第3の集約演算の組み合わせに変換して実行できる。なお、総和、最大値、および、最小値の演算については、第1乃至第3の集約演算は同じであるが、他の値の計算については、第1乃至第3の集約演算はそれぞれ異なった演算となる。
利用者が、問合せを集約装置10に送信した時、クエリ最適化部12は、クエリ構文解析部11が内部形式に変換した後の問い合わせを検査する。
問い合わせが、行数、平均値など、部分集約結果を後で統合して全体の結果を得る事が出来る集約演算を含む場合には、クエリ最適化部12は、図4に示したフローを実行するクエリ実行計画を生成する。そして、クエリ最適化部12は、作成したクエリ実行計画を、クエリ実行部13に送る。
そうでない場合は、クエリ最適化部12は、図3に示したフローを実行するクエリ実行計画を生成する。
図4に示したフローを実行するクエリ実行計画をクエリ実行部13に送るとき、クエリ最適化部12は、クエリの内容を、全体データセットを対象にしたものから、部分集約済みデータセットを対象にしたものに書き換える。
例えば、利用者が入力した問い合わせが、全体データセットに対してグループ化キーをX列として、件数COUNT(*)、および、列Yの平均値AVG(Y)を出力するものであったとする。
部分集約済みデータセットのレコードは、グループ対応に、X、P_SUM(Y)、および、NROWSの各データ項目を含む表を含むものとする。この場合、クエリ中のCOUNT(*)は、SUM(NROWS)に書き換えられる。さらに、クエリ中のAVG(Y)は、SUM(P_SUM(Y))/SUM(NROWS)を計算する集約関数に書き換えられる。この集約関数は、例えば、AVG_EX(NROWS,P_SUM(Y))と表記される。
この結果、クエリ実行部13のデータ集約装置は、COUNT(*)を出力すべきフィールドにSUM(NROWS)を出力する。さらに、クエリ実行部13のデータ集約装置は、AVG(Y)を出力すべきフィールドにAVG_EX(NROWS,P_SUM(Y))を出力する。
このように、クエリ最適化部12は、クエリ実行部13内に存在するデータソート装置およびデータ集約装置に与えられる問い合わせを書き換える。これにより、集約前処理部14が生成する部分集約済みデータセットを使って、元々の問い合わせで要求された結果と数学的に等価な結果をデータソート装置およびデータ集約装置に計算させることが出来る。このため、クエリ実行部13内に存在するデータソート装置およびデータ集約装置自体は既存技術として存在するものを利用可能である。
なお、クエリ最適化部12は、クエリ実行計画をクエリ実行部13に実行させるために、必ずしも、クエリを書き換えなくても良い。クエリ最適化部12は関数呼び出し等、別のインターフェースを使用して、クエリ実行部13の動作を制御しても良い。
なお、集約装置10が集約演算をする対象は、リレーショナルデータベースに限られない。データセット内のレコードが集約キーと集約されるデータを包含すれば、集約装置10は、当該データセットを集約演算する対象にできる。
ここで、クエリ構文解析部11、クエリ最適化部12、クエリ実行部13、集約前処理部14、および、通信部15は、論理回路で構成される。クエリ構文解析部11、クエリ最適化部12、クエリ実行部13、集約前処理部14、または、通信部15は、コンピュータでもある、集約装置10の図示されないプロセッサで実行されるプログラムで実現されても良い。
データ記憶部20は、ディスク装置、半導体装置等の記憶装置である。データ記憶部20は、集約装置10と通信網で接続されたファイルサーバ装置等の情報処理装置であっても良い。
集約装置10は、リレーショナルデータベースなどのデータセットに対する、集約演算を、高速に実行することが出来る。
第1の理由は、集約前処理部14が、全体データセットを分割した、各部分データセットの集約を行い、その結果をクエリ実行部13が統合するからである。一般的に、クエリ実行部13は(内在するデータソート装置、データ集約装置を含め)、並列実行性能に劣る。本実施の形態の集約装置10は、クエリ実行部13が統合処理でデータソートおよびデータ集約するレコードの件数を削減する。
第2の理由は、集約前処理部14が、各部分データセットの集約を、並列演算部30を用いて行うからである。並列演算部30は、並列実行性能において優れるため、集約前処理を高速に実行する事ができる。
集約装置10は、リレーショナルデータベースなどのデータセットに対する、集約演算を、緩和された制約条件の下で、高速に実行することが出来る。
その理由は、集約前処理部14とクエリ実行部13が、クエリで要求された演算を、数学的に等価な結果を出力する、異なる演算の組み合わせでも実行できるからである。したがって、集約装置10は、総和、最大値、および、最小値の集約演算だけでなく、平均、分散などの集約演算も可能である。
また、集約装置10は、扱うデータに特別な特性も要求せず、複雑なユーザ定義情報も必要としない。
<本実施形態の変形例>
並列演算部30は、部分データセットの集約を、複数の部分データセットについて、並列して実行しても良い。この場合、1つの部分データセットの集約処理は、必ずしも、並列処理されなくても良い。
図6は、この場合の並列処理の様子を示す概念図である。図6において、並列演算部30は、m個(mは複数)のプロセッサを備えている。各々のプロセッサは、別々の部分データセットの集約を行い、別々の部分集約済みデータセットを出力する。この場合の並列演算部30は、上述の並列演算部30より演算コア数が少なくても良い。
<第2の実施形態>
図7は、第2の実施の形態の集約装置10の構成を示す。
集約装置10は、N(複数)個の原レコードからなる全体データセットを格納するデータ記憶部20に接続されている。当該集約装置10は、クエリ最適化部12、クエリ実行部13、および、集約前処理部14と、を備える。
集約前処理部14は、当該全体データセットをn(N未満の複数)個の部分集合に分割し、各部分集合に対して指定された集約演算を行って中間結果を含むn個の中間レコードからなる部分集約済みデータセットを出力する。クエリ実行部13は、指定されたデータセットに対して指定された集約演算を行って、集約結果を装置外に出力する。
クエリ最適化部12は、全体データセットに対する第1の集約演算命令を受信して、前処理部に第2の集約演算を実行させ、クエリ実行手段に部分集約済みデータセット対して第3の集約演算を実行させる。
集約装置10は、リレーショナルデータベースなどのデータセットに対する、集約演算を、高速に実行することが出来る。
その理由は、集約前処理部14が、全体データセットを分割した、各部分データセットの集約を行い、その結果をクエリ実行部13が統合するからである。一般的に、クエリ実行部13は、並列実行性能に劣る。本実施の形態の集約装置10は、クエリ実行部13が統合処理でデータソートおよびデータ集約するレコードの件数を削減する。
集約装置10は、リレーショナルデータベースなどのデータセットに対する、集約演算を、緩和された制約条件の下で、高速に実行することが出来る。
その理由は、集約前処理部14とクエリ実行部13が、クエリで要求された演算を、数学的に等価な結果を出力する、異なる演算の組み合わせでも実行できるからである。したがって、集約装置10は、総和、最大値、および、最小値の集約演算だけでなく、平均、分散などの集約演算も可能である。
また、集約装置10は、扱うデータに特別な特性も要求せず、複雑なユーザ定義情報も必要としない。
本発明にかかる集約システム50は、DWH(Data ware House)などデータベースに蓄積された大量のデータを参照し、集計結果を高速に抽出する事が要求される場合に有効である。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
10 集約装置
11 クエリ構文解析部
12 クエリ最適化部
13 クエリ実行部
14 集約前処理部
15 通信部
20 データ記憶部
30 並列演算部
50 集約システム

Claims (10)

  1. N(複数)個の原レコードからなる全体データセットを格納するデータ記憶手段に接続され、
    当該全体データセットをn(N未満の複数)個の部分集合に分割し、各部分集合に対して指定された集約演算を行って中間結果を含むn個の中間レコードからなる部分集約済みデータセットを出力する集約前処理手段と、
    指定されたデータセットに対して指定された集約演算を行って、集約結果を装置外に出力するクエリ実行手段と、
    前記全体データセットに対する第1の集約演算命令を受信して、前記前処理部に第2の集約演算を実行させ、前記クエリ実行手段に前記部分集約済みデータセット対して第3の集約演算を実行させるクエリ最適化手段と、を備える集約装置。
  2. 前記原レコードの各々は、変数Yの値を包含し、
    前記クエリ最適化手段は、前記全体データセットに対する変数Yの値の平均値を求める第1の集約演算命令を受信すると、1)前記前処理部に、各部分集合の原レコード数であるNROWSと、各原レコードの変数Yの値の合計であるP−SUM(Y)と、を求める第2の集約演算を実行させ、2)前記集約部に、各部分集合のP−SUM(Y)の合計値を各部分集合のNROWSの合計値で除す第3の集約演算を実行させる、請求項1の集約装置。
  3. 前記原レコードの各々は、変数Yの値を包含し、
    前記クエリ最適化手段は、前記全体データセットに対する変数Yの値の分散を求める第1の集約演算命令を受信すると、1)前記前処理部に、各部分集合の原レコード数であるNROWSと、各原レコードの変数Yの値の合計であるP−SUM(Y)と、各原レコードの変数Yの値の二乗の合計であるP−SUM(Y^2)と、を求める第2の集約演算を実行させ、2)前記集約部に、各部分集合のP−SUM(Y^2)の合計値から、各部分集合のP−SUM(Y)の合計値の2乗を減じた値を、各部分集合のNROWSの合計値で除す第3の集約演算を実行させる、請求項1の集約装置。
  4. 前記原レコードの各々は、変数Xの値を包含し、
    前記集約前処理手段は、変数Xの値をキーに部分集合に属する原レコードをソートして、変数Xの値が同一である原レコードのグループごとに第2の集約演算を実行して、変数Xの値対応の中間結果を包含する中間レコードを生成し、
    前記クエリ実行手段は、変数Xの値が同一である中間結果を対象に第3の集約演算を行う、請求項1の集約装置。
  5. 並列演算が可能な並列演算手段に接続され、
    前記集約前処理手段は、前記並列演算手段を用いて、ソートと第2の集約演算を並列に実行する、請求項4の集約装置。
  6. 請求項5の集約装置と、
    前記並列演算手段と、
    前記データ記憶手段と、を包含する集約システム。
  7. データ記憶手段に格納された、N(複数)個の原レコードからなる全体データセットに対する第1の集約演算命令を受信して、
    当該全体データセットを、n(N未満の複数)個の部分集合に分割し、各部分集合に対して第2の集約演算を行って中間結果を含むn個の中間レコードからなる部分集約済みデータセットを生成し、
    前記部分集約済みデータセットに対して第3の集約演算を行って、集約結果を出力する集約方法。
  8. 前記原レコードの各々は、変数Yの値を包含し、
    前記全体データセットに対する変数Yの値の平均値を求める第1の集約演算命令を受信すると、1)各部分集合の原レコード数であるNROWSと、各原レコードの変数Yの値の合計であるP−SUM(Y)と、を求める第2の集約演算を実行し、2)各部分集合のP−SUM(Y)の合計値を各部分集合のNROWSの合計値で除す第3の集約演算を実行する、請求項7の集約方法。
  9. 前記原レコードの各々は、変数Yの値を包含し、
    前記全体データセットに対する変数Yの値の分散を求める第1の集約演算命令を受信すると、1)各部分集合の原レコード数であるNROWSと、各原レコードの変数Yの値の合計であるP−SUM(Y)と、各原レコードの変数Yの値の二乗の合計であるP−SUM(Y^2)と、を求める第2の集約演算を実行し、2)各部分集合のP−SUM(Y^2)の合計値から、各部分集合のP−SUM(Y)の合計値の2乗を減じた値を、各部分集合のNROWSの合計値で除す第3の集約演算を実行する、請求項7の集約方法。
  10. コンピュータに、請求項7乃至請求項9の集約方法を実行させるプログラム。
JP2015004726A 2015-01-14 2015-01-14 集約装置、集約システム、集約方法、および、プログラム Pending JP2016130929A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015004726A JP2016130929A (ja) 2015-01-14 2015-01-14 集約装置、集約システム、集約方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015004726A JP2016130929A (ja) 2015-01-14 2015-01-14 集約装置、集約システム、集約方法、および、プログラム

Publications (1)

Publication Number Publication Date
JP2016130929A true JP2016130929A (ja) 2016-07-21

Family

ID=56415446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015004726A Pending JP2016130929A (ja) 2015-01-14 2015-01-14 集約装置、集約システム、集約方法、および、プログラム

Country Status (1)

Country Link
JP (1) JP2016130929A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7382233B2 (ja) 2017-06-23 2023-11-16 ザイリンクス インコーポレイテッド データベースアクセラレータに対する並列計算オフロード

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH052610A (ja) * 1991-06-25 1993-01-08 Mitsubishi Electric Corp リレーシヨナルデータベースにおける集約演算処理方式
JPH1097544A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd データベース処理システム
US5850547A (en) * 1997-01-08 1998-12-15 Oracle Corporation Method and apparatus for parallel processing aggregates using intermediate aggregate values
JP2010108073A (ja) * 2008-10-28 2010-05-13 Hitachi Ltd ストリームデータ処理方法、及びシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH052610A (ja) * 1991-06-25 1993-01-08 Mitsubishi Electric Corp リレーシヨナルデータベースにおける集約演算処理方式
JPH1097544A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd データベース処理システム
US5850547A (en) * 1997-01-08 1998-12-15 Oracle Corporation Method and apparatus for parallel processing aggregates using intermediate aggregate values
JP2010108073A (ja) * 2008-10-28 2010-05-13 Hitachi Ltd ストリームデータ処理方法、及びシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7382233B2 (ja) 2017-06-23 2023-11-16 ザイリンクス インコーポレイテッド データベースアクセラレータに対する並列計算オフロード

Similar Documents

Publication Publication Date Title
CN110109898B (zh) 基于fpga片内bram的哈希连接加速方法及系统
US20120109888A1 (en) Data partitioning method of distributed parallel database system
US11003649B2 (en) Index establishment method and device
WO2018036549A1 (zh) 分布式数据库查询方法、装置及管理系统
US11372929B2 (en) Sorting an array consisting of a large number of elements
US9600559B2 (en) Data processing for database aggregation operation
KR20170109119A (ko) 분산 질의 엔진에서의 질의 최적화 방법 및 장치
JP6418431B2 (ja) 効率的な1対1結合のための方法
US20180357298A1 (en) Performance of Distributed Databases and Database-Dependent Software Applications
US9189489B1 (en) Inverse distribution function operations in a parallel relational database
CN111512283A (zh) 数据库中的基数估算
US20200159594A1 (en) Systems and methods for dynamic partitioning in distributed environments
US20210182293A1 (en) Candidate projection enumeration based query response generation
CN101916281A (zh) 并行计算系统及去重计数方法
US10127192B1 (en) Analytic system for fast quantile computation
US10997175B2 (en) Method for predicate evaluation in relational database systems
JP6398632B2 (ja) 制御装置、分散データベースシステム、方法およびプログラム
US20170011083A1 (en) Multi-column statistic generation of a multi-dimensional tree
Bai et al. Association rule mining algorithm based on Spark for pesticide transaction data analyses
CN103823881A (zh) 分布式数据库的性能优化的方法及装置
JP2016130929A (ja) 集約装置、集約システム、集約方法、および、プログラム
Gupta et al. An approach for optimizing the performance for apache spark applications
US8046394B1 (en) Dynamic partitioning for an ordered analytic function
CN108052522B (zh) 一种对olap预计算模型进行动态优化的方法及系统
CN110737679B (zh) 数据资源的查询方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200128