数据湖 VS 数据仓库

随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数据仓库产品也增加了和数据湖联动的特性。但是数据仓库和数据湖的区别到底是什么?

上篇文章我们介绍了什么是数据湖、数据湖的基本架构,以及基于云的数据湖框架,本文将对数据湖和数据仓库的区别进行剖析,并介绍两者融合演进的新方向——湖仓一体。

1. 什么是数据仓库

数据仓库的概念最早来源于数据库领域,主要处理面向数据的复杂查询和分析场景。随大数据技术发展,大量借鉴数据库的技术,例如SQL语言、查询优化器等,形成了大数据的数据仓库,因其强大的分析能力,成为主流。近几年,数据仓库和云原生技术相结合,又演生出了云数据仓库,解决了企业部署数据仓库的资源供给问题。云数据仓库作为大数据的高阶(企业级)平台能力,因其开箱即用、无限扩展、简易运维等能力,越来越受到人们的瞩目。

数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

数据仓库的本质包含如下三部分:
(1)内置的存储系统,数据通过抽象的方式提供(例如采用Table或者View),不暴露文件系统。
(2)数据需要清洗和转化,通常采用ETL/ELT方式
(3)强调建模和数据管理,供商业智能决策

从上述的标准判断,无论传统数据仓库(如Teradata)还是新兴的云数据仓库系统(AWS Redshift、Google BigQuery、阿里云MaxCompute)均体现了数仓的设计本质,它们均没有对外暴露文件系统,而是提供了数据进出的服务接口。这个设计可以带来多个优势:

(1)引擎深度理解数据,存储和计算可做深度优化
(2)数据全生命周期管理,完善的血缘体系
(3)细粒度的数据管理和治理
(4)完善的元数据管理能力,易于构建企业级数据中台

正因为如此,阿里巴巴飞天大数据平台建设之初,在选型的时候就采用了数据仓库的架构,即MaxCompute大数据平台。MaxCompute(原ODPS),既是阿里巴巴经济体的大数据平台,又是阿里云上的一种安全可靠、高效能、低成本、从GB到EB级别按需弹性伸缩的在线大数据计算服务(图6.是MaxCompute产品架构,具体详情请点击阿里云MaxCompute官网地址)。作为SaaS模式的企业级云数仓,MaxCompute广泛应用在阿里巴巴经济体、以及阿里云上互联网、新金融、新零售、数字政府等数千家客户。

得益于MaxCompute数据仓库的架构,阿里巴巴上层逐步构建了“数据安全体系”、“数据质量”、“数据治理”、“数据标签”等管理能力,并最终形成了阿里巴巴的大数据中台。可以说,作为最早数据中台概念的提出者,阿里巴巴的数据中台得益于数据仓库的架构。

2. 从数据库、数据仓库到数据湖演变趋势

数据库的数据有对齐的要求,数据库是面向应用的,每个应用可能需要一个数据库。如果一个公司有几十个应用,就会有几十个数据库。几十个数据库之间怎么去连接分析、统一分析?是没有办法的。

随后就由数据库发展成了一个数据仓库,数据仓库不面向任何应用。但是,它对接到数据库,如果需要每天定时有些 ETL 的批处理的任务,将不同应用和数据汇总起来,按照一些范式模型去做连接分析,得到一定时间段的总体数据视图。这个前提是很多数据库要给数仓供应数据。

而随着数据量的增加及数据类型的变化,很多非结构化的数据,比如视频、音频及文档等占据数据总量的比例越来越多。原来的数据仓库已经很难继续支撑,因此越来越多的企业希望把原始数据以真实的初始状态保留下来。在这种需求的推动下,数据湖的理念便开始成形,其可以把数据保存在原始状态,以便于企业从多个维度进行更多分析。数据可以很轻松进入数据湖,用户也可以延迟数据的采集、数据清洗、规范化的处理,可以把这些延迟到业务需求来了之后再进行处理。传统的数仓,因为模型范式的要求,业务不能随便的变迁,变迁涉及到底层数据的各种变化。相对来说,数据湖就更加的灵活,能更快速的适应上层数据应用的变化。

3. 数据湖 VS 数据仓库

数据湖是按原始数据格式存储,旨在任何数据可以以最原始的形态储存,可以是结构化或者非结构化数据,以确保数据在使用时可以不丢失任何细节,所有的实时数据和批量数据,都汇总到数据湖当中,然后从湖中取相关数据用于机器学习或者数据分析。

数据湖优先的设计,通过开放底层文件存储,给数据入湖带来了最大的灵活性。进入数据湖的数据可以是结构化的,也可以是半结构化的,甚至可以是完全非结构化的原始日志。另外,开放存储给上层的引擎也带来了更多的灵活度,各种引擎可以根据自己针对的场景随意读写数据湖中存储的数据,而只需要遵循相当宽松的兼容性约定。但同时,文件系统直接访问使得很多更高阶的功能很难实现,例如,细粒度(小于文件粒度)的权限管理、统一化的文件管理和读写接口升级也十分困难(需要完成每一个访问文件的引擎升级,才算升级完毕)。

而数据仓库优先的设计,更加关注的是数据使用效率、大规模下的数据管理、安全/合规这样的企业级成长性需求。数据经过统一但开放的服务接口进入数据仓库,数据通常预先定义 schema,用户通过数据服务接口或者计算引擎访问分布式存储系统中的文件。数据仓库优先的设计通过抽象数据访问接口/权限管理/数据本身,来换取更高的性能(无论是存储还是计算)、闭环的安全体系、数据治理的能力等,这些能力对于企业长远的大数据使用都至关重要,我们称之为成长性。

4. 湖仓一体

湖仓一体,即打通数据仓库和数据湖两套体系,让数据和计算在湖和仓之间自由流动,从而构建一个完整的有机的大数据技术生态体系。

阿里云湖仓一体方案:

阿里云MaxCompute在原有的数据仓库架构上,融合了开源数据湖和云上数据湖,最终实现了湖仓一体化的整体架构。在该架构中,尽管底层多套存储系统并存,但通过统一的存储访问层和统一的元数据管理,向上层引擎提供一体的封装接口,用户可以联合查询数据仓库和数据湖中的表。整体架构还具备统一的数据安全、管理和治理等中台能力。

基于MaxCompute湖仓一体技术,DataWorks可以进一步对湖仓两套系统进行封装,屏蔽湖和仓异构集群信息,构建一体化的大数据中台,实现一套数据、一套任务在湖和仓之上无缝调度和管理。企业可以使用湖仓一体化的数据中台能力,优化数据管理架构,充分融合数据湖和数据仓库各自优势。使用数据湖做集中式的原始数据存储,发挥数据湖的灵活和开放优势。又通过湖仓一体技术将面向生产的高频数据和任务,无缝调度到数据仓库中,以得到更好的性能和成本,以及后续一系列面向生产的数据治理和优化,最终让企业在成本和效率之间找到最佳平衡。

总体来说,MaxCompute湖仓一体为企业提供了一种更灵活更高效更经济的数据平台解决方案,既适用于全新构建大数据平台的企业,也适合已有大数据平台的企业进行架构升级,可以保护现有投资和实现资产利旧。

相关文章

探索更多特别优惠

  1. 阿里云短信服务&邮箱服务

    万封邮件仅需1.99美元起,120条短信1美元

phone 联系我们