0
点赞
收藏
分享

微信扫一扫

数据湖与数据治理--白话数据架构

对大数据提供服务的数据方案有两种:

  1. 数仓+数集
  2. 数据湖+数据治理(以华为为代表的数据湖解决方案)


  1. 手撕数据湖
维基百科上定义,数据湖(Data Lake)是一个以原始格式存储数据的存储库或系
统。它按原样存储数据,而无需事先对数据进行结构化处理。一个数据湖可以存储
结构化数据(如关系型数据库中的表),半结构化数据(如CSV、日志、XML、JSON
),非结构化数据(如电子邮件、文档、PDF)和二进制数据(如图形、音频、视
频)

       这个概念出来,第一时间跳脚的就是搞大数据的这批人,这不就是HDFS或者数仓的ODS层吗?!

图1: 数据湖与数据治理

数据湖与数据治理--白话数据架构_数据湖


按照这个架构的理解,数据湖就是个旧酒新瓶.  我们再看一个图

图2: 数据湖-逻辑概念

数据湖与数据治理--白话数据架构_数据湖_02

      到这里依然会有人骂,这跟用HDFS作为数据湖没有什么本质区别啊,五十步笑百步。第二点,HDFS的作用在哪里? 早期看到包括微软等诸多公司对维基的数据湖概念并没有直接采纳,因为落地性不强,而直接采用上图的逻辑层数据湖,必须充分借助数据治理的来讲故事。 

     再看第三个图:

图3  数据湖

数据湖与数据治理--白话数据架构_湖仓一体_03

      这个图既满足了维基的数据湖定义,又为数据湖引擎埋下了打下了基础。

      以上的各种解释,我们都很难得到一个满意的答案。 实际上,是我们进入了一个误区,我们一定要拿数据湖和已经存在且被广泛接受的数仓架构对比,且单独对一个数据湖概念进行抨击,而数据湖本身是为了一套解决方案而生,这套方案能够弥补数仓ETL提供数据服务的不足


  1. 数据治理与数据仓库都尝试建立数据标准

      数据治理的数据质量和数仓的逻辑建模都是在尝试 建立数据标准。 早期数据治理和数据湖双生的时候,多数人对数据治理的理解是基于HDFS,所以理解数据治理是基于大数据平台的数据治理; 而如果按照我们图2,图3的理解,数据治理是对整个业务体系的治理。

      数据治理也明显补充了数据仓库的不足,如数据血缘,数据共享等,且把大数据平台的监控,ETL调度集到一个共同的  平台。

      数据治理的概念随着各大厂商共同探索,也逐渐发现数据治理与数仓变得不可分割,且是一个公司级别的战略问题,参考《华为数据之道》

      数据治理平台​​kylo​​​(现在自己定位为数据湖管理平台),在数据治理方面表达的非常清晰。


  1. 数据湖引擎

    数据湖的解决方案是如何对外提供服务的?华为有过自己的探索,然而有另一种完全不用的思路-数据湖引擎逐渐进入人们的视野,典型代表是dremio,且数据湖引擎逐渐被接受。 我司(方正证券)进行了充分调研,做了大量POC之后,国内首家投入使用,并给dremio企业提供了大量的改进意见。 我个人也认同该思路,因为对于 业务人员使用数据是一个相对数仓更快速的通道。

      共同看下数据湖引擎的思路:

图4 : dremio的数据服务架构

数据湖与数据治理--白话数据架构_数据湖_04


  1. ETL到 ELT

      传统ETL的思路是数据经过清洗转换到数据仓库,然后根据主题分为不同的数据集市提供服务。 就目前而言,在大数据处理方面依然是最具影响力,且认可度最高的一种方案,但依然不能满足实际生产中的一些业务场景,比如数据分析人员无法清晰的描述数据模型,而数据开发人员对业务的理解不够透彻,如图5

图5:建立数据集市需要面对的问题

数据湖与数据治理--白话数据架构_数据湖_05   

图5这种场景在多数情况下还是能被接受,有一些探索性,科研性的场景,快速,临时,以分析为主,甚至在探索初期都无法确定一定要什么数据。我们为这种场景建立ETL简直是灾难性的。

       数据湖引擎的解决方案在探索性场景就非常适配,我们能直接访问源数据,在基于SQL的反复探索性查询后,建立一个主题,包含多个VDS,然后沉淀为一个数据集市。  这样的数据集市更贴近业务,更精准匹配需求。

       ELT在这里是怎么表现的呢,如图6:

图6:ELT

数据湖与数据治理--白话数据架构_数据湖_06

      ELT 在先探查所需要业务数据,然后把数据加载到PDS(物理数据集)的存储系统(这个存储系统可以是hdfs,可以是云),进一步建立面向业务的表结构,我们把这种表结构叫做VDS(虚拟数据集)。


  1. 总结《云原生数据中台》中对数据湖与数据仓库的理解更直接

    数据湖与数据治理--白话数据架构_数据湖_07

6.1  数据湖是什么

数据湖目前市场最主流的两种声音:

  1. 与数仓的ODS在一个位置,基于云或者分布式存储,包含了从源数据库采集而来的数据
  2. 数据湖是一个逻辑概念,包含了多类数据库,并且数据可以被数据湖解决方案使用

第一种解释更具有生命力,在dremio等多个数据湖解决方案中被使用。

6.2 理解数据湖解决方案

  1. 数据湖+数据湖引擎(或者数据治理+大数据组件) 是一种数据服务解决方案
  2. 数据数仓+数据集市 是一种数据解决方案

我们也看到,两种解决方案各有优劣,那有没有可能探索出一种取得双方优势的方案, 有! 湖仓一体

最后提一嘴,国内有一家对基于dremio优化的版本,叫beelink,修复了dremio糟糕的执行计划, 性价比更高

举报

相关推荐

0 条评论