赞
踩
Data Lakehouse(湖仓一体)是新出现的一种数据架构,它同时吸收了数据仓库和数据湖的优势,数据分析师和数据科学家可以在同一个数据存储中对数据进行操作,同时它也能为公司进行数据治理带来更多的便利性。
一直以来,我们都在使用两种数据存储方式来架构数据:
现在许多的公司往往同时会搭建数仓、数据湖这两种存储架构,一个大的数仓和多个小的数据湖。这样,数据在这两种存储中就会有一定的冗余。
Data Lakehouse的出现试图去融合数仓和数据湖这两者之间的差异,通过将数仓构建在数据湖上,使得存储变得更为廉价和弹性,同时lakehouse能够有效地提升数据质量,减小数据冗余。在lakehouse的构建中,ETL起了非常重要的作用,它能够将未经规整的数据湖层数据转换成数仓层结构化的数据。
Data Lakehouse概念是由Databricks中提出的,在提出概念的同时,也列出了如下一些特性:
Lakehouse的概念最早是由Databricks所提出的,而其他的类似的产品有Azure Synapse Analytics。Lakehouse技术仍然在发展中,因此上面所述的这些特性也会被不断的修订和改进。
那说完了Data Lakehouse的特性,它到底解决了什么问题呢?
这些年来,在许多的公司里,数仓和数据湖一直并存且各自发展着,也没有遇到过太过严重的问题。但是仍有一些领域有值得进步的空间,比如:
现有的Lakehouse架构仍存在着一些问题,其中最为显著的是:
下图是阿里云湖仓一体的架构:
阿里云这套架构是把两个产品:数据仓库MaxCompute和数据湖EMR给打通了。
这个打通应该不是简单的把两个网段互通,而是要考虑数据快速访问,安全等原因,底层的网络拓扑可能都需要重新设计。
之后再在上面加一层统一的元数据管理,这样整个湖仓一体就完成了。
阿里云做湖仓一体的初衷来自于新浪微博的业务场景:
微博有大量的文本、图片,后台需要对这些数据做反垃圾、反作弊,经过大量的训练提取特征、训练模型,想用SQL对结果做分析,需要有大量的数据同步,如果将两套系统打通,就不会有这些问题了。
下图是华为云的湖仓一体解决方案:
看起来比华为云的方案更好,统一SQL入口、基于对象存储的存算分离、支持跨数据源查询、多租户隔离、并支持云原生。
除了国内厂商,国外如亚马逊的Redshift,谷歌的BigQuery都是类似的解决方案。
阿里云、华为云提出的湖仓一体方案,可能是因为他们的用户场景复杂多样导致的。
从上图中可以看到华为云的用户都是各种不同行业的,而不同行业对数据访问的需求也是不同的:
电商行业可能存在多种数据源,那么做数据分析时就需要做跨源查询
金融行业的风控系统对实时性要求很高,那么对流处理会有更多需求
大型企业,部门众多,对租户隔离会有更多要求
政府部分,内部技术人员一般熟悉SQL,对SQL的易用性有要求
不同的行业催生了不同的需求,经过整合、迭代,最后各大企业都纷纷提出 湖仓一体解决方案,相信也是有实际需求,并不是空穴来风。
A:现在大多数企业都已经有了自己的一套大数据架构,他们如何基于已有的架构落地湖仓一体?有哪些可行的落地路径?成本可能主要会来自哪里?
Q:现在有一部分企业已经有了自己的大数据架构,这些企业相对来说可能诞生的比较早,大多数都是选的 Hadoop 体系,或是自建的 Hadoop 体系,或是使用云上托管的 Hadoop 体系。这些企业可以有很多选择,他可以选择像 Databricks 那样的方案,也可以选择像 MaxCompute 这样的方案。
这两条路径都相对可行,那怎么选?这通常要看企业是不是希望在大数据技术栈上做更多投入。如果企业觉得没必要在基础设施上投很多资源,而是要把更多资源放在业务上,那选一个更偏全托管版的湖仓一体解决方案更有价值。反之,如果企业技术人员很多,希望底层基础设施足够灵活并且是自己可控的,就可以选择在湖上建仓的模式。
还有一些比较新的企业,比如过去三年内成立的,它们有很多都处于高速增长阶段。这些企业其实天生就长在云上,甚至一开始选的大数据架构就已经是云数仓的架构,这类企业基于现有的架构向前演进相对比较简单。只要尽量使用云基础设施,开通几个云服务就能形成一套湖仓一体架构了,这是一个简单直接且相对单一化的路径。
那成本主要来自哪里?如果企业选择全托管的湖仓一体解决方案,则成本主要来自于对当前数据,比如数仓迁移、数据整理等一次性开支,一旦这部分工作做完,后续在数据治理上形成正循环,整体成本不会太高。如果企业选择自己维护一套湖仓一体架构,则成本主要来自持续维护和调优整套基础设施的人力成本和硬件成本。
A:根据您的了解,当前企业尝试落地湖仓一体的时候遇到的问题和挑战主要有哪些?现在是采用湖仓一体的好时机吗?
Q:现在大多数企业都还没有用到湖仓一体的新架构,他们要么选择了数据湖方案,要么选择了数仓方案。湖仓一体作为一个新兴架构,很多企业目前还在早期探索阶段。有些企业在把数据放到数据湖上之后,发现在数据湖上做好数据治理或者数据管理相对比较困难,这个时候再去采用湖仓一体模式,在现有相对更灵活但不够管理化的数据上,再抽象一层数仓层和治理层,对数据做更好的管理和治理。对于数仓的用户,如果采用的数仓系统支持湖仓一体架构,直接挂载数据湖就好了。
企业尝试落地湖仓一体时会遇到的问题和挑战主要有几点。首先,如果团队没有足够好的数据治理或数据管理经验,挑战会比较大。这也是为什么我们推出的方案几乎都在向全托管或全服务的 SaaS 模式走,就是希望能够降低门槛。
其次,对于自建湖仓一体的企业,他们会遇到的挑战主要是湖仓一体的高复杂度,特别是湖仓之间如何协同的问题,这里面涉及到两套系统存储打通的问题、元数据一致性问题、湖和仓上不同引擎之间数据交叉引用的问题,以及带宽问题、安全问题,等等。另外,由于湖仓一体架构底层是一个二元体系,那向上面向用户的时候,用户是不是能看到两个体系?如果用户能够看到两个体系的话,如何区分和引导?如果用户看不到的话,那底下开发需要做什么样的封装?这些都是自建湖仓体系会遇到的问题。
总之,如果企业并不是一定要大力投入做基础设施的话,直接采用全托管版本的湖仓一体的架构会简单很多。
参考资料:
1.微信公众号(数据湖技术)-《Data Lakehouse (湖仓一体) 到底是什么》
2.微信公众号(大话算法)-《什么是湖仓一体》
3.微信公众号(数据学堂)-《7000字,详解仓湖一体架构!》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。