写点什么

基于 HashData 湖仓一体解决方案的探索与实践

作者:HashData
  • 2023-04-11
    北京
  • 本文字数:2331 字

    阅读完需:约 8 分钟

基于HashData湖仓一体解决方案的探索与实践

2023 年 4 月 7 日,由中国 DBA 联盟(ACDU)和墨天轮社区联合主办的第十二届『数据技术嘉年华』(DTC 2023) 在北京新云南皇冠假日酒店盛大开启。HashData 资深解决方案架构师李俊在 4 月 8 号专题会场 6-“融合应用:湖仓技术创新”上发表了《基于 HashData 的湖仓一体解决方案的探索与实践》的专题演讲。


本文根据演讲实录整理而成,演讲正文如下(全文阅读需要 20 分钟以上):


一、湖仓一体的演进

数据仓库的概念是比尔·恩门(Bill Inmon)在 1991 年出版的《Building the Data Warehouse》一书正式提出后被广泛接受。经过 30 年发展,在金融、通信、航空等各行各业都是有广泛应用。

数据仓库具有便于 BI 和报表系统接入,数据管控能力强的优势,但是随着大数据的兴起,表现出不支持非结构化数据、专有系统成本高,专有数据格式、灵活度低的劣势。


数据湖的概念兴起于大数据的出现,是在 2010 年左右,它具备存储成本较低、支持非结构化数据。数据湖一度被认为会取代数据仓库,但是随着数据湖投入实际应用中,人们逐步发现到它的一些劣势:对 BI 系统的支持不足、查询性能低、数据交互不实时、可靠性差等问题。


在数据湖与数据仓库之间学术界、工业界发生过激烈的争辩,最后基本达成共识:数据仓库与数据湖就像苹果与橙子,它们是完全不同的东西,不会相互取代。


数据仓库和数据湖不会相互取代,它们会共存,共同组成企业的数据平台。Gartner 提出的逻辑数据仓库概念就包括了数据仓库和数据湖两个部分,这也是目前大多数企业的一个现状。

但是创新者并不满足于现状,在 2020 年左右由 Databrick 公司率先提出了 Lakehouse 的概念,在国内翻译成湖仓一体或者湖仓。


不难看出 Lakehouse 是前一半来源 Data Lake,后一半是来源 Data Warehouse。它的寓意是 Lakehouse 吸收数据湖和数据仓库的优势,创建一个新的平台。

湖仓一体(Lakehouse)分别在数据格式、数据类型、数据访问、可靠性、治理与安全、性能、扩展性、用户场景支持提出新要求。

为了满足上述的新要求,湖仓一体(Lakehouse)必须具备如下的关键能力。

  • 存算分离

数据湖需要提升的关键能力:

  • 事务

  • BI 支持

  • 性能

  • 数据治理与安全

数据仓库需要提升的关键能力:

  • 多数据类型

  • 机器学习

  • 成本

二、国外湖仓技术发展简介


提到国外的湖仓技术,人们讨论最多的 Databrick、Hudi、Iceberg 这三家开源解决方案。Databrick 家解决方案是 DeltaLake,我有幸参加过 DeltaLake 的产品培训和试用,确实具备了事务、BI 支持、性能等方面的关键能力,体验很好。

Apache Hudi 是 DeltaLake 的竞争对手。

Apache Iceberg 是 DeltaLake 的另一个竞争对手。正是由于开源 Hudi、Iceberg 快速的发展,逼迫 DeltaLake 由商用改为开源。谈到 Iceberg,我们需要重点介绍一个概念:Table Format(数据表格格式),Table Format 是抽象层,帮助计算引擎处理底层的存储格式(ORC、Parquet 等),而不是像以前那样需要直接操作底层存储。这个概念很重要,在后面的技术分享会用到。

上面提到 Apahce DeltaLake/Apache Hudi/Apache Icerberg 三种开源解决方案都是数据湖向数据仓库融合的技术路线,HashData 作为一个数据仓库解决方案将向大家展开一个数据仓库向数据湖融合的新视角。

三、HashData 创新与探索实践


HashData 最初的产品原型是基于 Greenplum,它是一个典型的 MPP 架构,但是它是存算耦合的,即数据存储、数据计算都在一个数据节点。

经过面向云原生的反复迭代设计后,HashData v3 的架构是这样的。它是一个服务、计算、存储三者分离的架构,有效解决了传统 MPP 的木桶效应问题,使得 HashData 数据仓库具备支持超大规模的集群能力。

HashData 目前已经成功应用于 C 行的超大规模数据仓库服务,截止 2022 年底,目前在生产中已经有 2 万多个数据节点 在运行,数据存储约 13PB 左右。

数据仓库向数据湖融合另一挑战是如何提供低成本解决方案?来自华为云官网的数据显示,对象存储的成本仅仅只有磁盘、SSD 的价格的几十分之一。如果把所有的数据全部存储在对象存储中,整体解决方案将大幅降低。不幸的是对象存储的 IO 不太好,这样会牺牲性能。在价格和性能中间,我们采用多级存储技术:持久化数据存储在对象存储中,在计算层增加热点缓存技术,很好的解决了这个问题。

采用了对象存储的 HashData 数据湖解决方案整体成本可以降低到原来的 1/10,但通过热点缓存技术保证了性能。相关 Benchmark 数据报告表明,性能非常接近原来的水平。

对于机器产生的数据比如 IoT 数据,HashData 支持流式计算引擎准实时写入,从而提高数据分析的实效性。

在 A 能源集团案例中,统一数据湖已经存储油藏、地质、勘探、生产等数据 1.7PB,当然也有上面提到的机器设备产生的流式数据。

对于半结构化数据,现在基本上数据库都有很好的支持,这是不重复说明了。重点在于非结构化数据,数据库其实可以以二进制方式存储图片等,但使用起来比较麻烦,这不是一个好的解决方法。

对于非结构化分析,目前我们给出的解决方案是分两部分:

  1. 原始文件存储在对象存储中。

  2. 解析出来的结构化数据存储于数据库中,便于检索比对。

  1. 下面以高速公路的卡口数据分析案例进一步说明。摄像头抓拍车牌信息后,将原始照片存储到对象存储,以做原始证据。解析出来的车牌号、颜色、时间存放到 HashData 数据库,以支持流量统计监测、逃费稽核等应用。

  1. 对于机器学习,HashData 支持 SQL 方式调用函数在库内进行机器学习,现在新增支持更开放的 Python 的原生支持。

  1. 综上,HashData 湖仓一体解决方案是一个以服务、计算、存储三者分离的技术架构为基石,面向多种场景,包括数据仓库、数据湖,也包括数据要素市场等场景的解决方案。

四、湖仓融合的思考与展望


湖仓融合后的会形成一个统一存储+多计算引擎的格局。

对于数据格式的融合,HashData 后续会引入 Iceberg 作为 TableFormat。


今天分享的更多的技术平台融合,更多模型、数据治理、数据资产管理方面的湖仓一体专题请参考以上两本杂志。

用户头像

HashData

关注

还未添加个人签名 2021-03-10 加入

云原生企业级数据仓库

评论

发布
暂无评论
基于HashData湖仓一体解决方案的探索与实践_HashData_InfoQ写作社区