【クリックハウス】

ClickHouse とは?

💡 ペタバイトのデータも一瞬で集計!ロシア生まれの爆速カラムナDB
📌 このページのポイント
行指向 vs 列指向 → 集計クエリの効率が段違い 行指向(従来型) 名前 年齢 売上 地域 売上合計→全列を読む必要あり 列指向(ClickHouse) 名前 年齢 売上 地域 売上合計→売上列だけ読めばOK! 集計クエリ→ 読み取りデータ量 1/N に削減 + 同一型データの圧縮効率が大幅向上 ClickHouseはこの仕組みでペタバイト級でも爆速集計
行指向 vs 列指向の読み取り効率比較
ひよこ ひよこ

ClickHouseってどうしてそんなに速いの?

ペンギン先生 ペンギン先生

秘密は「列指向」にあるよ。普通のDBは1行ずつデータを保存するけど、ClickHouseは列ごとにまとめて保存する。「全ユーザーの年齢の平均」みたいな集計のとき、年齢列だけ読めばいいから圧倒的に速いんだ

ひよこ ひよこ

行指向と列指向って、どれくらい差が出るの?

ペンギン先生 ペンギン先生

100列あるテーブルで1列だけ集計する場合、行指向だと100列分のデータを全部読む。列指向なら1列分だけ。つまり100分の1のデータ量で済む計算だよ。しかも同じ型のデータが並ぶから圧縮効率もすごく高いんだ

ひよこ ひよこ

じゃあ普通のアプリのDBとしても使えるの?

ペンギン先生 ペンギン先生

集計は得意だけど、1行ずつのUPDATEやDELETEは苦手なんだ。だから通常のアプリのDBにはMySQLPostgreSQLを使って、分析用にClickHouseにデータを流す構成が多いよ

ひよこ ひよこ

どんな会社が使ってるの?

ペンギン先生 ペンギン先生

CloudflareDNS分析、GitHubのイベント分析、Uberのリアルタイムダッシュボードなど、大量のイベントデータを扱う企業で採用されているよ。日本でもログ分析基盤として導入が増えてるんだ

ひよこ ひよこ

DuckDBとはどう使い分けるの?

ペンギン先生 ペンギン先生

DuckDBは「ローカルで気軽に分析」、ClickHouseは「サーバーを立てて大規模に分析」という棲み分けだね。データ量がTB〜PB級になったり複数人で同時にクエリしたいならClickHouseの出番だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ClickHouse」って出てきたら「大量データの集計が爆速な列指向データベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「ClickHouse」 = クリックの倉庫
💬 もともとYandexのWeb広告のクリックログを分析するために作られたから「Click(クリック)+ House(倉庫)」という名前になったんだよ
← 用語集にもどる