乐趣区

关于数据库:基于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,当然也有下面提到的机器设备产生的流式数据。

对于半结构化数据,当初基本上数据库都有很好的反对,这是不反复阐明了。重点在于非结构化数据,数据库其实能够以二进制形式存储图片等,但应用起来比拟麻烦,这不是一个好的解决办法。对于非结构化分析,目前咱们给出的解决方案是分两局部:原始文件存储在对象存储中。解析进去的结构化数据存储于数据库中,便于检索比对。

上面以高速公路的卡口数据分析案例进一步阐明。摄像头抓拍车牌信息后,将原始照片存储到对象存储,以做原始证据。解析进去的车牌号、色彩、工夫寄存到 HashData 数据库,以反对流量统计监测、逃费稽核等利用。

对于机器学习,HashData 反对 SQL 形式调用函数在库内进行机器学习,当初新增反对更凋谢的 Python 的原生反对。

综上,HashData 湖仓一体解决方案是一个以服务、计算、存储三者拆散的技术架构为基石,面向多种场景,包含数据仓库、数据湖,也包含数据因素市场等场景的解决方案。四、湖仓交融的思考与瞻望

湖仓交融后的会造成一个对立存储 + 多计算引擎的格局。

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

退出移动版