470 likes | 571 Views
Applying the Golden Rule of Sampling for Query Estimation Yi-Leh Wu, Divyakant Agrawal, Amr El Abbadi Department of Computer Science University of California, Santa Barbara Proc. of ACM SIGMOD, pp.449-460, 2001. 2001 年 8 月 11 日 ( 土 ) 天野研究室 修士 2 年 松本 秀夫. 研究背景. データベース管理システムのクエリ最適化 → クエリサイズの評価
E N D
Applying the Golden Rule of Sampling for Query EstimationYi-Leh Wu, Divyakant Agrawal, Amr El AbbadiDepartment of Computer ScienceUniversity of California, Santa BarbaraProc. of ACM SIGMOD, pp.449-460, 2001 2001年8月11日(土) 天野研究室 修士2年 松本 秀夫
研究背景 • データベース管理システムのクエリ最適化→クエリサイズの評価 • リレーションの要素からクエリを評価 • 例:AQUAシステムの「タプル・サンプリング」 • データベースからランダムにタプルを抽出 • 元のリレーションを縮小したコピーを作成 • コピーからクエリの結果を取得
クエリ評価アルゴリズム • ランダム・サンプリング(標本抽出) • タプル・サンプリング • 領域サンプリング • ヒストグラム • リレーションの属性値の分布を集約 →評価の際に余分な情報を削減
クエリ評価の課題 • データ容量の削減 • パラメータ依存 • データ分布が未知の場合正確さに劣る • 非パラメータ依存 • ツリー/ヒストグラムの変形やクラスタ・ベース • 未知のデータ分布を評価する場合
研究目的 • クエリ評価の課題に対処 • データ容量を削減 • 未知のデータ分布でもより正確に評価 • Golden Estimatorを提案 • データサンプリングの黄金律(golden rule)
単属性領域のクエリ評価 • リレーションR、属性A →A上のクエリサイズを評価 • 離散領域 D={d0,d1,d2,…,dN} • クエリ q (a≦A≦b) • 頻度分布による領域サンプリング→頻度分布サンプリング
頻度分布関数 • 頻度 fi • t.A=di であるようなタプル t∈R の数 • どの t も t.A≠diなら fi=0 (ゼロ周期) • 頻度分布関数fdf (frequency distribution function) • fdf={<d0, f0>,<d1, f1>,<d2, f2>,…,<dN-1, fN-1>} • クエリqのサイズは a≦t.A≦bである t∈Rの数∴
fdfの問題点 • より良い近似を得るにはより多くの容量が必要 • 多くの商用システムではヒストグラムを利用 • fdfやタプルサンプリングを元に →限られた容量でより良い近似を得る
ランダム・サンプリング • データベースを評価する最も簡潔な方法の1つ • 対象領域から標本(サンプル)をランダムに選択し、格納 • 本研究では周期領域(fdf)から<di, fi> • 値の幾つかはゼロの場合もある • クエリ q(a≦X≦b) が与えられたとき値域 [a:b] に相当する標本から評価結果 を計算
ランダム・サンプリング • 評価結果 と実際の結果 s との誤差 • 絶対誤差Eabs • 相対誤差Erel
サンプリングの例 • 図のfdfから標本集合Sfdfを取得 • 例:Sfdf={<2,0>,<5,0>,<8,5>}の時
サンプリングの例 • クエリの範囲が q(2≦X≦7) → 標本<2,0>,<5,0>を評価に使用
サンプリングの例 • 値の分布は一様であると仮定 • 標本に近い属性の値は標本と同じ ∴属性値3,4,6,7の頻度は全て0 → クエリサイズの評価は0 実際のクエリサイズは13 ∴Erel=|13-0|/13×100=100%
先ほどの問題点 • 頻度の多くは小さな値 • 標本集合のうち2つが頻度0 • 値の分布が一様であるという仮定 • 一般的ではない • 標本集合内の値から付近の不明な値を類推するのは不適当
累積分布関数 • 累積頻度 ci • t.A≦di であるようなタプル t∈R の数 ∴ ci = • 累積分布関数 cdf (cumulative distribution function) • {<d0, c0>,<d1, c1>,<d2, c2>,…,<dN-1, cN-1>} • クエリ q(a≦A≦b) についてタプル tの数 Tab=cb-ca
サンプリングの例・改 • 図のcdfから標本集合Scdfを取得 • 例:Scdf={<2,2>,<5,14>,<8,20>}の時
サンプリングの例・改 • クエリの範囲が q(2≦X≦7)
サンプリングの例・改 • 範囲内のクエリサイズは 7- 2 • iは実際の値 ciを評価したもの • 標本集合より 2=c2=2 • 7をどう評価するかが重要
サンプリングの例・改 • 最も近い標本を当てはめる • 例では c8=20=7 • クエリサイズの評価は7- 2=20-2=18 • 相対誤差ErelはErel=|13-18|/13×100≒38.5%
サンプリングの例・改 • 2つの標本<dlow,clow>,<dhigh,chigh>から計算 • dlowはd≦diである最大のd • dhighはd≧diである最小のd • 例では<dlow,clow>=<5,14>,<dhigh,chigh>=<8,20>
サンプリングの例・改 • 2つの標本<dlow,clow>,<dhigh,chigh>から計算 • 例では<dlow,clow>=<5,14>,<dhigh,chigh>=<8,20> • 7=14+(20-14)×(7-5)/(8-5)=18 • クエリサイズの評価は16 • 相対誤差ErelはErel=|13-16|/13×100≒23% fdfよりも良い結果が得られる
先ほどの問題点 • クエリ q(0≦X≦3)の時は評価0 • d0もd3も最も近い標本は<2,2> • 集合に<3,14>があれば大幅に軽減 何が問題か? 元となるデータ分布を反映した方法で データサンプリングを行うべき
解決法 • 頻度のより高いものを多くサンプリング • データ分布が前もって判っていないと困難 • fdfなら頻度によって整列が可能 データ分布が前もって判らなくても あらかじめ頻度によって整列しなくても 頻度のより高いものを抽出する手法を提案
サンプリングの黄金律 • 1947年、von Neumannによって提案 • Los Alamos Science, p.135, June 1987 • 連続確率分布に対して定義→離散分布用に修正して適用
サンプリングの黄金律 • 一様でない確率分布関数 f(x) • 確率分布関数 pdf (probability distribution function) • 単調増加変換関数 y(x) • xについて変数 がdx内に存在する確率がyについて変数 がdy内に存在する確率と等しい事を保証 • どの x に対しても y は存在 • 全ての x に対して dy/dx>0 • x と y は1対1の関係
サンプリングの黄金律 • pdfの定義から、f(x)およびg(y)についてf(x)dx=prob(x≦≦x+dx)g(y)dy=prob(y≦≦y+dy) • 但し、g(y)はy(x)の確率分布 • y(x)の定義から f(x)dx=g(y)dy∴ g(y)=f(x)/[dy/dx]
サンプリングの黄金律 • 先の条件を満足するものにcdfがある • この場合 dy/dx=f(x) となり g(y)=1, 0≦y≦1 このcdfは[0,1]の一様分布 pdf f(x)とは独立
サンプリングの黄金律(まとめ) • pdf f(x)が与えられると、cdf F(x)が生成される • [0,cN-1]の範囲(cdfの値域)から乱数 y を生成し、cdfに代入 : y=F(x) • cdfの逆関数からxを求める : x=F-1(y) f(x)の分布を反映した 標本が取得可能
probability x 黄金律の例 • cdfについてランダムな一様分布標本を取る(y軸に一様) • 標本値はf(x)の分布を反映 • それぞれの標本についてF(x)の逆関数を計算 F(x) f(x)
c(i+1) cumulative frequency c(i) d(i) d(i+1) attribute value 離散分布への適用 • 問題点 • cdfが1対1写像ではない→cdfは単調非減少ステップ関数 • 3つの標本がいずれも同じd(i+1) どのように適当な 標本を見つけるか
Golden Estimator • 最初にdi≦≦di+1である を選択→<di,ci>を標本として選択 • 次にdi≦≦di+1である を選択 →<di+1,ci+1>を標本として選択 • 3番目にdi≦≦di+1である を選択 →標本とせずに他を取得 diの頻度fiが充分に大きい時サンプリングされやすくなる
Golden Estimatorのアルゴリズム PROCEDUREGoldenEstimator (noOfSampleNeeded, cdf) BEGIN sampleSet = NULL; //標本を記録 sampleCount = 0; //標本取得回数を記録 s = 0; //ランダムな標本(候補) xLo = 0; //低いほうの属性値 xHi = 0; //高いほうの属性値 WHILEsampleCount <= noOfSampleNeeded s = a random number between 0 and cn-1 in cdf; xLo = Max(xi), where ci <= s, 0 <= i <= n-1; xHi = Min(xi), where ci >= s, 0 <= i <= n-1; IF<xLo,cxLo> not in sampleSetTHEN add <xLo,cxLo> to sampleSet; sampleCount ++; ELSE IF<xHi,cxHi> not in sampleSetTHEN add <xHi,cxHi> to sampleSet; sampleCount ++; END; END; END; RETURN sampleSet; //標本集合を返す END;
クエリ評価のアルゴリズム PROCEDUREqueryEstimate (a, b, sampleSet) BEGIN //a,bはクエリの範囲 q(a≦X≦b) c’a, c’b; //ca及びcbの評価値 dLo, dHi; //属性値 cLo, cHi; //累積頻度値 cLo = Max(ci), dLo = Max(di), where di <= a, <di,ci> in sampleSet; cHi = Min(ci), dHi = Min(di), where di >= a, <di,ci> in sampleSet; c’a = cLo + (cHi – cLo) * (a-dLo) / (dHi-dLo); //c’aを同定 cLo = Max(ci), dHi = Min(di), where di <= b, <di,ci> in sampleSet; cHi = Min(ci), dHi = Min(di), where di >= b, <di,ci> in sampleSet; c’b = cLo + (cHi – cLo) * (b-dLo) / (dHi-dLo); //c’bを同定 RETURN c’b-c’a; //クエリ評価値を返す END;
多次元領域への拡張 • 平面領域でのみ適用→多次元領域へ拡張 • まず2次元の場合(空間データベース)を考察
2次元領域のクエリ評価 • リレーションR、属性X,Y • 離散領域 Dx={x0,x1,x2,…,xN-1}, 及び Dy={y0,y1,y2,…,yM-1} • クエリ q (a≦X≦b) ∧ (c≦Y≦d) • fdf ={<d(0,0), f(0,0)>,…,<d(i,j), f(i,j)>, …,<d(N,M), f(N,M)>} • cdf :{<d(0,0), c(0,0)>,…,<d(i,j), c(i,j)>, …,<d(N,M), c(N,M)>}
2次元領域のクエリ評価 • 2次元のcdfについて考えると • 問題点 • g(y)=1(0≦y≦1)にならない • cdf が fdf に1対1の写像を行わない
解決法 • 2次元領域を平面領域に変換→変換後の領域にgolden estimatorを適用 • 変換は1対1の写像 どうやって適切な変換を行うか? 2次元→1次元 1次元→2次元
2次元領域でのGolden Estimator • 2次元データセット fdf 2 に対して2次元→ 1次元変換 F2d→1d を適用→1次元の fdf 1 を取得 • 2次元→1次元変換の例 • row-major ordering • z-ordering • Hilbert curve • Gray orderingetc…
2次元領域でのGolden Estimator • fdf1から1次元の cdf1 を生成 • cdf 1から標本集合S1cdf を取得 • S1cdf のそれぞれの標本についてF(x)の逆関数F-1(x)を計算→標本集合S1fdf を取得
2次元領域でのGolden Estimator • S1fdfのそれぞれの標本に1次元→2次元変換F-12d→1dを適用→2次元の標本集合S2fdfを取得 • S2fdfのそれぞれに標本について累積頻度を計算→S2cdf→クエリ評価を実行 Golden Estimatorのアルゴリズムは変更無
更なる課題 • どの2→1次元変換を用いても同じ結果が得られるか?→1次元標本集合(cdf 1, fdf 1)は異なるが2次元標本集合(cdf 2, fdf 2)はほぼ同じ • 最適な2→1次元変換は?→現在研究中 • 更に多次元の領域に対しては?→常にfdf 1が取得可能→次元変換が出来れば評価可能
平面領域での性能比較実験 • 4つの手法によるクエリ評価 • Golden Estimator • MaxDiff ヒストグラム • ウェーブレット・ベース技術 • タプル・サンプリング技術 • 対象となる分布 • Zipf分布 • Alexandria Digital Library(ADL)のデータセット
平面領域での性能比較実験 • 2つの方法で実験 • 選択性を変化 • 選択性 sel : q (a≦X≦b) のとき sel = (b-a)/N • データ容量を変化 • サンプル数など
平面領域での性能比較実験 • 選択性を変えたとき • 選択性の増加につれて相対誤差は減少 • 特にGolden Estimatorが誤差が小さい • データ容量を変えたとき • 容量の増加につれて相対誤差は減少 • Golden Estimatorとウェーブレット・ベース技術で顕著 • 特にGolden Estimatorが誤差が小さい
空間領域での性能比較実験 • 4つの手法によるクエリ評価 • Golden Estimator • 修正 Min‐Skew ヒストグラム • ウェーブレット・ベース技術 • 空間ランダムサンプリング • 対象となる分布 • 2-dガウス分布 • ADLのデータセット • TIGER/Line Files のデータセット
空間領域での性能比較実験 • 全ての分布に対して常にGolden Estimatorが最も相対誤差が小さい どのようなデータベースにおいても Golden Estimatorが最良である
まとめ • Golden Estimatorを用いたクエリの評価 • 評価値の正確さ • 評価にかかるデータ容量の削減 • 平面・空間データベースでの評価 • 課題:3次元以上の領域における評価