インフラ保守運用や新しい技術の検証、データ解析周りなどをやっています。https://clickhouse.yandex/ClickHouseとは?ClickHouseとは、SQLクエリを使用してリアルタイムで分析データレポートを生成できるオープンソースの列指向データベース管理システムです。時系列データの保存、集計に特化していてクエリ検索パフォーマンスがとても優れています。データの更新(UPDATE)ができなかったり削除(DELETE)に制約があったりと通常のRDBMSでできることがClickHouseではできないこともありますが、ログを登録して集計することだけと考えればとてつもなく良いパフォーマンスをもたらしてくれます。ClickHouseの特徴ポジティブデータ検索(Select)速度がめっちゃ速いデータ集計(GroupByなど)がめっちゃ速い大量データの一括登録(Insert)がめっちゃ速いデータサイズがめっちゃ小さい(HDDに優しい)ネガティブ個別データ登録(Insert)が若干遅いデータ更新(Update)ができないデータ削除(Delete)ができない(データパーティションを削除することで特定月のデータを削除するなどのようなことはできる。)JOINができない※ClickHouseのパフォーマンスに関して(公式サイト)ClickHouseを試してみるインストールhttps://clickhouse.yandex/#quick-startインストール自体はだいたい3分程度で終わります。clickhouse-client使ってみるClickHouseはMySQLと親和性が高く、SQLクエリ自体も比較的似ています。DATE関連の関数は相違がありますが、だいたいのクエリはMySQLのものをそのまま使えたりします。2018年1月のアップデートでClickHouseからMySQLへ直接クエリを投げられるようにもなりました。テーブルのタイプの概念だけはMySQLと違うのでCREATE文を投げる際には注意が必要です。こちらはアクセスログなどを取り込むテーブルの場合に有効なテーブルタイプを解説している記事ですので参考まで。MergeTree」を試してみた。公式サイトでチュートリアルが準備されていますので是非試してみてください。https://clickhouse.yandex/tutorial.htmlベーシックでのClickHouse活用事例ベーシックではWEBサーバのアクセスログの保存と集計という部分で利用しています。WEBサーバのアクセスログはもちろん、WEBページ内のイベントログも保存し、それらを集計しユーザの行動パターンを解析しています。イベントログなどは1日あたり150万レコードほどあったりとなかなかのボリュームがあり、通常のRDBMSではリアルタイム集計は難しいと思います。大量のデータであるがためにレポートを出す際には集計のために時間をかけてバッチ処理したりする必要があります。それをClickHouseを利用することでリアルタイムで解析できるようになりました。その恩恵として、ベーシックにて利用しているBIツール(Re:dash)からでも大量のデータに対し、リアルタイムでアクセスログを解析することができるようになり、これまでは都度エンジニアへ解析データの出力を依頼していたところを、マーケター自身がいつでも簡単にデータ解析できるようになりました。Spark手前味噌ですが、弊社でMySQLとパフォーマンスを比較検証した結果です。検証結果としてはとても満足できるものとなり、すぐにClickHouseを導入し運用することを決めました。ClickHouseとMySQLのベンチマークをとってみた。おわりにClickHouseはBIツールのRe:dashのデータソースのひとつとしても登録されています。日本語での情報も少なく、導入事例等も見かけることがほとんどありません。データウェアハウスとしては簡単に用意することができ、大量のデータをパフォーマンス良く解析でき、そしてローコストで運用できるのでとても便利なデータベースです。Hacking!株式会社ベーシックエンジニア募集QiitaWantedly。