大数据平台是一个发展非常迅速的方向。本周Apache撤回了13个和Hadoop相关的项目,也给还在鼔吹Hadoop大数据生态的可以说是当头一棒。这几年社区里开始出现很多公司使用ClickHouse替换Hadoop生态的现象,让ClickHouse成为大数据的新宠。这一块我也对ClickHouse这个方向及大数据存储方向做一个反思,给大家一些参考。
首先我们看一下ClickHouse的集群架构:
官方的ClickHouse集群采用的shared nothing架构,该架构如果写入时直接写分布式表,对Zk的压力非常大。所以在该架构下主要还是写入local table,在海量数据写入时对于数据加载也是一个非常有挑战的工作。
该架构有以下优点:
该架构也有以下缺点:
由于以上的原因ClickHouse在原始结构下不好直接应用到海量数据存储架构下,主要就是存储和计算成本非常高。但在单体可用情况下ClickHouse非常的简单,特别是Clikchouse和MySQL结合的HTAP场景;或是提供一些简单无join的环境非常方便。业界也有把ClickHouse的存储放到HDFS实现计算和存储分离的模型(快手),但这种架构对于运维及公司的研发成本都比较高。
那么新一代的大数据或是数据平台存储方面有什么改善呢?
说到新一代的大数据平台,不得不提当前的明星产品Snowflake。Snowflake俨然进一步定义了现代数据仓库发展的方向。Snowflake提出了data-warehouse-as-service(DaaS)基于云原生的数据仓库Saas服务(No hardware, no software, and completely maintained on cloud)
Snowflake提出一个Mutli-Clusetr Shared Data架构,下面我们看一下Snowflake的架构:
从Snowflake的架构可以看出底层使用了Shared Data架构即云厂商提供的S3类的对象存储能力,S3本身是云厂商提供的跨数据中心及一个近似于无限扩容机制,所以用户在数据存储及安全方面基本无需担心。
再说Snowflake的计算层即计算集群,计算集群在同一个数据中心内,只要保障网络传输的性能,就可以把查询解析后分发到计算层集群执行从Shared Data中获取数据。在这个环节上利用了云上基础资源减少了私有构建方面的IT麻烦。
再往上是官方提出的cloud service或是元数据管理层,这一层是无状态的,可以非常方便解决高可用问题。
最上层是负载均衡器,可以进行服务的冗余和负载处理,连接保持等。
从架构及分层上看Snowflake也是完全按Cloud Native Database架实现,但Cloud Service层更加复杂。
该架构优点:
该架构缺点:
1. 基于云上的架构开发,比较难于私有部署。
2. 目前没有开源 (强加一个缺点)。
可以说目前大数据平台,数据平台都在从shared nothing架构向Shared Data在进行过渡,由传统的OS Database模型向计算和存储分离过渡。慢慢向SaaS化的应用过渡(云公司也会向着更加专业的IT设备提供商转型,越来越多的SaaS服务商也会出现)。
国内的情况可能慢一点,现在国内上云的情况还是比较少,大多数公司还停留在什么事都想自已干,更多的公司现在还在寄希望于自研,然后干出来一个AWS的生意。但可以看到全球目前这块成功的也就:AWS, Google, Aliyun, Tencent。其他的公司能满足自身公司的业务就不错了。但现在可以说是基于云原生创业的最佳时期。
总结:
本文分享自 MySQLBeginner 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!