一、背景
saas 服务未来会面临数据安全、合规等问题。公司的业务需要沉淀一套私有化部署能力,帮助业务提升行业竞争力。
为了完善平台系统能力、我们需要沉淀一套数据体系帮助运营分析活动效果、提升运营能力。
然而在实际的开发过程中,如果直接部署一套大数据体系,对于使用者来说将是一笔比较大的服务器开销。为此我们选用折中方案完善数据分析能力。
二、Elasticsearch vs ClickHouse
ClickHouse 是一款高性能列式分布式数据库管理系统,我们对 ClickHouse 进行了测试,发现有下列优势:
- ClickHouse 写入吞吐量大
单服务器日志写入量在 50MB 到 200MB/s,每秒写入超过 60w 记录数,是 ES 的 5 倍以上。
在 ES 中比较常见的写 Rejected 导致数据丢失、写入延迟等问题,在 ClickHouse 中不容易发生。
- 查询速度快
官方宣称数据在 pagecache 中,单服务器查询速率大约在 2-30GB/s;没在 pagecache 的情况下,查询速度取决于磁盘的读取速率和数据的压缩率。经测试 ClickHouse 的查询速度比 ES 快 5-30 倍以上。
- ClickHouse 比 ES 服务器成本更低
一方面 ClickHouse 的数据压缩比比 ES 高,相同数据占用的磁盘空间只有 ES 的 1/3 到 1/30,节省了磁盘空间的同时,也能有效的减少磁盘 IO,这也是ClickHouse查询效率更高的原因之一。
另一方面 ClickHouse 比 ES 占用更少的内存,消耗更少的 CPU 资源。我们预估用 ClickHouse 处理日志可以将服务器成本降低一半。
三、成本分析
在没有任何折扣的情况下,基于 aliyun 分析。
四、环境部署
1、zookeeper 集群部署
yum install java-1.8.0-openjdk-devel.x86_64 /etc/profile 配置环境变量 更新系统时间 yum install ntpdate ntpdate http://asia.pool.ntp.org mkdir zookeeper mkdir ./zookeeper/data mkdir ./zookeeper/logs wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz tar -zvxf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/zookeeper export ZOOKEEPER_HOME=/usr/zookeeper/apache-zookeeper-3.7.1-bin export PATH=$ZOOKEEPER_HOME/bin:$PATH 进入ZooKeeper配置目录 cd $ZOOKEEPER_HOME/conf 新建配置文件 vi zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/zookeeper/data dataLogDir=/usr/zookeeper/logs clientPort=2181 server.1=zk1:2