オープンソース

ClickHouse〜高速に動作するデータベース管理システム〜

オンライン分析処理(OLAP:Online Analytical Processing)とは、蓄積されたデータを様々な視点から素早く分析を行う処理や操作のことをいいます。企業内でも、分析を様々な角度から行うことでスムーズな意思決定に役立てることができます。最近では、大量のデータを分析し可視化するビジネスインテリジェンス(Business Intelligence)ツールが多く提供されています。オンライン分析処理もこのビジネスインテリジェンスのカテゴリの中の一つと言われています。
今回は、オンライン分析処理(OLAP)に利用できる、オープンソースの列指向データベース管理システム(DBMS)のClickHouseを紹介します。

ClickHouseとは

ClickHouseとは、オープンソースソフトウェアの列指向のデータベースで、オンライン分析処理(OLAP)に特化したソフトウェアです。ClickHouseは、2016年にリリースされ、Apache License v2ライセンスで公開されています。ClickHouseは、リアルタイムに多くのデータを分析し提供します。そのため、ネットワークモニタリングやマーケティング分析、トラフィック分析など幅広く利用が可能です。

ClickHouseの特徴

ClickHouseには、以下の特徴があります。

高速な処理が可能

ClickHouseは、列指向構造を採用したソフトウェアです。OSSのデータベース管理システムであるMySQLPostgreSQLは、行指向構造を採用していました。行指向構造では、フロントエンドのシステムと結びついて頻繁にレコードにアクセスし内容を更新します。一方、ClickHouseは、列指向構造(カラム型データベース)を採用しています。ClickHouseが採用している列指向構造では、データを列ごとに保持しているため、欲しいデータだけを選択し取得ができます。よってデータの読み込み効率がよく、高速に動作します。

行指向と列指向の違い

行指向と列指向の違い

一般的なSQL構文で管理が可能

ClickHouseは、SQLをサポートしています。SQL構文とは、データベースに指示を出すための命令文で、データベース言語として標準化されています。MySQLなどもSQL構文を採用しており、ClickHouseもMySQL同じように命令や指示を出すことが可能になります。

メモリ・ディスク使用の最適化

ClickHouseは、データを列ごとに保存するため、同じデータや類似したデータ、空データが重複している場合、データを圧縮します。そのためClickHouseは、データの圧縮性能が高く、データサイズを抑えることができます。

様々なテーブルエンジンが用意されている

ClickHouseは、データや操作の特性によって最適化されたテーブルエンジンが用意されています。テーブルエンジンは、大きく次の4つのファミリーに分類されています。

  • MergeTree Engine ファミリー
  • Log Engine ファミリー
  • Integration Engine
  • Special Engine ファミリー

用意されたテーブルエンジンから、用途に合わせて適切なエンジンを選びテーブルを作成します。

リアルタイムでの集計をサポート

ClickHouseには、Materialized Viewという機能があります。Materialized Viewは、特定のテーブルへ挿入されたデータを、別のテーブルに格納するための機能です。例えば、リアルタイムにデータを集計する場合、タイムアウトやメモリ不足で集計ができないことや、データが多すぎてデータを保存しきれないことがあります。Materialized Viewは、リアルタイムなデータを別のテーブルに保存するため、集計処理やクエリの高速化ができ、不要な元データを削除しデスク使用量を削減します。

クラスタリングや分散処理のサポート

ClickHouseは、複数台による分散処理とデータシャードのレプリケーション機能があります。元々、ClickHouseクラスタは、Apache Zookeeperを利用して死活監視等を行っていました。現在では、Zookeeperの問題点を解消するため、ClickHouse Keeperと呼ばれるZooKeeper互換のプロセスを使い、クラスタを構成するように変化しています。クラスタリングや分散処理を設定することができるため、高い処理性能をもち、故障や障害が発生してもほかのノードに処理を引き継ぐことができます。

ClickHouse Keeperのクラスタ構成

ClickHouse Keeperのクラスタ構成

様々な外部システムとの連携

ClickHouseは、外部のシステムと連携してデータを活用することも可能です。例えば、Amazon s3からのデータインポート・エクスポートやMySQLやMongoDBからのデータの取得、Apache Kafkaブローカからのデータ取得が可能です。

デージーネットの取り組み

デージーネットでは、ClickHouseを調査した結果、処理の高速性においても、1000万件や1億件のレコードを数秒程度で登録し、検索も1秒かからない速度で応答があることがわかりました。しかし、実際の利用場面では、テーブルやクエリの内容によって検索速度が左右されることもわかっています。そのため、想定される利用環境を作成し、クエリの最適化やベンチマークなどを実施していくことを検討しています。また、Apache Kafkaと連携した、データベース管理システムの構築を行っています。ClickHouseのインストール方法や調査した結果は、ClickHouse調査報告書からダウンロードが可能です。

「情報の一覧」

ClickHouse調査報告書

無料資料ダウンロード

ClickHouseとは、2016年にリリースされたOLAPに特化した列指向のデータベースです。本書は、ClickHouseについて調査した内容をまとめたものです。

Apache Kafka〜OSSの分散メッセージングシステム〜

OSS情報_Apache Kafka

Apache Kafkaとは、随時生成される膨大なデータをリアルタイムに処理することができる、オープンソースソフトウェアの分散メッセージングシステムです。

NetFlowでネットワーク問題を解決〜OpenNFA〜

OSS情報_OpenNFA

デージーネットではOSSを組み合わせ、低コストでネットワーク監視を導入することができる、Netflowを活用したトラフィック監視システム『OpenNFA(オープンエヌエフエー)』を開発しました。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

ClickHouse〜高速に動作するデータベース管理システム〜の先頭へ