データウェアハウス体験(2)

動いているデータウェアハウスを見てびっくりしたことの続き。

  • マルチセット(重複行を許可するテーブル)が多用されている。エンジン*1に create multiset table ていう構文がある。
  • BIツールというものの生産性の高さ。DWHのデータを指定の切り口で切り出した「キューブ」を毎晩100個ぐらい生成している。ユーザは専用のブラウザで目的のキューブを開いて、ダイシング・スライシング・ドリルダウン・表の整形(行列入れ替えとか)・印刷までできる。新しいキューブの定義は1日で作れる。こんな機能をJavaRDBで作ったらどれだけ時間がかかるか。
  • キューブを使うということは、クエリをクライアント側のCPUパワーで処理するということ。DWHサーバは昼間は何もしていない。
  • だからインデックス設計なんてやっていない。DWHサーバは夜の間に仕事を終わらせればよくて、現にインデックスなしでも十分間に合っている。


これからはキーなし・参照制約なし・インデックスなし・重複行ありのデータベースを乗りこなさなくてはならない。こっちの世界ではそんな設計でいいものなのかどうか、それすらまだ分からない。

*1:TeradataていうDBMSがメイン