ClickHouse | 小马快跑,伏尔加河上的三套车

最近,中美关系又变得紧张了,朋友圈里也满是TikTok的生死问题,但我却被一本书转移了注意力,体验了一下俄罗斯风情。

大家都知道美国有Google,中国有百度,但是你知道俄国人最喜欢用的搜索引擎是什么吗?

首先,我要承认自己的无知,写此文之前,我对俄国人知之甚少。

现学现卖,除了Google和百度,还有一个叫Yandex的俄式战斗版搜索引擎,在俄罗斯搜索市场独占鳌头。我猜,普京总统应该很喜欢用。

今天,我就分享一下支撑Yandex这个搜索引擎运营的数据分析利器,ClickHouse。

ClickHouse的由来

初次听到ClickHouse,脑海里浮现的是小马快跑(Click Horse),后来才发现自己搞错了。不由想起了同学之前说过的一个词,思维奔逸。

官方解释,ClickHouse,是由俄罗斯的互联网公司Yandex研发并开源的,一个实时的分析型数据库管理软件。

搜索引擎都是基于流量点击进行数据分析,形象的讲ClickHouse的全称是Click Stream,Data WareHouse,而ClickHouse,其实只是个简称。

ClickHouse的特色

说起大数据,绕不开Hadoop生态,但ClickHouse偏偏脱离Hadoop生态,选择独辟蹊径,自成一体。

列式存储:牛逼的OLAP,列式存储已经是标配,使得数据压缩也有了用武之地。直接效果就是减少数据扫面范围,让I/O更高效。

MPP架构:多主架构,角色对等,数据分片(Shard)和副本(Replica)的结合,既保证了扩展能力,也增强可数据冗余保护,坏几块硬盘,宕几台服务器都能扛得住。

CPU计算:支持CPU向量运算,将单体循环变为并行处理,充分利用硬件和算法,提升计算效率,所以彪悍的快。

存储引擎:我感觉是过于繁杂了。从ClickHouse的发展历史看,明显受到MySQL的影响。在数据库和表层面都需要规划存储引擎。有人说通用,意味着平庸。像ClickHouse这样,繁杂代表着专业和场景定制。

最有特色的当属MergeTree系列表引擎,与ZooKeeper配合支撑Distributed表。另外,ClickHouse的数据类型也是别具一格,对负责设计的架构师有很高的要求。

总之,ClickHoue是个小巧玲珑,性能极佳的数据库管理系统。这一点与我印象中的俄式米格战斗机相去甚远。

开源盛世下的OLAP

这几年,实时数仓逐渐成了一种刚需,随着技术的进步,开源世界中涌现出了一大批优秀的OLAP,使得这些问题都有了相应的解决方案,

ClickHouse与Vertica

早年间,商业市场活跃的时候,HP收购了一个比较牛X的数据分析型产品叫Vertica,以性能卓越著称。

ClickHouse的性能跑分有一个数据对比,5倍于Vertica。你就知道ClickHouse到底有多快了!

关键是ClickHouse是开源的,比起商业软件,有免费这个杀手锏。

ClickHouse与Kylin

在OLAP的世界里,主要分两个MOLAP和ROLAP两派。Kylin属于MOLAP,而ClickHouse则属于ROLAP。关于Kylin和OLAP的相关知识可以去看看我的公众号文章《Kylin | 让决策的速度配得上你的激情》。

Kylin通过创建Cube,依靠预计算和智能修剪Cuboid,用空间换时间,提升性能。

ClickHouse在表关联上支持有限,多表Join查询会转变成两两连接的形式,容易造成性能问题。ClickHouse的性能卓越更多体现在单表查询上。

ClickHouse与Druid

两个都是ROLAP,更适合做对比,二者都擅长大宽表的实时分析。

Durid,目前还没深入学习过,据我所知,Druid是更擅长基于时间序列做分析,优势是数据的快速摄入和快速查询,但不支持表关联。

ClickHouse,在数据写入上更擅长批量处理,我觉得这跟MergeTree的存储引擎设计有关,因为涉及分区目录的合并。相比Druid,功能更丰富。

关于数据中台的思考

这两年,我对大数据的理解也逐渐深刻,从单纯的数据量,上升到4V的认知。但受限于岗位,更多的还是局限在了技术架构上,对于场景和业务的理解还有欠缺。

当企业积累了大量的数据,如何高效分析,给客户做画像,如何精细化运营,向客户做产品推荐,都是现实问题。

在公司数字化转型的背景下,希望一切业务数据化,增量与存量数据的对接整合,形成新的体系,从而盘活整个数据资产。这个新的数据资产池,我理解就是所谓的数据中台。

面对日益竞争激烈的商业环境,让数据灵动起来,让数据业务化,这才是数据中台的价值。

只是我认为数据中台不是直接设计出来的,而是演化出来的。就好像ClickHouse也是经过几代慢慢演化出来的,才有今天的成绩。

阿里的中台战略,之所以喊的响亮,因为已经演化完了。再看看我们自身,找找差距,可能差的不是一点半点。

看的见的当下,需要优化、改造的东西太多,而且,这条路布满荆棘,需要我们既有挖坑的热情,也有填坑的能力。

实时数据仓库的最优解

大数据时代,数据的采、存、析、用四个环节,环环相扣。不是简单的通过运筹学就能得到实时数据仓库的最优解。

产品也不是万能的,看过了不少技术,没有一个系统能够满足各种场景需求。归根结底,是因为我们无法在数据量、性能和灵活性这三个方面做到完美,要么在系统设计时作出取舍,要么在平台搭建时作出合理的产品组合。

通过实际案例分析,对于一些优秀和成功的企业,在大数据领域也多采取了技术组合形式来满足不同的用户需求。大数据从业者想一招鲜吃遍天,难!

反观自己,最近进入了一个怪圈,陷到数据里拔不出来。开源世界就像一个黑洞 ,无休止的吞噬你的精力,希望我能尽早从这一轮学习中抽身,开始新征程。

最后,用陆游的诗句勉励一下自己,“纸上得来终觉浅,绝知此事要躬行。”

你可能感兴趣的:(ClickHouse | 小马快跑,伏尔加河上的三套车)