写点什么

从 Snowflake 看数据仓库未来演进方向:计算存储分离、弹性计算、统一存储和 Serverless 化

  • 2020-11-20
  • 本文字数:3527 字

    阅读完需:约 12 分钟

从Snowflake看数据仓库未来演进方向:计算存储分离、弹性计算、统一存储和Serverless化

2020 年 9 月,主打云数据仓库产品的硅谷独角兽 Snowflake 正式登陆纳斯达克,首日 IPO 筹资高达 33.6 亿美元,是有记录以来金额最大的软件 IPO,突破了 Uber 2019 年 5 月上市创下的最大规模纪录。


如今,大数据技术早已进入普及期,数据仓库/分析领域更是巨头林立,既有传统厂商 Oracle、Teradata,也有开源软件 Hadoop,还有云厂商 AWS Redshift、Google Bigquery,在这样一个竞争环境下,成立于 2012 年的 Snowflake 能脱颖而出实属不易。那么,Snowflake 在数仓技术方面有哪些独到之处?其成功的背后又有哪些技术原因和趋势值得关注?


近日,InfoQ 有幸采访了腾讯云 EMR 技术负责人、专家工程师陈龙,聊了聊过去一年他所看到的大数据领域和数据仓库方向的技术演进。他还将在QCon全球软件开发大会(深圳站)“现代数据架构”专题 中进行《下一个SnowFlake? 看云上ClickHouse如何做存储计算分离》的分享,感兴趣的读者可以关注。


InfoQ:您可以说是大数据领域的资深从业者了,也参与过多个不同的大数据项目,能否跟我们分享一下您在大数据领域的从业经历?


陈龙: 我本人一直从事基础 PaaS 相关的产品开发,服务的都是公有云企业客户,早期负责云缓存 Redis、云数据 HBase,到现在的半托管式大数据基础平台弹性 MapReduce 以及云数仓 ClickHouse。对于一个从事基于云基础设施提供 PaaS 服务的技术人来说,印象最深刻的莫过于企业客户对于产品本身的肯定和吐槽。肯定是通过产品或者技术以及服务帮助客户解决了客户的问题,吐槽是因为产品本身或多或少存在问题没有达到客户的预期,但综合来看,客户对于大数据基础产品的关注点可以归纳为:性能、成本、和产品易用性。如何通过技术手段把大数据组件的性能做到极致,同时尽可能以更低的成本满足业务需求,通过产品让客户的技术、运维等成本降到最低一直是我们努力的目标。


InfoQ:这期间您经历了大数据领域哪些新老技术的更迭和演进?


陈龙: 在没有 Hadoop 相关生态技术之前,数据分析的主流方式是使用传统数据库通过分库分表的方式进行,这种方式技术复杂度和运维复杂度极高;或者使用 IBM 或者 Oracle 的商业产品,这意味着极高的成本。


在 Google 发布三大理论(GFS、MapReduce、BigTable)后,Hadoop 实际上已经成为大数据领域数据处理的事实标准,围绕 Hadoop 生态的技术也是百花齐放。通过 Hadoop 技术可以基于普通的 x86 服务进行大数据分析,成本可以得到有效控制,但是问题也随之而来。


目前 Hadoop 技术运维成本极高,同时并不支持历史数据的更新和增量数据处理,常规对于历史数据的更新只能通过重新计算的方式去解决,浪费大量宝贵的 CPU 和 IO 资源。虽然现在有 Delta 相关技术,时延也只能做到分钟级别,对于越来越高的数据实时性要求还是无法满足。其次计算存储不分离,无法对计算资源进行有效复用。因此长期来看,大数据分析技术演进的方向一定是:支持数据实时处理、计算存储分离、Serverless 化、高性能低成本的数据仓库服务才能赢得未来。


InfoQ:如果请您来盘点过去这一年大数据领域技术的发展,您认为有哪些比较重要的变化和趋势?相比前几年,今年的技术变化大吗?


陈龙: 过去一年大数据领域技术的重要变化个人认为有数据湖技术,趋势是客户对大数据分析的性能和易用性要求更高了,ClickHouse 的快速普及就能说明这个问题,客户要求极致的性能和更加低的成本(硬件成本、技术成本和运维成本)。


相比前几年,今年关注度比较高的莫过于数据湖。就技术形态而言,目前有两种形式的数据湖技术,一种是以 Presto 为代表,通过各种连接器分析各种异构数据源的数据而不需要预先对数据做任何处理;另外一种是以 Delta、Hudi、Iceberg 为代表的技术框架,是基于 HDFS 或者是云对象存储做集中式存储,外围数据需要导入到湖中,同时结合 OLAP 引擎对外提供服务。Delta 旨在解决大数据领域里的历史数据更新和增量数据处理问题,进一步降低大数据分析的技术复杂度和成本。


InfoQ:这些变化背后的原因能否分析一下?


陈龙: 在大数据领域,对于历史数据的更新和增量数据的处理需求一直是客观存在的,而且总的趋势是数据实时性要求越来越高。在没有 Delta 技术之前需要大量的重复计算来解决这些问题,同时随着需求的不同引入的技术框架会越来越多,导致的问题就是技术、运维和硬件成本快速上升。Delta 等相关技术的出现,旨在通过一种统一的 Data Serving 层,降低大数据分析的技术复杂度,同时提升性能和降低成本。


InfoQ:您这次在 QCon 上的演讲所在专题名称是“现代数据架构”,那么您所理解的“现代数据架构”是什么样的?具备哪些特点?


陈龙: 我所理解的现代数据架构特点如下:

1. 必须基于云计算构建

云计算让 IaaS 的交付和基础 PaaS 的交付进入了工业化时代,在信息技术领域分工更加明晰,从而使企业更加聚焦于自身业务,从业务依赖 IT 技术转变为 IT 技术为业务服务。


2. 存储计算分离

在云的环境下,网络传输能力已经超过本地磁盘的 IO 能力,存储计算分离带来的好处是存储量一定的情况下通过横向扩展计算可以带来更好的性能 ,同时在计算低峰的时候通过云的弹性能力进行扩缩容带来数据分析计算成本的进一步降低,同时可以根据数据热度进行存储分级进而降低数据分析的存储成本。


3. 按需付费

相比自建 IDC,云的最大优势是资源分钟级交付,最大程度降低硬件成本,企业用户可以根据实际计算量和存储量进行按需付费。


4. Serverless

Serverless 可以让客户的大数据分析运维成本降到接近于零,在企业客户视角看到的是一个服务而不是一个技术框架或者是一种开源技术,有效降低大数据分析的运维成本。


5. 极致性能

基于云基础设施,在计算存储分离的模式下还必须保证现代数据架构下的零性能损失,性能的保证即是成本降低的保证。


InfoQ:大数据存储方向从去年到今年涌现了不少热门话题,比如数据湖、数据湖仓等等。在您看来,传统数仓和云数仓当前存在哪些需要改进的问题和局限?为什么需要数据湖、数据湖仓?


陈龙: 近一年大数据领域里最热的词莫过于数据湖和云数仓,特别是在 Snowflake 上市之后。数据仓库和数据湖并没有严格的范式去定义,比较公认的概念为:数据湖是一个集中式的存储,允许以任意规模存储结构化和非结构化数据。可以存储原始数据,而不需要先转化为结构化数据,基于数据湖之上可以运行多种类型的分析。而数据仓库是处理过后的结构化或者半结构化数据,更加靠近数据的消费端。数据湖仓个人理解是使用一套技术去实现数据湖和数据仓库的能力,类似多模的概念。


传统数据目前多基于 Hive 在 Hadoop 生态至或者 MPP 引擎构建,而现阶段云数仓也是基于这些技术在云上构建,问题是面向不同的业务场景引入的技术栈也不尽相同,技术栈复杂且运维成本高。云数仓大多基于云上对象存储构建,在某些特定场景下,性能需要提升。数据湖从概念上讲更强调集中式存储、数据的原始特性,而数据仓库则是以结构化和半结构化数据为主。


InfoQ:未来数仓技术的发展趋势会是怎样的?


陈龙: 未来数据仓技术的发展趋势,Snowflake 给出了一个很好的参考样本。标准的接入层实现 DDL 以及安全认证等,弹性计算层充分利用云的弹性能力大幅降低计算成本,统一存储层基于云存储构建,解决数仓临时扩容以及运维问题。总体趋势就是:计算存储分离、弹性计算、统一存储以及 Serverless 化。


InfoQ:在您看来,当前大数据计算引擎和存储分别处于什么样的发展阶段?为什么?


陈龙: 当前大数据计算引擎主要有 MR、Tez、Spark、Flink,其中 MR 属于第一代计算引擎,Tez 算是第二代,而 Spark 和 Flink 则属于第三代。其中 Spark 偏向离线而 Flink 则偏向流式计算,虽然 Spark 和 Flink 都在朝着流批一体的方向演进,但还有不少的工作要做。如果总体目标是通过一套技术模型来解决流批一体的问题,个人认为计算引擎还处在高速发展阶段。大数据里的存储即 HDFS 其实已经成为事实上的标准 ,特别是在 Hadoop 3.0 引入 EC 以及联邦特性进一步完善之后,HDFS 达到了成熟的标准。在云的环境下,云上对象存储在大数据分析存储位置上越来越重要,未来对象存储势必成为云上数据湖或者数据仓库的底层存储


InfoQ:接下来大数据领域还有哪些值得关注的技术方向?


陈龙: 个人觉得未来大数据领域值得关注的技术方向有:Delta 技术,通过 Delta 技术可以实现历史数据更新和增量数据处理,同时支持 ACID 能力,可以大幅降低大数据分析的复杂度;另外是 OLAP 引擎的物化视图,数据集中式存储和管理后,如何快速提取数据物化视图是一种比较不错的解决方案。

嘉宾介绍:

陈龙,腾讯云 EMR 技术负责人,专家工程师,2011 年加入腾讯,先后主导开发了腾讯云 Redis,负责腾讯云云数据库 HBase 以及 EMR 等多款云产品的技术工作。Apache Hbase Contributor,向 Apache Hive 等多个开源项目贡献过代码,目前专注于腾讯云 EMR 和腾讯云云数仓 ClickHouse 的技术建设工作,协助企业客户的大数据基础应用在云上落地以及业务模型改进等工作。

2020-11-20 14:004152
用户头像
蔡芳芳 InfoQ主编

发布了 798 篇内容, 共 544.6 次阅读, 收获喜欢 2786 次。

关注

评论

发布
暂无评论
发现更多内容

千万级学生管理系统的考试试卷存储方案

Steven

架构实战营

河南等保测评公司都有哪几家?都在哪里?

行云管家

网络安全 信息安全 数据安全 等级保护

混合云的概念以及优势劣势简单介绍-行云管家

行云管家

云计算 混合云 多云 云管平台

月薪3万的大厂测试工程师裸辞3个月,送外卖谋生背后的真实感悟

六十七点五

程序员 程序人生 软件测试 软件自动化测试 测试工程师

速来!开源中国首届飞算SoFlu组件开发悬赏赛来袭

SoFlu软件机器人

Java

首次!统一调度系统规模化落地,全面支撑阿里巴巴双 11 全业务

阿里巴巴中间件

阿里云 云原生 中间件 双十一 统一调度

我所理解的社群—社群本质

sec01张云龙

社群 11月日更 社群运营

浅谈 RDMA 与无损网络

青云技术社区

云计算 云原生 存储

彻底搞懂Spring状态机原理,实现订单与物流解耦

Tom弹架构

企业如何选择合适的低代码平台?这6点不得不考虑!

J2PaaS低代码平台

低代码 低代码开发 低代码平台 企业数字化

手把手教你学Dapr - 2. 必须知道的概念

MASA技术团队

C# .net 微软 后端 dapr

Scrum Master是什么?Scrum Master的职责是什么?和PM又有哪些区别?

爱吃小舅的鱼

敏捷开发 PM Scrum Master

短视频个性化Push工程精进之路

百度Geek说

后端 软件架构

项目管理常见问题系列(1)—资源不足

一叶而不知秋

项目管理

第一本 Compose 图书上市,联想大咖教你学会 Android 全新 UI 编程

图灵教育

Compose AndroidUI

LevelDB Java&Go实践

FunTester

Java 自学 Go 语言 leveldb FunTester

模块三作业——外包学生管理系统架构设计

覃飞

前端的状态管理与时间旅行:San实践篇

百度开发者中心

大前端 san san-store 技术实践

【高并发】通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程

冰河

Java 并发编程 多线程 高并发 异步编程

CSS布局之display:flex(二)

Augus

CSS 11月日更

Nebula Graph 源码解读系列 | Vol.04 基于 RBO 的 Optimizer 实现

NebulaGraph

图数据库 源码解读

我是一个程序员,总想引导亲朋好友走上编程的伟大航路......

图灵教育

程序员 App Inventor

不要再重复造轮子了,Hutool这款开源工具类库贼好使

沉默王二

Java

Vue项目优化打包——前端加分项

CRMEB

一招教你通过焱融 SaaS 数据服务平台+ELK 让日志帮你做决策

焱融科技

云计算 分布式 SaaS 公有云 文件存储

Nginx中间件渗透总结

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

极光笔记丨关于数据大屏一比一还原设计稿这件事

极光JIGUANG

大前端 数据可视化

就是简单,全球100多万读者,一起跑通前端HTML5与CSS3知识!

图灵教育

大前端 HTML5, CSS3

手把手教你学Dapr - 1. .Net开发者的大时代

MASA技术团队

C# .net 微软 后端 dapr

拥抱智能,AI 视频编码技术的新探索

阿里云视频云

阿里云 视频编码 机器视觉 视频编解码 视频云

Python代码阅读(第58篇):压缩列表

Felix

Python 编程 列表 阅读代码 Python初学者

从Snowflake看数据仓库未来演进方向:计算存储分离、弹性计算、统一存储和Serverless化_文化 & 方法_蔡芳芳_InfoQ精选文章