少し前になりますが、Groongaで学ぶ全文検索 2015-12-18に参加しましたのでそのことを書きます。
この回のテーマは 「ドリルダウン(ファセット検索)」でした。
はじめに
今回、仕事で20分ほど遅刻してしまいました。ごめんなさい。。
遅刻してしまったこともあって、理解したと自信を持って言えず、須藤さんの目が見れませんでした。。
なので今日は反省文を書きます。ドリルダウンのことは少しだけ書きます。
ドリルダウン(ファセット検索)ってなに?
先生「ドリルダウンって知ってますか?」
私 「・・・」
先生「どっち?」
私 「・・・聞いたことあるけどよくわかりません」
まずはじめに、知ってるふりをしようとしてしまいました。ごめんなさい。。
遅刻した上に知らないなんて言いにくいと思ってしまいました・・・。
「ドリルダウン」とは、「データ集計や分析で用いる手法の一つで、集計範囲を一段階絞ってより詳細な集計を行うこと。(IT用語辞典より)」で、BIとか大量な情報を集計したり分析したりするときに使われるそうです。
私がイメージしやすかったアパレルのECサイトの例をあげてみます。
アパレルECサイトでこんなものがあるとします。
> MEN(100)
> WEMEN(100)
> KIDS(100)
で、これの「MEN」をクリックすると
> MEN(100)
> アウター(10)
> トップス(20)
> ボトム(30)
> グッズ(40)
> WEMEN(100)
> KIDS(100)
「MEN」で絞り込まれた情報を、別の切り口で集計されたものを見ることができたりします。
これはユーザーが商品を探しやすいように、ある切り口で探したいものの条件が用意されており、
さらに段階を絞って詳細な集計情報をみることができるというものです。
データを以下のように持っているとしたら、最初は「性別」で集計したものを表示しておき、「MEN」をクリックした際には「MEN」で絞り込み、「カテゴリー」で集計したものを表示している、というかんじです。
性別 | カテゴリー | アイテム | カラー |
---|---|---|---|
MEN | トップス | セーター | 赤 |
MEN | トップス | シャツ | 白 |
MEN | トップス | シャツ | 青 |
MEN | ボトム | パンツ | 黒 |
WEMEN | トップス | セーター | 黒 |
WEMEN | ボトム | パンツ | 白 |
WEMEN | ボトム | スカート | 青 |
行指向と列指向(カラム指向)
上記のような集計処理をするのがドリルダウンですが、Groongaでは集計処理に適した「列指向」を採用しています。
そもそもデータベースには行指向と列指向がありますのでその特徴を比較してみます。
-
行指向
- データを行方向のまとまりでもっています。
- 上記表でいうと「MEN,トップス,セーター,赤」といったまとまりになります。
- 追加・更新・削除処理が得意です。
- 行単位で操作できるため更新・削除時のレコードを特定しやすく、その特定のレコードに対して処理を行えばよいので、更新・削除が得意です。
- 追加時も追加したい情報をまとめて追加すればいいだけなので列指向にくらべて追加処理も得意です。
- 集計処理が苦手です。
- データを一行ずつ取り出してみていくため時間がかかります。 -
列指向(カラム指向)
- データを列方向のまとまりでもっています。
- 上記表でいうと「MEN,MEN,MEN,MEN,WEMEN,WEMEN,WEMEN」といったまとまりになります。
- 追加・更新・削除処理が苦手です。
- 各カラムに対して処理が必要なため時間がかかります。
- 集計処理が得意です。
- データがカラムごとにまとまっているため、集計したいデータが隣り合っており、集計処理が早くなります。
- 「性別」で集計する場合「性別」の列をみればいいだけ!
まとめ(反省)
- 遅刻をしないこと!!!
- わかっているふりはほどほどに!(わかっているふりをしたせいで結局理解できたことが少なかった・・・せっかくの勉強会なのにもったいない。)
- ツールとかは事前に使えるようにしておく(MacでQiita使おうとしたのですが、MacもQiitaも不慣れでわたわたしてました。。。)
- 遅刻したのに再度説明してくださったりと、いろいろと配慮していただき感謝です。ご迷惑おかけしてすいませんでした(>_<)
- ぎりぎり年内にまとめかけました。今は自分のためのまとめですが、来年は誰かの役に立つような上手なまとめを書きたいです。
- よいお年を!