从ClickHouse的名字由来讲起

  1. 云栖社区>
  2. 博客>
  3. 正文

从ClickHouse的名字由来讲起

nauu 2020-06-01 15:24:11 浏览473

身边的朋友都知道,我正在写一本介绍ClickHouse的书籍,书名叫做《ClickHouse原理解析和应用实践》,可以说2019年的绝大部分深夜,都与写作共度春宵了。现在终于有时间来扯些闲篇了。在日常生活中,我算是一个比较注重仪式感的人,所以喜欢研究每个事物的名字,总觉得它们的背后一定是有所寓意的。

目前在国内,关于ClickHouse方面的,有深度的介绍资料并不多,大多都是千篇一律,所以就更别提有它的八卦资讯了。你看隔壁的Hadoop动物园,讨论的是多么热火朝天,难道大家就不好奇为什么ClickHouse要叫做ClickHouse么?

至少我是好奇的,无奈在网上一直查不到相关的资料,心想这只有问问作者本人了。恰巧在参加ClickHouse的一次闭门会议时,有机会当面向作者请教。我就用我那纯正的中式口音问道:
"What's the meaning of the name, why we call it ClickHouse ?"

当 Ivan 耐心的在黑板上写下几个大字以后,一切豁然开朗。

看到了名字的含义,再结合ClickHouse的发展历程,一切就解释的通了。

我们都知道,ClickHouse由雏形发展至今,一共经历了4个阶段。它的初始设计目标,就是为了服务于自家的一款名叫yandex metrica的产品。

那metrica又是干什么的呢?简单来说,metrica是一款Web流量分析工具,基于前方探针采集回来的行为数据,进行一系列的数据分析,类似数仓(data warehouse)的OLAP分析。

而在探针采集的数据模型中,一次页面点击(click),会产生一个event事件。至此,整个系统的诉求就很清晰了,那就是基于页面的点击事件流,面向数据仓库进行OLAP分析。

所以ClickHouse这名字起的是不是既形象又贴切呢?

在知道了ClickHouse大名的由来以后,我还想接着聊聊它的小名,也就是缩写啦。
此时此刻,我的内心台词:

"这货真的不是内裤,我要为他正名..."

不知道从何时开始,也不知道是何种原因,ck 就成为了ClickHouse的缩写,在圈内传开。当第一次看到有人用 ck 称呼ClickHouse的时候,我很是纳闷,心想: "这厮不是内裤么?"。

我们不妨看看英语单词的缩写,通常是怎么命名的。首先分析一下ClickHouse的组成,ClickHouse由ClickHouse两个单词组成,这个在英语里面称为组合词。对于组合词,除开一些特殊情况,通常的压缩规则是,选取每个单词的首字母。

业界有很多基于这个规则的例子,比如:

  • HDFS - Hadoop Distributed File System
  • MR - MapReduce
  • ZK - ZooKeeper
  • ASF - Apache Software Foundation
  • DS - DolphinScheduler

上述类似的例子数不胜数。
接下来,还有在ClickHouse源码中,官方对自己的简写称呼:

   // For support old versions CH.
    if (source_is_lost_stat.version == -1)

    ...

     /** Considering that CH uses UInt8 for representation of boolean values this function
    ...

所以,ClickHouse的正确缩写,应该是 CH CH CH ,重要的事情必须说三遍。 希望大家以后不要再叫他内裤了...