JP2014228974A - 分析方法、分析装置および分析プログラム - Google Patents

分析方法、分析装置および分析プログラム Download PDF

Info

Publication number
JP2014228974A
JP2014228974A JP2013106665A JP2013106665A JP2014228974A JP 2014228974 A JP2014228974 A JP 2014228974A JP 2013106665 A JP2013106665 A JP 2013106665A JP 2013106665 A JP2013106665 A JP 2013106665A JP 2014228974 A JP2014228974 A JP 2014228974A
Authority
JP
Japan
Prior art keywords
processing request
processing
request
divided
execution
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
JP2013106665A
Other languages
English (en)
Other versions
JP6034240B2 (ja
Inventor
鬼塚 真
Makoto Onizuka
真 鬼塚
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013106665A priority Critical patent/JP6034240B2/ja
Publication of JP2014228974A publication Critical patent/JP2014228974A/ja
Application granted granted Critical
Publication of JP6034240B2 publication Critical patent/JP6034240B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】繰り返し型のクエリ処理の効率化を図ることを課題とする。【解決手段】分析装置10は、所定の処理を繰り返し行う繰り返し型の処理要求を解析し、該処理要求を、繰り返し処理において結果が変化しない不変データ処理要求と、繰り返し処理において結果が変化する可変データ処理要求とで分割する。そして、分析装置10は、処理要求分割部11によって分割された不変データ処理要求を実行して実行結果を記憶部13に記憶し、記憶部13に記憶された実行結果を用いて、処理要求分割部11によって分割された可変データ処理要求を繰り返し実行する。【選択図】図1

Description

本発明は、分析方法、分析装置および分析プログラムに関する。
従来より、データベースに対して繰り返し型のクエリを入力し、所定の処理を繰り返し実行する繰り返し処理を行わせていることが知られている。例えば、リレーショナルデータベースにおいては、WITH句を用いたSQL言語を用いて繰り返し処理が記述可能である(例えば、非特許文献1参照)。このような繰り返し処理を含むクエリを受け付けた場合には、所定の終了条件を満たすまで、繰り返し型のクエリを単純に繰り返し行っていた。
An Optimization Framework for Map-Reduce Queries, by Leonidas Fegaras, Chengkai Li, and Upa Gupta. EDBT 2012
しかしながら、従来のように単純に繰り返し処理を実行する手法では、クエリを実行する際に、複数の繰り返し処理の間で冗長な処理を行う場合があるので、繰り返し型のクエリ処理を効率よく行えないという課題があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、繰り返し型のクエリ処理の効率化を図ることを目的とする。
上述した課題を解決し、目的を達成するため、分析方法は、分析装置で実行される分析方法であって、所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割工程と、前記分割工程によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割工程によって分割された第二の処理要求を繰り返し実行する実行工程と、を含んだことを特徴とする。
また、分析装置は、所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割部と、前記分割部によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割部によって分割された第二の処理要求を繰り返し実行する実行部と、を備えることを特徴とする。
また、分析プログラムは、所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割ステップと、前記分割ステップによって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割ステップによって分割された第二の処理要求を繰り返し実行する実行ステップと、をコンピュータに実行させることを特徴とする。
本願に開示する分析方法、分析装置および分析プログラムは、繰り返し型のクエリ処理の効率化を図ることができるという効果を奏する。
図1は、第一の実施の形態に係る分析装置の構成を示すブロック図である。 図2は、Page Rank計算のクエリの一例を示す図である。 図3は、更新属性の判定処理を説明する図である。 図4は、Page Rank計算を例とした処理要求分割処理の実行例を説明する図である。 図5は、第一の実施の形態に係る分析装置における処理要求分割部の処理動作を示すフローチャートである。 図6は、第一の実施の形態に係る分析装置における処理要求実行部の処理動作を示すフローチャートである。 図7は、第二の実施の形態に係る分析装置の処理動作を示すフローチャートである。 図8は、Page Rank計算を例とした処理要求を差分計算の式に展開した例を説明する図である。 図9は、分析プログラムを実行するコンピュータを示す図である。
以下に添付図面を参照して、この発明に係る分析方法、分析装置および分析プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係る分析装置の構成、および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
[分析装置の構成]
まず、図1を用いて、分析装置10の構成を説明する。図1は、第一の実施の形態に係る分析装置の構成を示すブロック図である。図1に示すように、分析装置10は、処理要求分割部11と、処理要求実行部12と、記憶部13とを有し、また、端末装置20と接続されている。端末装置20は、検索要求を分析装置10に対して送信し、該検索要求に対する検索結果を分析装置10から受信する。
処理要求分割部11は、所定の処理を繰り返し行う繰り返し型の処理要求を解析し、該処理要求を、繰り返し処理において結果が変化しない不変データ処理要求と、繰り返し処理において結果が変化する可変データ処理要求とで分割する。
具体的には、処理要求分割部11は、端末装置20から検索要求を受信し、受信した検索要求のうちの繰り返し型の処理要求を解析することで、出力に指定されたテーブルのすべての属性について、繰り返し処理の前後でカラムの値が変化しない不変属性、あるいは繰り返し処理の前後で変化する可変属性かを判定する。そして、処理要求分割部11は、出力に指定されたテーブルUを2つに分解して、主キーと全ての不変属性から成る不変テーブル、および、主キーと全ての可変属性から成る可変テーブルを得る。
ここで、テーブルUは、主キーの等価条件を用いて不変テーブルと可変テーブルをテーブル結合するクエリによって得ることができるため、本クエリを用いることで、ユーザが入力した繰り返し型のクエリを書き換えて、テーブルUを排除する。なお、ここで、繰り返し型のクエリ(処理要求)とは、例えば、一つまたは複数のテーブルを入力として、出力結果を入力で指定されたテーブルの1つに出力するクエリであり、ユーザが、指定した一定回数回処理要求を実行するか、あるいは出力に指定されたテーブルが格納するデータが繰り返し操作の前後で変化しなくなるまで実行するかのいずれかを選択できる。
例えば、処理要求分割部11は、不変テーブルと可変テーブルを用いて出力に指定された元テーブルを得る処理要求を導出し、導出した処理要求を用いてユーザが入力した繰り返し型の処理要求を不変テーブルと可変テーブルに対する処理要求に書き換えて、書き換えられた処理要求を分解して、不変テーブルに対する処理要求(不変データ処理要求)と,不変テーブルに対する処理要求結果および可変テーブルに対する処理要求(可変データ処理要求)とを得る。
ここで、図2および図3の例を用いて、Page Rank計算を、具体例として処理要求分割部11の処理について具体的に説明する。図2は、Page Rank計算のクエリの一例を示す図である。図3は、更新属性の判定処理を説明する図である。
例えば、Page Rankを処理するクエリは図2のように記述される。ここで、Graphはテーブルであり、属性としてノードIDを示すsrc(主キー)、srcから発するリンクによって接続されるノードのIDを示す「dest」、「src」から発するリンク数を表す「count」、「src」のPage Rankスコアを表す「score」である。本クエリは、入れ子になっており、内側のクエリにおいて、dest毎にPage Rankスコアを次のように計算する。接続されるノードから伝搬されるスコアの総和を計算し(sum(n.score/n.count))、ダンピングファクタ「0.85」を乗算して、ランダムジャンプにより得られるスコア「0.15」を加算する。外側のクエリにおいて、destをsrcとするデータ構造を取得し、次の繰り返し処理の入力となるよう「Graph」テーブルを更新する。
このようなクエリを入力として、処理要求分割部11は、図3の(1)に記載のクエリグラフを以下のように導出する。
図3のクエリは入れ子クエリであり、内側のクエリは、
select n.dest, 0.15+0.85*sum(n.score/n.count) as score
from Graph as n
group by n.dest
であり、上記Graph as nから図2のGraph nを得る。
また、上記のselect, group by句に指定されるscore, count, destから,図6のGraph nから上位にn.sore, n.count, n.destを得る。また、上記のgroup by 句とsumの指定から,図3のsum($1/$2)と破線で接続されるn.destを得る。
次に、外側のクエリでは,内側のクエリ結果とGraph mをm.src=c.destを条件として結合処理しており、この部分から図3の最上位の箇所であるc.score, c.dest, m.src, m.dest, m.countを得る。
次に、このクエリグラフを使って,繰り返し処理の前後で変化する可変属性か変化しない不変属性かの判定を行う。クエリグラフを下側から辿って、集約演算がある場合にはその出力結果を可変属性とし、可変属性から導出される属性も可変属性である。例えば、図3の(1)において、下側のGraph m, nから開始してグラフを上位に辿る。辿る際に集約演算sumがあるため,その出力結果c.scoreが可変属性である。
更に繰り返し処理であるため、再度クエリグラフを下から辿って、可変属性から導出される属性も可変属性とする。例えば、図3の(1)において、n.scoreが可変属性と分かっているため、n.scoreから導出される属性も可変属性とする。結果的に、図3の(2)の図を得る。つまり、scoreが更新属性であり,src, dest, countが不変属性である。
そして、処理要求分割部11は、テーブル分割処理を行い、結果として、主キーと全ての不変属性から成る不変テーブルIT(src, dest, count)および、主キーと全ての可変属性から成る可変テーブルVT(src, score)を得る。
最後に、処理要求分割部11は、処理要求分割処理を行う。処理要求分割部11は、処理要求分割処理として、まず、不変テーブルと可変テーブルとを用いて出力に指定された元テーブルGraphを得る処理要求を、
Graph = select IT.src, IT dest, IT.count, VT.score
from IT, VT
where IT.src = VT.src
として導出する。この導出した処理要求を、ユーザが入力した繰り返し型の処理要求である図2のGraphに代入して以下のクエリを得る。
iterate
set VT = {select n.dest, 0.15+0.85*sum(n.score/n.count) as score
from {select src, dest, count, score
from IT, VT
where IT.src = VT.src} as n
group by n.dest;}
until | new.score - old.score | /old.score < 0.01;
また、入れ子クエリをフラット化することで以下のクエリQ1を得る。
iterate
set VT = {select IT.dest, sum(VT.score/IT.count) as score
from IT, VT
where IT.src = VT.src
group by IT.dest;}
until | new.score - old.score | /old.score < 0.01;
本クエリにおいて不変テーブルITに関する操作を抽出して、図4上側に記載のクエリPを不変データ処理要求として得る。そして、図4に示すように、クエリPを用いて,先に得られたクエリQ1が書き換えられる(図4の下側に記載のクエリ)。
iterate
set VT = select P.dest, 0.15+ 0.85*sum(VT.score/P.count) as score
from P, VT
where P.src = VT.src
group by P.dest;
until | new.score - old.score | /old.score < 0.01;
を得る。これが可変データ処理要求である。
処理要求実行部12は、処理要求分割部11によって分割された不変データ処理要求を実行して実行結果を記憶部13に記憶し、記憶部13に記憶された実行結果を用いて、処理要求分割部11によって分割された可変データ処理要求を繰り返し実行する。
具体的には、処理要求実行部12は、不変データ処理要求および可変データ処理要求を処理要求分割部11から受け付けると、不変データ処理要求を実行して結果を実体化し記憶部13に格納する。そして、処理要求実行部12は、ユーザが指定した一定回数回処理要求を実行するか、あるいは出力に指定されたテーブルが格納するデータが繰り返し操作の前後で変化しなくなるまで可変データ処理要求を実行する。この実行の際に、記憶部13に格納した不変データ処理要求の実行結果を再利用する。
つまり、処理要求実行部12は、不変データ処理要求を実行して結果を実体化し、繰り返し処理において実体化結果を再利用して可変データ処理要求を実行することで、冗長な処理である不変データ処理要求を繰り返し処理することを排除して高速な繰り返し型のクエリ処理を実現する。このため、単純に繰り返し処理を実行するだけで、繰り返し処理の間に内在する冗長な処理を排除することができる。
記憶部13は、不変データ処理要求の実行結果を記憶する。具体的には、記憶部13は、処理要求実行部12により実行された不変データ処理要求の実行結果を記憶し、処理要求実行部12により可変データ処理要求が実行される際に、処理要求実行部12により不変データ処理要求の実行結果が読み出される。
ここで記憶部130とは、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
[分析装置による処理]
次に、図5および図6を用いて、第一の実施形態に係る分析装置10による処理を説明する。図5は、第一の実施の形態に係る分析装置における処理要求分割部の処理動作を示すフローチャートである。図6は、第一の実施の形態に係る分析装置における処理要求実行部の処理動作を示すフローチャートである。
まず、図5を用いて、第一の実施の形態に係る分析装置における処理要求分割部11の処理について説明する。図5に示すように、処理要求分割部11は、ユーザが入力する繰り返し型の処理要求を解析することで、出力に指定されたテーブルのすべての属性について,繰り返し処理の前後でカラムの値が変化しない不変属性、あるいは繰り返し処理の前後で変化する可変属性かを判定する処理する処理(属性の変化特性判定処理)を行う(ステップS101)。
そして、処理要求分割部11は、出力に指定されたテーブルを2つに分解して,主キーと全ての不変属性から成る不変テーブル、および、主キーと全ての可変属性から成る可変テーブルを得るテーブル分割処理を行う(ステップS102)。
続いて、処理要求分割部11は、不変テーブルと可変テーブルを用いて出力に指定された元テーブルを得る処理要求を導出し、導出した処理要求を用いてユーザが入力した繰り返し型の処理要求を不変テーブルと可変テーブルに対する処理要求に書き換える。そして、処理要求分割部11は、書き換えられた処理要求を分解して、不変テーブルに対する不変データ処理要求と、不変テーブルに対する処理要求結果および可変テーブルに対する可変データ処理要求と得る処理要求分割処理を行う(ステップS103)。
次に、図6を用いて、第一の実施の形態に係る分析装置における処理要求実行部12の処理について説明する。図6に示すように、処理要求実行部12は、不変データ処理要求を実行し(ステップS201)、結果を実体化し記憶部13に格納する。続いて、処理要求実行部12は、可変データ処理要求を実行する(ステップS202)。この実行の際に、ステップ201で格納した不変データ処理要求の実行結果を再利用する。
その後、処理要求実行部12は、可変データ処理要求の実行を終了するか否かを判定する(ステップS203)。例えば、処理要求実行部12は、ユーザが指定した一定回数回処理要求を実行するか判定する。この結果、処理要求実行部12は、可変データ処理要求の実行を終了しないと判定した場合には(ステップS203否定)、ステップS202およびステップS203の処理を繰り返す。また、可変データ処理要求の実行を終了すると判定した場合には(ステップS203肯定)、処理を終了する。
[第一の実施形態の効果]
上述してきたように、分析装置10は、所定の処理を繰り返し行う繰り返し型の処理要求を解析し、該処理要求を、繰り返し処理において結果が変化しない不変データ処理要求と、繰り返し処理において結果が変化する可変データ処理要求とで分割する。そして、分析装置10は、処理要求分割部11によって分割された不変データ処理要求を実行して実行結果を記憶部13に記憶し、記憶部13に記憶された実行結果を用いて、処理要求分割部11によって分割された可変データ処理要求を繰り返し実行する。
このため、繰り返し処理の間で冗長な処理を不変データ処理要求として抜き出し、不変データ処理要求を1回だけ実行し、その結果を再利用することで、冗長な処理である不変データ処理要求を繰り返し処理することを排除して高速な繰り返し型のクエリ処理を実現する。これにより、繰り返し型のクエリ処理の効率化を図ることが可能である。
[第二の実施の形態]
上述した第一の実施の形態においては、処理要求の実行処理として、不変データ処理要求を実行して結果を実体化し、繰り返し処理において実体化結果を再利用して可変データ処理要求を実行する場合を説明した。しかし、処理要求の実行処理として、出力に指定されたテーブルの属性が可変属性である属性について処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録することで、記録した差分を差分計算の式に展開された処理要求に入力するようにしてもよい。
そこで、以下、第二の実施の形態では、処理要求の実行処理として、出力に指定されたテーブルの属性が可変属性である属性について処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録することで、記録した差分を差分計算の式に展開された処理要求に入力する場合について説明する。図7は、第二の実施の形態に係る分析装置の処理動作を示すフローチャートである。図8は、Page Rank計算を例とした処理要求を差分計算の式に展開した例を説明する図である。
図7に示すように、第二の実施の形態に係る分析装置の処理要求実行部12では、処理要求分割部11によって判定されたテーブル可変属性である属性について、処理要求を差分計算の式に展開する(ステップS301)。ここでテーブルとは、処理要求実行部12によって得られた可変データ処理要求の出力テーブルである。
そして、処理要求実行部12は、1回前の繰り返し処理要求の実行において記録したテーブルの変更差分を参照して繰り返し処理要求を実行する(ステップS302)。そして、処理要求実行部12は、繰り返しの処理要求の実行が完了した際に、テーブルの変更差分を計算して記憶部13に記録する(ステップS303)。
その後、処理要求実行部12は、可変データ処理要求の実行を終了するか否かを判定する(ステップS304)。例えば、処理要求実行部12は、ユーザが指定した一定回数回処理要求を実行するか判定する。この結果、処理要求実行部12は、可変データ処理要求の実行を終了しないと判定した場合には(ステップS304否定)、ステップS302〜ステップS304の処理を繰り返す。また、可変データ処理要求の実行を終了すると判定した場合には(ステップS304肯定)、処理を終了する。
図8を用いて、処理要求実行部12における処理をPage Rank計算の例を用いて説明する。図7におけるステップS301では、テーブルVTの可変属性である属性scoreについて、以下のように、処理要求を差分計算の式に展開する。
「VT’(id, V.score’) = VT(id, V.score) +map ΔVT(id, V. Δscore)」
この式の意味は,繰り返し処理において,繰り返し処理前のVT(id, V.score)テーブルに対して、更新差分ΔVT(id, V. Δscore)テーブルを記録しておくことで、各idのレコード毎に、更新後のscore‘がscore+Δscoreとして得ることができるということである。
ここで、VTの定義は図8の下側のクエリで与えられ、更に前述のステップS101では属性の変化特性判定処理において更新属性が「score」であることが判明しているため、scoreの更新差分をΔscoreとすると、ΔVT(id, V. Δscore)が図8の下側のクエリ
ΔVT = select P.dest, sum(VT. Δscore/P.count) as score
From VT, P
Where P.src = VT.dest
Group by P.dest;
で与えられる。
このように、第二の実施の形態に係る分析装置では、処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録することで、変更差分のないレコードの処理を排除して高速な繰り返し型のクエリ処理を実現する。
[システム構成]
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
[プログラム]
また、上記実施形態において説明した分析装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る分析装置10が実行する処理をコンピュータが実行可能な言語で記述したデータ検索プログラムを作成することもできる。この場合、コンピュータが分析プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる分析プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され分析プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図1に示した分析装置10と同様の機能を実現する分析プログラムを実行するコンピュータの一例を説明する。
図9は、分析プログラムを実行するコンピュータ1000を示す図である。図9に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図9に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図9に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図9に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図9に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図9に例示するように、例えばディスプレイ1061に接続される。
ここで、図9に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の分析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、テーブル作成手順、グラフ作成手順、検索手順を実行する。
なお、分析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、分析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 分析装置
11 処理要求分割部
12 処理要求実行部
13 記憶部
20 端末装置
1000 コンピュータ
1010 メモリ
1020 CPU
1030 ハードディスクドライブインタフェース
1040 ディスクドライブインタフェース
1050 シリアルポートインタフェース
1060 ビデオアダプタ
1070 ネットワークインタフェース
1080 バス
1090 ハードディスクドライブ
1100 ディスクドライブ

Claims (7)

  1. 分析装置で実行される分析方法であって、
    所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割工程と、
    前記分割工程によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割工程によって分割された第二の処理要求を繰り返し実行する実行工程と、
    を含んだことを特徴とする分析方法。
  2. 前記分割工程は、一つまたは複数のテーブルを入力とする処理要求であって、出力結果を入力で指定されたテーブルの一つに出力する処理要求を解析し、出力に指定されたテーブルの全ての属性について、カラムの値が変化しない不変属性であるか、前記繰り返し処理の前後でカラムの値が変化する可変属性であるかを判定し、判定結果に応じて、不変属性で構成される不変テーブルと、可変属性で構成される可変テーブルとに分割し、前記不変テーブルに対する処理要求を前記第一の処理要求とし、前記可変テーブルに対する処理要求を前記第二の処理要求として分割することを特徴とする請求項1に記載の分析方法。
  3. 前記分割工程は、前記不変テーブルおよび前記可変テーブルを用いて出力に指定されたテーブルを得る処理要求を導出し、導出した処理要求を用いて、前記所定の処理を繰り返し行う要求を含む処理要求を、前記不変テーブルと前記可変テーブルに対する処理要求に書き換えて、書き換えられた処理要求を分解して、前記不変テーブルに対する処理要求を前記第一の処理要求とし、前記可変テーブルに対する処理要求を前記第二の処理要求として分割することを特徴とする請求項2に記載の分析方法。
  4. 前記実行工程は、前記分割工程によって分割された第一の処理要求を実行し、実行結果を実体化し、該実体化された実行結果を、前記第二の処理要求の繰り返し処理において再利用することを特徴とする請求項1〜3のいずれか一つに記載の分析方法。
  5. 前記実行工程は、前記分割工程によって可変属性であると判定された属性について、処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録し、記録した差分を差分計算の式に展開された処理要求に入力することを特徴とする請求項2に記載の分析方法。
  6. 所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割部と、
    前記分割部によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割部によって分割された第二の処理要求を繰り返し実行する実行部と、
    を備えることを特徴とする分析装置。
  7. 所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割ステップと、
    前記分割ステップによって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割ステップによって分割された第二の処理要求を繰り返し実行する実行ステップと、
    をコンピュータに実行させるための分析プログラム。
JP2013106665A 2013-05-20 2013-05-20 分析方法、分析装置および分析プログラム Active JP6034240B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013106665A JP6034240B2 (ja) 2013-05-20 2013-05-20 分析方法、分析装置および分析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013106665A JP6034240B2 (ja) 2013-05-20 2013-05-20 分析方法、分析装置および分析プログラム

Publications (2)

Publication Number Publication Date
JP2014228974A true JP2014228974A (ja) 2014-12-08
JP6034240B2 JP6034240B2 (ja) 2016-11-30

Family

ID=52128789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013106665A Active JP6034240B2 (ja) 2013-05-20 2013-05-20 分析方法、分析装置および分析プログラム

Country Status (1)

Country Link
JP (1) JP6034240B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200492903Y1 (ko) * 2019-04-30 2020-12-30 현대중공업 주식회사 프로펠러 허브 보텍스 감소장치
KR102228801B1 (ko) 2019-11-01 2021-03-17 한국철도기술연구원 동축압축기를 포함하는 아음속 하이퍼튜브 차량

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020546A (ja) * 1998-07-07 2000-01-21 Nippon Telegr & Teleph Corp <Ntt> メソッド実行方法およびメソッド実行プログラムを記録した記録媒体
US6341281B1 (en) * 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
JP2008234495A (ja) * 2007-03-22 2008-10-02 Toru Furuya 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341281B1 (en) * 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
JP2000020546A (ja) * 1998-07-07 2000-01-21 Nippon Telegr & Teleph Corp <Ntt> メソッド実行方法およびメソッド実行プログラムを記録した記録媒体
JP2008234495A (ja) * 2007-03-22 2008-10-02 Toru Furuya 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム

Also Published As

Publication number Publication date
JP6034240B2 (ja) 2016-11-30

Similar Documents

Publication Publication Date Title
US11461319B2 (en) Dynamic database query efficiency improvement
JP6216423B2 (ja) データクエリの管理
US9697254B2 (en) Graph traversal operator inside a column store
US10762087B2 (en) Database search
CN105335403B (zh) 数据库访问方法及装置、数据库系统
US9779158B2 (en) Method, apparatus, and computer-readable medium for optimized data subsetting
US10726006B2 (en) Query optimization using propagated data distinctness
JP7098327B2 (ja) 情報処理システム、関数作成方法および関数作成プログラム
KR20170109119A (ko) 분산 질의 엔진에서의 질의 최적화 방법 및 장치
KR102172255B1 (ko) 분산형 컴퓨팅 태스크를 실행하기 위한 방법 및 장치
Bala et al. P-ETL: Parallel-ETL based on the MapReduce paradigm
US11144549B2 (en) Dynamic generation of join statements for database operations
US20180357278A1 (en) Processing aggregate queries in a graph database
US11288266B2 (en) Candidate projection enumeration based query response generation
US20130060753A1 (en) Optimization Method And Apparatus
CN106445913A (zh) 基于MapReduce的语义推理方法及系统
Gao et al. GLog: A high level graph analysis system using MapReduce
US20120179669A1 (en) Systems and methods for searching a search space of a query
JP6034240B2 (ja) 分析方法、分析装置および分析プログラム
US9934051B1 (en) Adaptive code generation with a cost model for JIT compiled execution in a database system
JP6044960B2 (ja) シリアライザを特化する方法、装置及びコンピュータプログラム
CN107784032B (zh) 一种数据查询结果的渐进式输出方法、装置及系统
CN108780452B (zh) 一种存储过程处理方法及装置
US9959295B1 (en) S-expression based computation of lineage and change impact analysis
CN115587560A (zh) 用于分布式引擎的运行时和存储器高效的属性查询处理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150715

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160809

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: 20161025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161027

R150 Certificate of patent or registration of utility model

Ref document number: 6034240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150