“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

从 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:152843

评论

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

Flink流处理API大合集:掌握所有flink流处理技术,看这一篇就够了

百思不得小赵

大数据 6月月更 flink api

layui-vue简单体验

Python研究所

6月月更

叮!Techo Day 腾讯技术开放日如约而至!

CODING DevOps

CODING DevOps Cloud Studio Techo 腾讯技术开放日

智联招聘基于 Nebula Graph 的推荐实践分享

NebulaGraph

知识图谱 Nebula Graph

一套十万级TPS的IM综合消息系统的架构实践与思考

JackJiang

网络编程 架构设计 即时通讯 im开发

小白创业做电商,选对商城系统很重要!

CRMEB

物联网低代码平台常用《组件介绍》

AIRIOT

低代码 物联网 低代码开发平台 低代码平台 低代码,项目开发

setInterval、setTimeout和requestAnimationFrame

源字节1号

软件开发

易观分析《2022年中国银行业隐私计算平台供应商实力矩阵分析》研究报告正式启动

易观分析

银行技术

如临现场的视觉感染力,NBA决赛直播还能这样看?

阿里云视频云

音视频 直播 音视频直播 直播解决方案

等保备案主体是谁?在当地网安进行备案是吗?

行云管家

等保 等级保护 等保备案

大神详解开源 BUFF 增益攻略丨直播讲座

Apache IoTDB

开源 面试 求职 秋招 线上讲座

2022中国信通院首届业务与应用安全发展论坛成功召开!

中国IDC圈

Java培训 动态代理的底层原理

@零度

JAVA开发 动态代理

《运营之光3.0》全新上市——跨越时代,自我颠覆的诚意之作!

博文视点Broadview

通过大数据培训学习后到35岁后为什么会失业

@零度

《数字经济全景白皮书》消费金融数字化篇 重磅发布

易观分析

消费金融

中国内地仅四家突围 联想智慧颐和园荣获 “2022年IDC亚太区智慧城市大奖”

科技大数据

VPS是干嘛用的?有哪些知名牌子?与云服务器有什么区别?

行云管家

运维 等保备案 VPS

直播带货平台包含了直播和娱乐模块,你知道是什么吗?

开源直播系统源码

软件开发 直播带货系统

行业分析| 快对讲,楼宇对讲

anyRTC开发者

音视频 快对讲 语音对讲 视频对讲 楼宇对讲

人人都可以参与开源!龙蜥社区最不容错过的开发者活动来了

OpenAnolis小助手

开源 龙蜥社区 礼品 开发者激励 贡献

LSF 集群全面监控!浅析 HPC 基于龙蜥操作系统的迁移替代解决方案

OpenAnolis小助手

开源 解决方案 龙蜥操作系统 常青藤开源科技 HPCinsights

2022 开源软件安全状况报告:超41%的企业对开源安全没有足够的信心

SEAL安全

DevSecOps 开源安全 软件供应链 安全左移

百问百答第44期:应用性能探针监测原理-Python探针

博睿数据

APM AIOPS 智能运维 博睿数据 性能监测

TiDB v6.0.0 (DMR) :缓存表初试丨TiDB Book Rush

PingCAP

TiDB

百度APP 基于Pipeline as Code的持续集成实践

百度Geek说

Java’

太阳能无线LED显示屏的特点

Dylan

LED LED显示屏

当量子计算遇上人工智能

启科量子开发者官方号

人工智能 算力 量子计算

使用 ABAP 操作 Excel 的几种方法

Jerry Wang

microsoft Excel Office SAP 6月月更

web前端培训Node.js 如何连接到 PostgreSQL 数据库

@零度

node.js 前端开发

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