最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

从 Hadoop 到云原生(1):Kylin 在云原生巨浪中的思考

  • 2020-07-21
  • 本文字数:3767 字

    阅读完需:约 12 分钟

从 Hadoop 到云原生(1):Kylin 在云原生巨浪中的思考

我们首先从一张图开始:



上图是从 Google Trend 上获取的近五年的关于 Data Warehouse(蓝色)、Data Lake(红色)、Redshift(黄色,AWS 的著名云原生数据仓库)和 Hadoop (绿色)这四个关键字的热度趋势。可以观察到,最近的五年内,Hadoop 关键字的热度迅猛下降,Data Warehouse 的热度保持稳定,而 Data Lake 和 Redshift 的热度都有显著提升。另外值得一提的是,早在 2016 年初前后,Redshift 的热度就已经超过了 Data Warehouse,并且在最近超过了疲态明显的 Hadoop。


这也与我们的观察和感受一致:越来越多的企业客户正在从 On-Premise 的数仓方案,转向基于云(包含公有云和私有云)的解决方案,这种趋势在美国 2B 市场已经被广泛接受,在国内 2B 市场也已方兴未艾。由于无可取代的弹性扩展性、容灾性、低 TCO 和几乎无限量的存储空间,基于云平台的数据仓库技术正在逐渐让所有人相信拥抱云原生才是数据仓库技术以及相关数据分析技术未来。云原生的巨浪正在席卷全球的软件产业,包括开源软件和商业软件。在数据仓库这个细分领域,我们能明显的感受到数据仓库正在经历以下几代体系的演进:

1. 传统的数据仓库

最早出现的是数据库一体机,是由单独的硬件软件所构成,这种数仓的问题主要在两个方面:第一,它需要专有的硬件,成本较高;第二,它的扩展性不高。在过去这样的问题是可以被用户接受的,但是在现今的大数据时代,有很多开源的技术可以用来在普通硬件上构建大数据平台,不愿意被单独的供应商或者硬件平台绑定,所以一体机模式的数仓越来越难得到普及。


这样的背景很自然地催生了第二类数据仓库的兴起:

2. 基于通用硬件的分布式数据仓库

这类的数仓方案通常可以基于通用硬件(Commodity Hardware),在可扩展性上相比较传统的数仓有了质的飞跃。在笔者看来,这类的数仓也可以分为两大类,即 MPP 数仓(在商用数仓软件的代表是 Greenplum,在开源数仓的代表有 Presto 等)和批处理数仓(典型代表是 Hive 和 Spark)。MPP 和批处理的区别有点超出本文的主要范围,在此就不展开了。值得注意的是,和 Hadoop 有近亲关系的 Hive 虽然非常有可能随着 Hadoop 的巨轮一起慢慢消失,但是它却为第二类数仓带来了一种极其通用的数据表元数据定义的标准,并被 Presto,Spark 等技术全面地沿袭,成为了事实上的标准。


第二类的数据仓库获得了巨大的成功,放眼国内,无论是一线大厂还是不知名的小公司,都围绕这类技术开发除了完整的数仓和分析平台,大大地提高了大小企业对数据资产的发掘能力。但是这类数仓的弊端也慢慢地暴露出来:因为数据不断增加,需要不断增加节点,导致企业不得不自行投入扩建机房,继而进行全面的迁移数据工作。运维团队和业务团队无奈承受着背后的繁琐和低效,苦不堪言。此时不断成熟的云厂商给大家带来了新的可能:

3. 第一代云原生的数据仓库

以 Amazon Redshift, Azure SQL DW 为代表,在云计算开始之初,云厂商就为用户准备好了用于分析型业务的云上数据仓库产品。这类数仓产品一般都需要申请一个固定节点数量的集群,都配有列式存储技术、分布式查询等特性。但是,由于云上有无限的计算节点资源可以申请,用户可以随时调节集群中的计算节点数量。无论是集群的启停、扩容、升级,这些操作都可以在云厂商的界面上通过几次点击完成,已经在云原生度上与第二类数仓有显著差异。


这一类数仓依托云上无限扩容的基础硬件设施,免除了运维人员在集群规模扩容时的空间困扰,需要更多的资源只需要在网页界面上点击即可完成。但是这类数仓数据和计算没有完成分离,会导致什么问题呢?比如某个用户已经申请了一个 10 台机器的节点,这 10 个节点每个都有计算资源(CPU)和存储资源(磁盘)。由于 workload 的增加,用户发现需要增加更多的计算资源才能满足,于是不得不把数仓配置从 10 个节点升级为 15 个。但是,这额外的 5 个节点的存储资源也是要收费的,即便用户的数据在原来的 10 个节点中完全够存。在这种情况下,用户的诉求是买更多的计算资源,但实际情况是他不仅购买了更多的计算资源,还购买了用不上的存储资源。这就大大增加了这样的数仓方案的 TCO,限制了企业在数据资产的有效利用。

4. 新一代的云原生数据仓库

以 Snowflake, Amazon Athena, Azure Synapse, Amazon Redshift Spectrum(严格地说 Amazon Redshift Spectrum 只是一个 Redshift 的插件)为代表的新一代云原生的数据仓库,进一步实现了云上数仓计算与存储的分离。在第三类数仓中,即使用户已经在对象存储中准备好数据,仍然需要将数据导入到数仓后,才能进行查询。而第四类数仓可以直接查询用户在对象存储中的数据。在第三类数仓中,用户如果发现集群空间不足,不得不对集群进行扩容,这样不仅是在为更多的存储支付成本,而且在为更多的计算支付成本,即使他不缺少计算资源。而在第四类数仓中,用户在对象存储中的数据按量计费,在数仓节点中的计算按量计费,两者相互独立。


这种新一代的存储和计算分离的数仓架构催化了我们耳熟能详的数据湖数仓架构体系。在这种架构下,所有的数据都可以可靠、廉价、方便地存储到对象存储上(Amazon S3,Azure blob storage, ADLS),云厂商提供了完整的配套工具来确保用户的应用数据库、日志、APP 的数据可以顺利地落地到对象存储上。这种区别于块存储和文件系统的存储方式从根本上决定了云原生数仓的存储形态乃至设计形态:数据不再保存在某个节点的磁盘中,存储和计算天然分离,计算所需的一切存储,都来自遥远的、无限的、透明的对象存储中。下图是 Redshift Spectrum 的架构图,可以看到对象存储在其中的基石地位。



当我们意识到对象存储在云上数仓的基石地位和它能为数据分析带来的无限可能之后,我们不禁感慨 Data Lake 这个词是多么生动。只有云上的对象存储,才能够将用户如湖水一般的数据承载下来。关于数据湖的定义确实是一个业界有较多争议的地方:狭义的数据湖指数据湖储存,即可以存放海量数据的地方,也就是我们说的云上对象存储(一般来说 Hadoop HDFS 也可以做数据湖的存储,但是相比对象存储,它在灵活性和可扩展性上还是相距甚远);广义的数据湖除了数据湖存储,还包括支撑了数据湖的管理、数据处理、监控、调度、分析的一整套工具系统。下图是 Azure 官方提供的基于 ADLS 的数据湖架构的典型架构:



在上图中,所有的活动围绕 ADLS 展开:通过批量或者流式的数据导入,数据被落地到了 ADLS 中。Azure Data Factory 可以在这个过程中帮助用户完成对数据的 ETL 加工,加工的过程中可以用到各种外部的计算引擎,例如 Databricks 提供的 Spark 和基于开源 Hadoop 的 HDInsight。在过去,用户完成加工后,数据可以被导入到 Azure SQL DW 或 Power BI 中供数仓分析师直接使用,也可以被下载另作他用。有了第四类数仓,用户可以通过 Azure Synapse(用官方自己的话说,这就是 Azure SQL DW 的进化版)直接与 ADLS 中的数据进行交互操作,如下图 Azure Synapse Architecture 所示。



有了对基于数据湖架构的新一代云原生数仓的初步理解,我们大致可以看清数据仓库今后的发展脉络:


基于云平台提供的基础架构,无论是来自公有云还是私有云;


基于无限容量的数据湖存储;存储与计算分离,独立按需计费;


计算资源具备较强弹性,可以随时扩容缩容,有必要时可暂停所有计算节点(在这方面 Serverless 的服务架构更有优势,但即使不是 Serverless 也一样能做到);


同时支持查询数据湖中的结构化和非结构化数据等等。


经过一番梳理,我们可以看到数据仓库正在慢慢向云原生的、存储计算分离的方向上发展。企业做技术选型,以及我们自身做技术战略投入的时候,自然也需要尊重并拥抱这样的时代趋势。Kyligence 诞生于 Hadoop 时代,在这样的行业趋势下,要对原有的 Hadoop 平台体系做哪些方面的重新思考和设计呢?与我们面临相同挑战的企业又能借鉴哪些经验呢?我们将在本系列的下一篇文章中展开。


作者介绍


马洪宾,Kyligence 创始合伙人 & 研发副总裁,Apache Kylin 核心开发者及项目管理委员会成员 (PMC)。专注于大数据相关的基础架构和平台设计。在从事大数据和数据仓库相关工作之前,曾经是微软亚洲研究院的图数据库 Trinity 的核心贡献者。目前担任 Kyligence 企业级产品的研发负责人,帮助客户从传统数据仓库升级到云原生的、低 TCO 的现代数据仓库。


2020-07-21 15:152858

评论

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

裸辞闭关62天,啃下这些分布式技术笔记,有幸通过阿里Java岗P6面试

Java~~~

Java 架构 面试 分布式 高可用

Android SDK 的 H5 打通方案演进

神策技术社区

大前端 后端 神策数据 shujv

博睿数据斩获“飞腾PCS认证集成商”,推动国产化生态建设再进一步!

博睿数据

云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇

RadonDB

数据库 混沌工程

hadoop 基本原理与应用

神策技术社区

hadoop 程序员 Hadoop全分布式集群

分享 6 个JavaScript学习资源

devpoint

JavaScript GitHub 8月日更

技术白皮书:现代企业架构设计

码语者

企业架构

第一次看房

escray

生活记录 8月日更

ASM 实现 Hook Lambda 和方法引用

神策技术社区

大前端 后端 asm 代码 神策数据

OceanBase 常见参数和变量究竟有什么本质区别?

OceanBase 数据库

数据库 oceanbase OceanBase 开源 OceanBase 社区版

Reality Capture 初探

空城机

3D渲染 3D模型 8月日更 Reality Capture

你真的懂Redis与MySQL双写一致性如何保证吗?

Linux服务器开发

MySQL redis 中间件 架构师 Linux服务器开发

OCR开发者福音:PDF提取Excel文件算法开源啦

百度开发者中心

开源 最佳实践 开发者 方法论 OCR

模块五作业

俊杰

架构实战营

iOS SDK 的 H5 打通方案演进 | 数据采集

神策技术社区

程序员 大前端 后端 数据 方案

金九银十你打算用什么硬核技能噎死面试官呢?附Java面试核心笔记

Java~~~

Java spring 架构 面试 微服务

上游思维:如何定义成功?

石云升

读书笔记 8月日更 上游思维

都2021年了,你还在用Jenkins?赶快看看这些替代方案吧

编程菌

Java 编程 程序员 计算机 技术宅

百度世界大会2021: 与时代共振,AI让生活更好

百度大脑

人工智能

斯图飞腾发布《如何将客户反馈转化为有价值的商业洞察》白皮书

Web JS SDK 架构解析

神策技术社区

技术 源码分析 神策数据

大二上半学期还挂科两门,大三上半学期就找到了外企实习工作,半年时间,我是怎么逆袭的?

编程菌

Java 编程 程序员 面试 计算机

上线直接霸占GitHub榜一!腾讯内部spring全家桶笔记细节拉满!

Java 编程 架构 腾讯 面试

阿里技术3面+HR面,奋战两个月,终斩获offer定级阿里P6+

编程菌

Java 编程 程序员 面试 计算机

ipfs国家认可吗?ipfs挖矿靠谱吗?

IPFS国家认可吗 ipfs挖矿靠谱吗

神策数据微信小程序 SDK 功能介绍

神策技术社区

小程序 微信 代码 神策数据 维护

备战92天终入阿里,这份Java后端开发者面试技能笔记功不可没,共勉

Java~~~

Java spring 架构 面试 微服务

三年开发,跳槽腾讯三面终获Offer,定级T2-1(面试题+经验总结)

编程菌

Java 编程 程序员 面试 计算机

分享我的华为面经,华为OD岗笔试+面试心得,本人已成功入职!

编程菌

Java 华为 程序员 面试 计算机

百度商业大规模微服务分布式监控系统-凤睛

百度开发者中心

产品 最佳实践 方法论 经验分享 监控系统

硬核技术,带你走进3D点云车道线自动识别

澳鹏Appen

自动驾驶 机器学习 训练数据 3D点云 车道线标注

从 Hadoop 到云原生(1):Kylin 在云原生巨浪中的思考_文化 & 方法_apachekylin_InfoQ精选文章