430 likes | 634 Views
Efficient Computation of Iceberg Cubes with Complex Measures. 2001/8/11 é¾ã€€æµ©å¿—. Jiawei Han, Jian Pei, Guozhu Dong, Ke Wang ACM SIGMOD, pp.1-12, 2001. 1. Introduction. データã‚ューブ Iceberg Cube è«–æ–‡ã®ãƒ†ãƒ¼ãƒž contributions. データã‚ューブ( Data Cube). データウェアãƒã‚¦ã‚¹ データã‚ューブ. ä¼æ¥ãªã©ã§è“„ç©ã—ãŸæ˜Žç´°ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ã€æ„æ€æ±ºå®šãªã©ã«
E N D
Efficient Computation of Iceberg Cubes with Complex Measures 2001/8/11 龍 浩志 Jiawei Han, Jian Pei, Guozhu Dong, Ke Wang ACM SIGMOD, pp.1-12, 2001
1.Introduction • データキューブ • Iceberg Cube • 論文のテーマ • contributions
データキューブ(Data Cube) • データウェアハウス • データキューブ 企業などで蓄積した明細データから、意思決定などに 役立てるように統合したデータベース 複数の次元をもった多次元データベース OLAPツール 分析 Materialization (precomputation) 整理、統合 Data Cube 明細データ データウェアハウス
データキューブの構成 • 次元(dimension)に沿って並べたデータセル(cell)の集合 福岡 東京 大阪 データセル Dimension:属性 Measure:集約値 10 テレビ カメラ パソコン 例:3次元の売上キューブ 月:3月 商品:テレビ 場所:大阪 売上:10 1月2月3月 Dimension 月、商品、場所 Measure 売上額
月 都市 商品 売上 materialization • 集約値を前もって計算しておく データキューブはGROUP BYによって構築できる 福岡 東京 大阪 SELECT 月、都市、商品、sum(売上) FROM 売上テーブル GROUP BY 月、都市、商品 テレビ カメラ パソコン 売上テーブル 1月2月3月 GROUP BYの全ての組み合わせにより データキューブが構成される 3次元キューブ (月)、(都市)、(商品)、(月、都市)、(月、商品)、(商品、都市) ()、(月、都市、商品)
データキューブの構築 • 高次元のデータキューブの構築は、時間、記憶容量の面で高価 一般にd次元のキューブの場合2d個のキューブが必要 これまでに提案されている解決策 ●selective materialization 全てのデータキューブを生成するのではなく、選択的に キューブを構築 ●Iceberg Cubeのみの構築 集約値がある基準値を超えるセルのみによってキューブ を構成
Iceberg Cube • 月(M),都市(C),商品(P)の3次元の例 Iceberg Cube ある基準値以上の値をもつセル のみによりキューブを構成 none M C P 低いレベルでは集約値は 小さくなる Lower Level MC CP MP Iceberg Cubeに格納しない 集約値 Sum(売上) MCP 効果: ●処理時間、ディスクスペースの節約 ●分析という観点で重要な データを格納している MCP:GROUP BY M,C,P により構成されるキューブ
Iceberg Cubeに関する既存の研究 • count,sumのようなanti-monotonicな特性を持つmeasureを取り扱っている anti-monotonic キューブMP キューブM 月(M) 都市(P) sum(売上) 1 A 10 1 B 30 2 A 20 2 B 40 月(M) sum(売上) 1 40 2 60 ある条件がAで成り立たな ければBでも成り立たない ●Count,sum等 上位のキューブで 条件を満たさないなら 下位でも満たさない 条件sum>=65 キューブMP キューブM 月(M) average(売上) 1 20 2 30 月(M) 都市(P) average(売上) 1 A 10 1 B 30 2 A 20 2 B 40 ●Average non-anti monotonic 条件average()>=35
Anti-monotonicな場合 • 特性を利用してpruningによりIceberg Cubeの構築に関して効率化を図れる P内のあるセル none P内のあるセルが基準値 を満たさなければ、その 下位セルも条件は満たさないので 集約値を計算する必要がない M C P MC CP MP MCP MP内にある Pの下位セル
論文のテーマ • Averageのようなnon-anti monotonicな集約値に関する効率的なIceberg Cubeの計算 項目数がk以上かつAVGがv以上のセルのみ を選択してテーブルからIceberg Cubeを構成する SELECT 月、都市、商品、AVG(売上)、count(*) FROM 売上テーブル CUBE BY 月、都市、商品 HAVING AVG(売上)>= v AND COUNT(*)>=k Iceberg Cubeはキューブ全体をHAVING句によりrestrictionしたもの
Contributions • Non-anti monotonic特性をtop-k average条件を用いてanti-monotonic特性へ変換 • 既存の手法、Apriori,BUC(Bottom Up Computing)をtop-k Apriori,top-k BUCへ拡張 • 性能の改良のためHyper tree構造(H-Tree)を設計し、新しいIceberg Cubeの手法(top-k H-Cubing)を提案
セル表現 • Dimension • measure Month,city,costmer-group Measure Dimension セル:(Jan, Toronto, Edu, 500) Price Group By Month (Jan,Toronto,Edu,500) (Jan,Montreal,Busi,1100) (Jan,* ,* , 1600)
セルに関する定義 • m-d セル • Base セル Dimension属性のうち、属性値が*でないdimension数がm であるセル (jan, * , * , 400) (feb, * , Edu , 300) 1-dセル 2-dセル *を含まないセル (jan, Toronto, Edu, 500) Base セル(3-dセル) m-dセルのmの値が小さいほど上位のセル
Back ground Cube • 全てのGROUP BYにより生成される全体のデータキューブ SELECT 月、都市、商品、AVG(売上)、count(*) FROM 売上テーブル CUBE BY 月、都市、商品 HAVING AVG(売上)>= v AND COUNT(*)>=k
Iceberg Cubeのanti-monotonic特性 • Iceberg Cube(ICube)がanti-monotonicであるということは Background(ICube)内のセルのうち、HAVING句の制約 を満たさないセルはその下位の全てのセルでも HAVING句を満たさないということ Count制約に関するICube Average制約に関するICube anti-monotonic non-anti monotonic
ICubeの単純な計算 • まずBackground(ICube)を計算 • HAVING句を満たすセルを選択 HAVING句 GROUP BY テーブル Background(ICube) 一般に実際に得られる結果は少量なのに 中間で大量のセル計算が行われるため非効率
3.Exploration of Weaker, Anti-monotonic Conditions • Anti-monotonic特性をもつIceberg CubeはApriori特性を利用することにより効率的な計算が可能 しかし、今考えているのはnon-anti monotonicなaverageに 関するIceberg Cube Non-anti monotonicをanti-monotonicにするような手法 を適用し、Apriori特性を利用する
3.1 Top-k average • 以下のように構築できるIceberg Cube(AvgI)を考える AvgI SELECT A1,A2,…,Am, AVG(M), COUNT(*) FROM T CUBE BY A1,A2,…,Am HAVING AVG(M) >= v AND COUNT(*) >= k
Top-k Averageの定義 • あるセルcのtop-k average(=avgk(c)と表す)は、cの下位のbase セルのうち値が大きい方からk個の平均値 セルc:(a1, *, * ,200) cのBaseセル (a1,1,A,100) (a1,1,B,200) (a1,2,A,100) (a1,2,B,400) k=2の場合 Avgk(c)=300
Top-k Apriori 条件avgk(c) >= vと HAVING句のavg(c) >= v AND count(*) >= k を組み合わせることによりpruningを行う ●定理 Background(Icube)内のセルcがavgk(c ) >= vを 満たさなければ、cの下位セルc’もavgk(c’ ) >= v を満たさない Anti-monotonic特性が利用できる
A binning techinique for top-k average • 各々のセルについて上位k個の値を保持しておくにはオーバヘッドが生じる 記憶容量とtop-k averageの計算のコストを減らすため Binnig technicを利用する bin: top-k の値の情報を効率的に格納する
Bin 値の集合に対し、max,min,count,sumをbinに格納 • Large value • Small value Top-kのk個の値のうち、v以上であるもの Large valueはbin1に格納する Large valueでない値はbini(i>1)に格納 更に、値の範囲によってbin2からbin5に分けておく
Binによるavgk(c )の算出 • Binを用いて、以下の式よりavgk(c )の近似値avg’k(c )を計算 上位m個のbinのcountの合計がk以上であるようなm ●定理 avgk(c )<=avg’k(c ) よってavg’k(c )<vならばcの下位のセルは HAVING句の条件を満たさない
4.Extension of Apriori and BUC for Iceberrg Cube with Average • quant-info 各セルについて、sum,count,top-k binsの3情報を quant-infoとして格納 Quant-infoを用いて、 ● Top-k Apriori ● Top-k BUC を実現
Top-k Apriori • breadth-first 上位レベルから順にレベルごと に処理を行う None:1 各セルについてquant-infoを 収集 M:2 C:3 P:4 途中でHAVING句を満足する セルがあった場合は出力 MC:5 CP:6 MP:7 MCP:8 Avg’k(セル)>=vであるセルについて のみ下位セルを調査 M,C,Pの3次元の Background(Icube)
Top-k BUC • depth-first GROUP BYを左の順で 実行していく None:1 M:2 C:6 P:8 各セルについてquant-infoを 収集 MC:3 CP:5 MP:7 途中でHAVING句を満足する セルがあった場合は出力 MCP:4 Avg’k(セル)>=vであるセルについて のみ下位セルを調査 M,C,Pの3次元の Background(Icube)
5.Top-k H-Cubing • Top-k BUCは有用な手法 更に性能の改善のためHyperTree(H-Tree)を 用いてIceberg Cubeを計算
H-Tree(Hyper Tree)の概念 • レベルの概念 ●ルートからの深さが同じノード(レベル)には、意味的 に同じキー値(属性)が格納される ルート レベルごとにキー値の種類が異なる 月 ●ルートから葉ノードまで のパスによりひとつのオブ ジェクトが決定される 1月 2月 商品 パソコン パソコン 都市 福岡 (1月、パソコン、福岡)
H-Treeの適用 • H-Treeの構築 ●3次元の例(Month(M),City(C),Cust-group(G),price) ①ルートノードは“null”とする。 Dimensionの順序を決 める(G,M,C) ②Quant-infoを格納する ヘッダテーブルを生成 Header table ROOT Edu sum:400 ; Jan sum:400 ; Toront sum:400 ; Edu Jan Toront ③最初のタプルとして、 (Edu,Jan,Toront,400)を挿入 葉ノードとヘッダテーブルにquant-info Sum:400 Cnt;1
④次のタプル(Household,jan,Toront,200)を追加 葉ノードの同じラベルにはリンクをはる ROOT Header table Edu sum:400 Household sum:200 ; Jan sum:400 ; Toront sum:400 ; household Edu Jan Jan Toront Toront Sum:400 Cnt;1 Sum:200 Cnt;1
H-Treeの特性 • リレーションを一回スキャンするだけで構築可能 • H-TreeとヘッダテーブルはIceberg Cubeを計算するのに必要な情報を全て保持 • テーブル内の次元数m,全タプル数nとすると、ノードの数はn*m+1以下
Iceberg Cubeの計算(STEP1) • 次元Cに関するセルの計算 H-Tree内のquant-info情報により、(*,*, c)の型のセルが avgk(price),avg(price)を満足するかどうかを判定 Avg(price)を満たすセルは出力 Avgk(price)を満たすセルの下位のセルは調査
Iceberg Cubeの計算(STEP2) • 次に次元Mに関するセルの計算 • 次元Gに関するセルの計算 葉ノードのquant-infoを親ノードへmergeする 子ノード(葉ノード)がavg’k(child)>=vを満たせば 親ノードに“top-k OK”のチェックをつける チェックのつけられたノードに対してのみ、 STEP1と同様の処理を行う
Top-k H-Cubingの効率 • Space cost キューブ計算の間に必要なヘッダテーブルは 次元数ー1 次元数M,ヘッダのエントリ数E,1エントリ当たりS とすると、ヘッダサイズはM2*E*S 20次元、エントリ数100、1エントリ20byteのときSize=800KB メモリ内で保持可能
Scan and tree traverse • Data manipulation 1回のみのデータベーススキャンでH-Treeを構成できる 残りの操作は、main memory-basedの木の走査と、 ヘッダテーブルやside-linkの更新 主なデータ操作は、side-linkの調整とquant-infoの Merge,copying Top-k BUCはソートとquant-infoの収集に大部分を費やす
Pruning and optimization Top-k BUC,Top-k H-Cubingとも同じpruning technique を利用するが、Top-k H-Cubingでは、“Top-k OK”の チェックによりquant-info の計算負荷が少ない
6.性能解析 • Apriori手法はBUC手法に劣るためTop-k H-CubingとTop-k BUCの比較を行う
Countのみの比較 Countの基準値をデータ数の 0.1%から0.008%まで変化 基準値が小さいとき、 両者に差が見られる 1セルあたりの処理時間 Top-k H-Cubingはセル計算 によるオーバヘッドが少ない
Averageに関する計算 Averageの基準値を変えて 比較 80を超えるとほぼ同等の性能だが ゼロ付近では、2.5倍の性能差が 生まれている Tree操作はあまり減らない BUCはソートの数が非常に減るから
Top-k 手法の評価 Avg(c )とAvgk(c )の差をあらわ しているが差は小さい Top-k averageがよい見積もり をあたえており、pruningに 強力である。
7.Conclusion • Averageのような複雑な値に関するIceberg Cubeの効率的な計算 • Top-k averageによる効果的なpruning Iceberg Cube計算の新たな手法として H-Tree構造を用いたTop-k H-Cubingが有用である