从ClickHouse的名字由来讲起

简介: ClickHouse为什么叫ClickHouse ? 你知道它的名称来历吗?

身边的朋友都知道,我正在写一本介绍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 ,重要的事情必须说三遍。 希望大家以后不要再叫他内裤了...

目录
相关文章
|
5月前
|
关系型数据库 Linux PostgreSQL
这个错误是因为Flink CDC在尝试访问PostgreSQL的"decoderbufs"文件时,发现该文件不存在
【1月更文挑战第23天】【1月更文挑战第111篇】这个错误是因为Flink CDC在尝试访问PostgreSQL的"decoderbufs"文件时,发现该文件不存在
119 11
|
2月前
|
存储 Cloud Native 前端开发
ByConity 真的可以替换 ClickHouse 吗?
随着 ByConity 应用得越来越广泛,ClkLog 考虑到有用户或许已经使用了 ByConity 作为数据仓库,那么为了验证用户是否可以直接使用 ByConity 来替换掉 ClickHouse 搭建 ClkLog,我们专门针对 ByConity 的兼容性做了一组测试。
ByConity 真的可以替换 ClickHouse 吗?
|
3月前
|
关系型数据库 MySQL 数据库
实时计算 Flink版产品使用问题之如何排除某个列进行同步MySQL数据
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
JSON 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在使用CDAS语法同步MySQL数据到Hologres时,如果开启了字段类型宽容模式,MySQL中的JSON类型会被转换为什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之启用hive兼容的时候,某个字段是null,是否会把这个字段当成空白连起来
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB产品使用问题之如何确定storageType是否通过配置文件参数定义
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之源MySQL表新增字段后,要同步这个改变到Elasticsearch的步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
NoSQL Java MongoDB
mongoDB动态配置文档名称
mongoDB动态配置文档名称
76 0
|
5月前
|
消息中间件 SQL NoSQL
Flink mongodb支持CDAS 到那些下游?如果是不定格式的如何处理呀?mongodb的动态字段。
Flink mongodb支持CDAS 到那些下游?如果是不定格式的如何处理呀?mongodb的动态字段。【1月更文挑战第19天】【1月更文挑战第94篇】
121 6
|
NoSQL MongoDB
mongoDB表修改字段名称
柚子今天介绍的是mongoDB表修改字段名称,由此整理了相关内容,下面我们一起来看下吧。
2211 0