Clickhouseについて
Qiitaの先人のみなさんが多く載せていらっしゃるので割愛。
https://qiita.com/tags/clickhouse?page=1
簡単な経緯
社内のDWHに適用できるDBMSを探索中、下記サイトに目が留まる。
https://www.predictiveanalyticstoday.com/top-wide-columnar-store-databases/
無料の記載に食いついて試してみることに。
検証にお金もかけれないのでローカル環境(Docker)で作成し、ムフッ♪っとなり。
日本ではまだ黎明期のようなので参考になればと思いこちらへ掲載。
お世話になったサイト様
Docker yandex/clickhouse-server
https://hub.docker.com/r/yandex/clickhouse-server/
@n-gondo123 のClickHouseの使い方とパーティションの話
https://qiita.com/n-gondo123/items/e7a29926b5a777998f08
@tomo0 のClickHouseとは【2020年3月最新】【サンプルあり】
https://qiita.com/tomo0/items/b730f479ba1b2c534f1a
ベンチ環境
筐体
WindowsPC: i5-6200U(2.3GHz)/16GB/SSD(Somsung 860 EVO)
※こんなに非力な環境でベンチとれるのか?と思いながらも…
各Dockerイメージ
Clickhouse : v20.3.5.21-stable
MariaDB : 10.5
検証データ
50,000,000件(RawDataで5.1Gb)
Column | Column Count |
---|---|
Total | 130 |
Date | 1 |
String | 39 |
Decimal | 90 |
手段
検証データを各DBに投入後、DberverからJDBC接続をして検証。
下記、各クエリを5回実施し、その平均値で比較。
Query1:Count(*)
Query2:年、月の項目でGruopByしDecimal列を9列でSum
Query3:年、月に加え、+6項目でGruopByしDecimal列を9列でSum
#ベンチ結果
###データ圧縮率
5.1GbのRawDataを格納した場合の各DBの利用Diskspaceを比較。
噂通りの高圧縮を叩き出してくれました。
運用の際についてまわるDiskの増設計画で頭痛くならなそう。
一方でMariaDBはRDBMSの利便性を残したまま、columnar storage engineを共存させている為、
その分、Disk spaceを使用している結果になった印象。
###処理速度
こちらもClickhouseが圧倒的に良い結果になりました。
Count(*)は体感ではさして違いはないですが、GroupBYで項目が増加するほど違いが顕著になりました。
##所感
先人の皆様や、Official Siteも仰るとおり、データの圧縮率、検索速度ともに非常に高い製品であることが確認できました。
DWHに向かない理由jOINが1つしかできないことがよく登場していますが、BI/BA用のStore先としては優秀という印象でした。
DWHは「Master/Transactionが別々にあり、Joinして使う物」なのでそちらには適さないですが、
「分析の目的に併せてMaster/Transactionを非正規化したデータ」を処理する環境としてはありという判断です。
これはDWHを「データを収集、蓄積する層」と「分析する為のデータ配置する層」の2層に分けて使うやり方で、後者の層を指しています。