万山数据创始人鲁四海:透过clickhouse看分析型数据库发展

2022-11-14 14:00:42  来源:

摘要:大数据已经火了很多年,但依然是缺乏应用,究其缘由不过是分析系统不够敏捷,实施过程中重平台建设不重应用、重数据搜集不重分析。当然要通过分析使得大数据能够用起来,充分发掘发挥其价值,除了实施策略上的调整外,还得通过敏捷的系统,把人力、物力、财力从平台建设上解脱出来。
关键词: 数字化,信息技术应用创新,数据库
\
大数据已经火了很多年,但依然是缺乏应用,究其缘由不过是分析系统不够敏捷,实施过程中重平台建设不重应用、重数据搜集不重分析。当然要通过分析使得大数据能够用起来,充分发掘发挥其价值,除了实施策略上的调整外,还得通过敏捷的系统,把人力、物力、财力从平台建设上解脱出来。
我们先来看一下分析平台技术演进。

一、 基于传统数据仓库的联机分析处理

数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
基于传统数据仓库的联机分析处理一般参考架构如下图所示:
\

此方案最大的问题在于:
1、 一般而言传统数据仓库很多时候选用的都是事务型数据库作为技术平台,当数据量不断增加,数据处理速度严重下降。而在原有技术平台上进行扩容成本较高且性能提升非常有限。
2、 进入数据仓库的数据都是根据最初的设计进行处理的,实际上造成了不可逆的数据丢失。

二、 基于NoSQL的大数据离线分析

在大数据技术逐渐普及,都在尝试用大数据技术进行数据分析应用的同时,该分析主要的体系架构如下图所示:
大数据技术主要用在数据缓存区域,而从大数据缓存区到数据仓库区之间的ETL从传统的ETL变成各种流数据处理技术和批数据技术。
而此时的数据仓库主要功能是存储大数据平台计算完成的结果集,其原因有二:1、大数据平台适合离线计算,并发性能极其低,所以无法直接对接报表等系统;2、报表、分析工具等数据使用端往往都是需要关系型数据库。
 
\
 
此种架构的不足之处在于:

1、 一套分析平台实施下来,用到的技术/产品过多,实施、维护成本很高;
2、 数据分析效率不够高;
3、 此类平台更多考虑的是批处理或流式数据处理,面对需要全量数据进行分析的场景,往往力不从心。
4、 高价值的数据往往存在于业务系统之中,很多本就是关系型数据,先转成非关系型存储,再转成关系型数据进行分析,环节增加的多了,也增加了成本和不确定性。

三、 基于MPP数据仓库的离线分析

从技术出现,或者说进入到数据仓库数据分析领域来讲,MPP会稍早,但就国内情况而言,更多单位确实事先了解Hadoop为代表的大数据平台,然后再知晓MPP数据库,应用方面也是在Hadoop平台遇到关系列数据分析瓶颈时才开始关注MPP数据库。

MPP数据库(以Greenplum为例),其优势在于:

1、 使用不共享的并行架构(如上图所示),使得存储空间和计算能力随节点数线性增加;
2、 直接使用SQL进行操作,对于数据处理和分析的用户及系统非常友好。

其不足之处在:

1、 有单节点问题;
2、 并发性能较低,无法支持在线分析。

四、 基于并行列式存储的在线分析

并行列式存储的在线分析技术体系,主要解决了以下问题:
1、 可以直接支持在线应用,比如某全国交易数据服务平台使用该技术体系进行数据分析处理,然后通过互联网提供数据服务,仅用了3台6核16G的虚拟机就实现了每天千万级访问量的支持。
2、 简单。使用简单,数据抽取、转换、清洗等操作完全可以通过SQL完成。维护简单,不像Hadoop大数据平台,需要维护一大堆组件,才能正常工作。
3、 对于业务系统、分析工具、可视化工具提供友好支持。
4、 减少存储空间,通过列式存储对数据进行压缩。
5、 提高计算速度,通过CPU多核心并行处理提升每个请求的处理效率。

从数据分析的角度,我们认为所谓的对非结构化数据的分析分为两步:数据预处理和数据分析,数据预处理也就是把非结构化数据变成结构化数据,所以,可以认为最终使用分析工具分析的数据都是结构化的。因此我们认为基于列式存储的在线分析体系,是大数据时代数据分析最理想的架构。

在我们的大数据实践中,我们基于并行列式存储的在线分析,是以clickhouse为基础构建的敏捷分析系统。之所以选择clickhouse,主要基于以下几个因素:

一、 高效

下图是官方测试数据,可看出其查询性能远远高于其他平台。
\

二、 易用

ClickHouse支持基于SQL的声明式查询语言,该语言大部分情况下是与SQL标准兼容的。支持的查询包括 GROUP BY,ORDER BY,IN,JOIN以及非相关子查询。
可以直接通过mysql、jdbc、kafka等相关函数访问外部数据,也可以直接解析json数据等。

三、 易维护

Clickhouse部署非常简单(centos、ubuntu等平台只需安装三个安装包即可),通过覆盖安装即可实现升级。其稳定性较高(笔者部署的clickhouse最长连续运行时间为16个月),维护工作较少。

四、 易集成

Clickhouse提供了JDBC、ODBC、PHP、PYTHON等驱动程序,其接口基于HTTP协议,自定义连接也是非常的容易。

五、 自主可控

与此同时,我们认为,敏捷的分析系统还应该具备一个特点,那就是能够自主可控,才能避免被“请君入瓮”的尴尬。而clickhouse所有的技术都是开源的,我们可以完全掌握,并根据自己的需要进行修改。比如万山数据团队解决了clickhouse官方的JDBC驱动并不能支持knowage平台的QBE的问题;解决了JDBC-BRIDGE存在的HTTP TRACE 跨站攻击漏洞等问题。

再有clickhouse是俄罗斯企业开源的,也不用担心中美科技战的影响。

互联网企业纷纷将日志分析等海量数据处理转到了clickhouse上,其实都是看中其高效、简单。

但仅仅是clickhouse无法成为一个优秀的敏捷分析平台,还需要数据采集、数据同步、分析工具等配合,我们万山数据等clickhouse早期实践企业,已经为clickhouse在管理方面、数据搜集同步方面、数据分析方面做了大量的工作,也研发出了不少优秀的配套工具,可以说基于clickhouse的自主可控的敏捷分析平台解决方案已经成熟。比如万山数据的日志分析系统,已经可以做到一台8核16G内存的云服务器,实现千万级访问量的WEB日志实时搜集、分析。而这套系统只是让HTTP SERVER将日志发送给kafka,在clickhouse里就能结构化地查询分析访问日志;快速数据获取工具,只需要配置JDBC连接字符串、数据表名就能实现数据的迁稳同步;可追溯的实时修改技术打破了列式存储不能修改数据的魔咒,实现数据随时修改。

国内也有不少企业完成了clickhouse在国产服务器(ARM平台)上的优化。

个人认为敏捷分析系统是未来的发展方向,只有系统使用简单了,才能更多关注数据分析应用。其发展离不开优秀的内核——clickhouse就是其中之一,再者就是需要优秀的配套,希望能有一批优秀的企业、团队一起研发出更多更优秀的配套组件,而不是大家都去做某某数据库发行版,只有这样才能真正的发展起来。

第三十七届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:zhanghy

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。