数据仓库、数据湖、湖仓一体,究竟有什么区别?
来 源:知乎/作 者:十叶心
—全文共14108个字,建议阅读20分钟—
基本概念
1、数仓发展历史
数据湖是以集中方式存储各种类型数据,提供弹性的 容量和吞吐能力,能够覆盖广泛的数据源,支持多种计算与处理分析引擎直接对数据进行访问的统一存储平台。它 能够实现数据分析、机器学习,数据访问和管理等细粒度的授权、审计等功能。
数据湖对存取的数据没有格式类型的限制,数据产生后,可以按照数据的原始内容和属性,直接存储到数据湖, 无需在数据上传之前对数据进行任何的结构化处理。数据湖可以存储结构化数据(如关系型数据库中的表),半结 构化数据(如 CSV、JSON 、XML、日志等),非结构化数据(如电子邮件、文档、PDF 等)以及二进制数据 (如图形、音频、视频等)。
2、数据湖、数据仓、湖仓一体发展历程
(1)数据仓库,适合结构化数据,但不适合非结构化数据。
(2)数据湖:支持多种格式存储数据库。但不支持事务处理、不保证数据质量in过去缺乏一致性/隔离性,无法实现混合追加和读取数据,以及完成批处理和流式作业。
(3):直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。
3、数据湖
数据湖特征:
数据湖架构:
通用数据湖架构:
云原生数据湖的特征:
4、数据湖与数据仓库对比
首先,数据捕获时未定义架构。数据湖在功能上可以实现各种类型数据的存储,数据湖中的数据可以是非结构 化的、未处理的形态,数据可以在确定需要使用时才会对数据进行对应处理与转换;而数据仓库则通常存放的是经 过处理的、结构化的数据,数据存储的 在数据存储之前就需要被定义好。
其次,存储到数据湖中的数据通常会按照原始形态直接存储,随着业务和使用场景的发展,会使用不同的计算 存储的数据进行分析与处理,数据湖中的数据在一个企业组织中通常会被多个不同应用、系统和部门使覆盖的场景广泛并且范围也会动态延展,因此需要提供更多的灵活性以适应快速变化的应用场景;数据通常使用场景是在数据收集期间就已经明确,数据仓库通常集中在 BI、业务、运营等商业决策相关场 仓库也可以把已经存在的数据转换到新场景,但在灵活性方面不如数据湖,需要有更多的数据转换时间 投入。
5、批处理和流式处理区别
阿里大数据治理平台
1、产品架构
(大数据开发治理平台)是阿里云重要的PaaS(-as-a-)平台产品,为您提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。
支持多种计算和存储引擎服务,包括离线计算、开源大数据引擎E-、实时计算(基于Flink)、机器学习PAI、云原生数据仓库 for ,云原生数据仓库 for MySQL,并且支持用户自定义接入计算和存储服务。为您提供全链路智能大数据及AI开发和治理服务。
全面托管的调度:
数据集成:
数据转化:
2、功能介绍
(1)数据集成
数据集成有两个定位,第一是数据中台对接外界核心枢纽,即对接云上系统之间数据流转的打通;第二是跨云跨网一站式数据传输,即在数据集成中,所有数据的进出都可以提供一站式的解决方案。
批量配置数据源和批量配置同步任务。
向导模式和脚本模式,向导模式配置数据源后,参数自动生成。
过程:选择数据源-添加同步任务。
规则类型,8种,例如,目标表前缀;新增字段、字段赋值;目标表子端替换;
同步任务运行方式:测试运行、补数据运行和周期运行。
同步速度调优:任务切分(切分键、作业并发数)、资源占用;
切分键,切分源端数据;并发数小于DMU两倍:
自定义资源组,独占资源,利用专线+独占资源=提高速度
(2)数据建模
数据建模同时支持关系(ER、3NF)建模和维度建模(星型,雪花)。不同类型的模型没有最好,只有更适合。用户应该从企业的实际场景出发选择建模方式。根据经验总结,大多数企业都会同时存在以上两种建模方式,底层模型用关系建模,力求做到数据精简,往上维度建模就更适合,靠数据冗余带来可用性、分析性和可操作性。
(3)数据开发-降本增效利器
数据开发(、、)面向各引擎提供可视化开发的主界面,赋予用户智能代码开发、多引擎混编工作流、规范化任务发布的强大能力,让用户轻松构建离线数仓、实时数仓与即席分析系统。支持引擎:、E-、Flink、、 for ,满足用户不同的企业级业务场景。
大幅提升工作效率:
从容面对复杂场景:
提供更规范、科学的开发模式:
(4)数据治理
(5)数据服务
3、应用场景
华为数据湖治理中心- DGC
1、产品架构
华为云整个的数据湖解决方案,完整覆盖了数据处理的生命周期,并且明确支持了数据治理,并提供了基于模型和指标的数据治理流程工具,在华为云的数据湖解决方案中逐渐开始往“湖仓一体化”方向演进。
DGC基于数据湖底座,提供数据集成、开发、治理、开放等能力。DGC支持对接所有华为云的数据湖与数据库云服务作为数据湖底座,例如数据湖探索(Data Lake ,简称DLI)、MRS Hive、数据仓库服务DWS等,也支持对接企业传统数据仓库,例如、等。DGC包含如下功能组件:
2、数据集成(批量数据迁移)
批量数据迁移基于分布式计算框架,利用并行化处理技术,支持用户稳定高效地对海量数据进行移动,实现不停服数据迁移,快速构建所需的数据架构。
3、数据开发
使用数据开发模块,用户可进行数据管理、脚本开发、作业开发、作业调度、运维监控等操作,轻松完成整个数据的处理分析流程。
支持的功能
说明
数据管理
支持管理DWS、DLI、MRS Hive等多种数据仓库。支持可视化和DDL方式管理数据库表。
脚本开发
提供在线脚本编辑器,支持多人协作进行SQL、Shell、脚本在线代码开发和调测。支持使用变量和函数。
作业开发
提供图形化设计器,支持拖拉拽方式快速构建数据处理工作流。预设数据集成、SQL、Shell等多种任务类型,通过任务间依赖完成复杂数据分析处理。支持导入和导出作业。
资源管理
支持统一管理在脚本开发和作业开发使用到的file、jar、类型的资源。
作业调度
支持单次调度、周期调度和事件驱动调度,周期调度支持分钟、小时、天、周、月多种调度周期。
运维监控
支持对作业进行运行、暂停、恢复、终止等多种操作。支持查看作业和其内各任务节点的运行详情。支持配置多种方式报警,作业和任务发生错误时可及时通知相关人,保证业务正常运行。
4、总结
华为的数据湖解决方案比较完整,DLI承担了所有的数据湖构建、数据处理、数据管理、数据应用的核心功能。DLI最大的特色是在于分析引擎的完备性,包括基于SQL的交互式分析以及基于Spark+Flink的流批一体处理引擎。在核心存储引擎上,DLI依然通过内置的OBS来提供,和AWS S3的能力基本对标。华为数据湖解决方案在上下游生态上做的比AWS相对完善,对于外部数据源,几乎支持所有目前华为云上提供的数据源服务。
DLI可以与华为的CDM(云数据迁移服务)和DIS(数据接入服务)对接:1)借助DIS,DLI可以定义各类数据点,这些点可以在Flink作业中被使用,做为或者sink;2)借助CDM,DLI甚至能接入IDC、第三方云服务的数据。
为了更好的支持数据集成、数据开发、数据治理、质量管理等数据湖高级功能,华为云提供了DAYU平台。DAYU平台是华为数据湖治理运营方法论的落地实现。DAYU涵盖了整个数据湖治理的核心流程,并对其提供了相应的工具支持;甚至在华为的官方文档中,给出了数据治理组织的构建建议。DAYU的数据治理方法论的落地实现如图11所示(来自华为云官网)。
阿里云数据湖方案
对象存储 OSS 是基于阿里云自研的分布式存储引擎——盘古搭建,提供体系化的数据采 力,支持结构化/半结构化/非结构化数据源。体系由数据湖对象存储 OSS、云原生数据湖分析 DLA、数据湖构建 DLF、E-、 Works 等产品强强组合,在存储与计算分离架构下,提供“湖存储”、“湖加速”、“湖计算”的企业级数据湖解决方案。
数据存储:OSS
数据加工:数据湖构建+E-
数据分析与治理,对企业数据的可用性、完整性和安全性全面管理。数据湖采用API接口让数据湖实现多引擎的统一元数据管理和权限管理。
1、数据湖架构
2、数据湖构建(Data Lake ,简称 DLF)
(1)产品架构
阿里云数据湖构建(Data Lake ,简称 DLF)是一款全托管的快速帮助用户构建云上数据湖及的服务,为客户提供了统一的元数据管理、统一的权限与安全管理、便捷的数据入湖能力以及一键式数据探索能力。DLF可以帮助用户快速完成云原生数据湖及方案的构建与管理,并可无缝对接多种计算引擎,打破数据孤岛,洞察业务价值。
(2)应用场景
(3)阿里DDI( 数据洞察)
产品核心:
产品引擎与服务:
产品关键信息与优势
产品架构:
3、应用场景
(1)数据湖分析
使用阿里云对象存储OSS作为云上存储,DDI集群提供灵活的计算资源,OSS上的数据可以被多个DDI集群共享,减少数据冗余。同时, 支持多用户同时协同工作,您可以在中完成作业编辑、提交和结果查看。
(2)实时数仓
利用 Delta Lake的ACID事务特性,可以构建云上大数据的实时数仓。
华为数据湖探索(Data Lake ,以下简称DLI)
1、产品架构
数据湖探索(Data Lake ,以下简称DLI)是完全兼容 Spark、 Flink、(基于)生态,提供一站式的流处理、批处理、交互式分析的融合处理分析服务。DLI是完全托管的大数据处理分析服务,企业使用标准SQL、Spark、Flink程序就可轻松完成多数据源的联合计算分析,挖掘和探索数据价值。数据无需复杂的抽取、转换、加载(ETL),使用SQL或程序就可以对云上、RDS、DWS、CSS、OBS、ECS自建数据库以及线下数据库的异构数据进行探索。
2、功能介绍
DLI用户可以通过可视化界面、 API、JDBC、ODBC、等多种接入方式对云上、RDS和DWS等异构数据源进行查询分析,数据格式兼容CSV、JSON、、和ORC五种主流数据格式。
3大基本功能:
多数据源分析:
BI工具
支持地理空间查询。具体内容请参考《数据湖探索开发指南》。
3、应用场景
(1)大数据ETL处理
(2)异构数据源联邦分析
(3)海量日志分析
(产品定位有差异)
1、公司简介
由MapR的前员工:Tomer (CEO)和 (CTO)于2015年创立。融资总额为4500万美元。其总部位于美国,2017年发布了v1.0产品,客户包括帝亚吉欧()、微软、瑞银、和皇家加勒比游轮公司。
2、产品架构
是一款DaaS(Data-as-a-)数据即服务平台,可对接多类数据源来进行BI分析,该产品直接使用数据湖的源数据进行快速访问以达到直接进行数据分析而不经过数据的清洗、处理、加工、建模等方式。数据湖的意思就是将不同存储类型、不同种类的数据汇聚在一起,这个存储集群统一对外就是一个数据湖了。而通过直接在云数据湖存储中进行实时的、交互式的查询来释放数据价值。
的技术特点:
快速的数据查询——
在中,查询数据是直达数据湖存储的,无论数据是存储在S3、ADLS、、MySQL、等载体上。使用了包括不限于以下技术来加速每次的查询:
使用 和 Cloud Cache(C3)技术加速数据读取——
的 技术使得来自数据源的数据只有在执行引擎真正需要到时才会去拉取,这个做法能显著降低引擎等待数据的时间成本。同样地,C3技术则是会自动地在数据存取时将数据缓存到本地的NVMe存储载体,使得查询访问数据湖中的数据能有NVMe存取速度级别的表现。
为云而建造的现代化执行引擎——
的执行引擎是建立在 Arrow及其生态技术上的,一个集群能够根据存储数据的体量规模弹性伸缩。
Data – 能够更高效查询速度的开关——
通过在提供的客户端页面的几下点击,就能够创建反射,反射是一种物理层面上对数据结构的优化,能够加速各种查询模式,根据你的需要可以创建任意数量的反射,会隐形并自动地在查询计划中合并反射,并保证查询到最新数据。
Arrow – 以1000x的倍速移动数据——
AF被设计出来是用于取代处理小规模数据的ODBC和JDBC协议,AF在高速、分布式传输协议的基础上,为和应用的数据传输提供了1000x倍速度提升的吞吐。
自助式服务语义层——
提供了一个应用安全和商业意义的抽象层,以支持用户能够探索数据,以及派生出新的虚拟数据集。
可自定义化的语义抽象层——
的语义层是一个能够索引出所有用户元数据的集成化、可搜索的目录。在此语义层上,虚拟数据集以及空间构成了语义层,并且都是能够倍索引和搜索的。
高效的数据上下文管理——
通过虚拟上下文的管理,让可以使得筛选、转换、联表、聚合一个或多个数据源的数据变得快速,容易并且成本低。另外,的虚拟数据集是通过标准SQL定义的,如此我们使用起来旧不需要再另外学习一套查询语法了。
直接应用在BI或数据科学工具上——
其实就如同关系型数据库一样,并且可以暴露ODBC、JDBC、REST以及Arrow 协议的接口,这样我们就可以在一些BI应用上连接获取数据。
细粒度的访问权限控制——
提供行级和列级的权限控制,可以让我们基于敏感数据、基于角色来控制对数据的访问权限。
数据血缘——
的data graph管理着数据源、虚拟数据集以及查询语句之间的关系,我们可以通过data graph获知到当前查询的数据集的来源。
1、公司概况
(1) 于 2013 年在旧金山成立,是大型数据分析工具的最大供应商之一,由美国伯克利大学AMP实验室的开源处理引擎系统 Spark的多位创始人联合创立,专注于大数据和AI人工智能,致力于提供基于Spark的云服务及开放统一的数据平台。
(2)开创了云计算领域的“”结构概念,这一术语是由“Data Lakes”与“Data ”合成而成。目前提供四种产品:Spark、Delta Lake、(开发和维护 AI 生命周期管理平台)和(数据分析工具)。
(3)公司定位:
4、市场地位
2、不同产品介绍
(1)Delta Lake
Delta Lake 是一个统一的数据管理系统,为云上数据湖带来数据可靠性和快速分析。Delta Lake 运行在现有数据湖之上,并且与 Spark 的 API 完全兼容。使用Delta Lake,您可以加快高质量数据导入数据湖的速度,团队也可以在云服务上快速使用这些数据,安全且可扩展。
(2)产品架构
3、湖仓一体
调研
1、公司概况
团队背景:
开发 Kafka实时信息列队技术的程序员,创立,核心是利用 Kafka。
三个创始人:Jay Kreps(美国加州人)和清华毕业的饶军(Jun Rao)及来自印度的女生纳赫(Neha )。
融资情况:
