快速打通数仓和数据湖的湖仓一体最佳实践 | 学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 快速学习快速打通数仓和数据湖的湖仓一体最佳实践

开发者学堂课程【SaaS  模式云数据仓库系列课程 —— 2021数仓必修课快速打通数仓和数据湖的湖仓一体最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/55/detail/1060


快速打通数仓和数据湖的湖仓一体最佳实践

 

目录:

一、数据湖 vs 数据仓库

二、下一代大数据演进方向:湖仓一体

三、湖仓一体演示


一、数据湖 vs 数据仓库

1.大数据的演进

数据湖和数据仓库很难有一个清晰的界定。

之所以大家认为自己用得是数据仓库,是因为数据仓库的概念出现的很早,大数据概念出现之前,数据库时代数据仓库的概念就出现了,从用户使用认知角度来看,计算存储分离的叫数据湖。

2.一个典型的数据湖系统剖析

阿里云 EMR 数据湖—基于开源生态的大数据平台

(1)系统架构图

image.png

从图上可以看出,模块数量较多,层次结构清晰。从下往上看,最下面一层是存储层,往上一层是 hdfs/Jindou  层,之后一层是调度层,再上层是各种引擎,最上层是应用接入层,这些是数据湖的一个基本架构。各个模块是一个独立的组件,可以插拔,也可以替换。

image.png

(2)产品优势

a.基于开源生态的大数据平台

b.支持  hdfs  和oss  两种存储系统

c.JindouFS+OSS  架构具有更好的效率和更低的成本

d.易于启动和搭建

(3)数据湖的本质

a.统一的存储系统

b.统一的元数据

c.引擎丰富,各组件自由协作

(4)数据湖的架构演进

架构上,从自建的存储计算一体演变为托管的存储计算分离建构,拥有更好的拓展性和稳定性。

image.png

数据湖架构是从左到右演进的,最初的数据湖是在HDFS上加一个自建集群,但是在此数据湖中我们要监管机房、机位、采购、部署软件等;之后又出现了像EMR这样的产品,机房、机位这些就不用监管了,然后把自建集群改为EMR集群扩容一下,从全托管转化为了半托管;而现在的云上数据湖,把HDFS替换成了元数据中(DLF),用  OSS  或 S3  来替代存储层,背后的概念是计算存储分离,好处是带来了更好的弹性以及更好地稳定性。原始数据湖存在的问题是计算作业打满了  CPU,导致整个  HDFS  不稳定,其他作业受到影响,导致数据湖崩溃。

DLF   可以把元数据服务化,达到在不需要计算时,也能保存原始数据与存储,可以把整个计算层去掉,在需要时再拉回来,使整个架构更灵活。

现在一个标准数据湖是各种组件之间非常灵活的组合形式,数据湖中的每一层可以独立使用,数据可以从其他组件进入。

3.一个典型的数据仓库系统剖析

阿里云  MaxCompute—SaaS  模式企业级云数据仓库

(1)系统架构图

image.png 

从图上来看,数据仓库的架构与数据湖的架构相似,有分布式的存储,有计算资源,,有调度,有各种引擎以及各种功能组件等,最大的不同之处是,一个数据仓库有一个统一的数据接入层,这个数据仓库的数据接入层通过内部的各种组件对用户屏蔽。

数据接入层的不同在数据湖和数据仓库的比较中起到了关键作用,第一,定义了整个系统的边界,进入数据仓库的数据是有要求的,而任何数据都可以直接进入数据湖,进入 MaxCompute 的数据一定是结构化的;第二,系统内部的各种版本的演进是对用户屏蔽的,比如在数据湖中存在的几个节点,存储的冷热分层,引擎与存储需一起提升。

(2)产品优势

a.云原生极致弹性,无服务器架构,开箱即用,支持砂级弹性伸缩

b.预置多种深度优化计算模型、存储和数据通道能力

c.完善的企业级平台能力,且支持开放生态

d.强大的细粒度的安全隔离机制

e.大规模集群性能强、全链路稳定性高(阿里巴巴双11场景验证)

(3)基于 MaxCompute  强数仓的优势,阿里巴巴构建大数据中台

image.png

 

(4)数据仓库的本质

a.内置存储系统提供数据抽象

b.数据需要清洗和转化

c.强调建模和数据管理

image.png

4.数据湖与数据仓库的区别

从技术角度是做了不同的倾斜,就是数据湖的系统是灵活的,强调组建组件之间的灵活的协作,数据入库是结构化半结构化,这种是来者不拒的,然后上面的引擎是非常丰富、开放的使用起来上手是很容易的,大家获得的学习信息十分充足。

而数据仓库是针对大的数据怎么有效管理的,数据进入这个系统,就要先建模,建模之后用最高效的格式存储他,上面的引擎没那么丰富,但是这些引擎效率会跟系统内的各种其他组组件一起优化。

这个系统是不开元的,使用需要经过一个学习过程,上手困难一点,但是上手之后就会很容易,后续的管理成本是较低的。

image.png 

从场景来看,这两种系统分别适合做什么?

因为数据湖对进入数据的类型没有要求, 所以数据湖系统适合做一个从无到有的分系过程,而数据库适合做业务流程已经确定,接下来是一个成长期,数据量和用户量开始上升,剩下的问题都变成工程问题,数据量大了之后怎么保证稳定性的问题、保证效率的问题,怎么降低成本的问题。

image.png 

从图中可以看出在特定规模之前数据湖灵活性占优势,之后数仓成长性占优势。

与此同时,就产生了一个问题,客户如何才能同时享受到数据湖的灵活性和数据仓库的成长性。


二、下一代大数据演进方向:湖仓一体

阿里云计算平台提出下一代大数据演进方向:湖仓一体,即打通数据湖和数据仓库两套系统,让数据和计算在湖仓之间自由流动,从而构建一个完整的有机的大数据技术生态体系。

1.整体架构

image.png 

湖仓一体是在相当长的一段时间里将数据湖和数据库结合起来,数据资产应该是一致的,我们不希望它分裂,所以我们提出了湖仓一体这个概念,新的数据接入层能够能够认识各种各样数据组合或数据类型。

2.关键技术特性

湖仓一体的缺点:整体系统使用的复杂度上升。

湖仓一体的关键技术是为了降低系统使用的复杂度。

(1)快速接入

经过快速简单的开通步骤即可和  MaxCompute  数仓相连通。

(2)统一数据/元数据管理

既支持  hadoop  开源数据湖,也支持oss数据湖(兼容)。

数仓和数据湖的数据/元数据保持实时一致性(数据湖中的DB直接映射为MaxCompute Project  ,享受数仓配套工具链)

(3)同意开发体验

基于  DataWorks  强大的数据开发/管理/治理能力,提供统一的湖仓开发体验,降低两套系统的管理成本。

MaxCompute  高度兼容  Hive/Spark  ,支持一套任务可以在湖仓两套体系中灵活无缝的运行。

(4)自动数仓

湖仓系统间的高速网络通道。

智能的系统间近线  Cache。

中台统一管理框架下的合理数据分层,不仅享受数据湖带来的灵活性,也享受MaxCompute  带来的企业级数仓能力。

image.png 

湖仓一体化的数据中台可能有几个数据湖和几个数仓系统构成。在数据层要做到数据的高速打通,到异构集群有高速带宽,在计算层做到元数据的实时打通,在中台层做统一的体验。

3.适用场景

a.支持超大规模的机器学习和深度学习

基于开源的数据湖依托湖仓一体混合云结构,可以实现超大数据集进行机器学习、深度学习训练,以及高性能的超大规模样本生成和特征处理的完整pipeline,极大提升AI类作业效率。

b.高效使用阿里数据中台提升企业大数据能力

企业依托开源建设了数据湖,再借助使用阿里数据中台能力过程中,湖仓一体方案解决了迁移带来的利旧、确保业务连续性、与已有的系统协同、提升迁移速度的问题。

c.敏捷运营、降本提效

强运营行业(视频、直播、游戏等),数据驱动运营决策频次高,对计算资源临时性需求强。湖仓一体方案以更低成本快速的满足业务高弹性需求。

 

三、湖仓一体演示

使用工具:MaxCompute/DataWorks/EMR/oss

1.快速打通

打开一个执行命令,进入命令行,我们会用到  MaxCompute  的基本文件1、2、3, 在 Hive  中构建一个新环境,新建一个  database   ,命名为 Inhdp1 oss,在oss建一张表,命名为  loction(是一个ORC格式的表),这是一个  EMR  与  oss结合的数据湖,然后输入数据,最后  select。

在  MaxCompute  新建一个  Project,命名为desc Project,可以与Hive上的database  作展通,提供EMR上的一些基础信息,里面已经有一张表  foo,就可以知道输入数据的时间和最后一次更改数据的时间,映射的  desc Project  不能作业,不承在资源的属性,结果运行在  menage Project  中,desc Project  的创建、消除不会产生任何费用,运用到desc Project里面的元数据之后,作业才能运行。

之后再建一张表,把  foo  表里的数据换掉,然后再做一个  show table  ,我们可以在 Hive  中见到新换的数据。

2.用户/权限管理

在原生  MaxCompute  中用户权限管理,add user lyman  的帐号,再授权做grand  权限,然后  show table Inhdp1 oss。

在湖仓一体中用户权限管理,add user lyman  的帐号,再授权做  grand List  权限,然后  show table Inhdp1 oss。

 image.png

 

使用湖仓一体化的方法:

在阿里云搜索湖仓一体;点击  MaxCompute  官网首页湖仓一体按钮。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
8月前
|
SQL 分布式计算 大数据
Python+大数据学习笔记(一)
Python+大数据学习笔记(一)
80 0
|
8月前
|
大数据 Linux 网络安全
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
203 0
|
8月前
|
存储 大数据 BI
数据仓库、数据湖、湖仓一体,究竟有什么区别?
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。
|
8月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
61 1
|
8月前
|
关系型数据库 MySQL 大数据
大数据开发工程师基本功修炼之Linux学习笔记(四)
大数据开发工程师基本功修炼之Linux学习笔记(四)
150 1
|
8月前
[解惑]数据湖跟数仓的区别
[解惑]数据湖跟数仓的区别
44 0
|
8月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
581 0
|
8月前
|
大数据 Linux 开发工具
大数据开发工程师基本功修炼之Linux学习笔记(三)
大数据开发工程师基本功修炼之Linux学习笔记(三)
108 0
|
8月前
|
大数据 Java Linux
大数据开发工程师基本功修炼之Linux学习笔记(二)
大数据开发工程师基本功修炼之Linux学习笔记(二)
121 0
|
存储 SQL 分布式计算
AnalyticDB MySQL升级为湖仓一体架构:从湖到仓,打造云原生一站式数据分析平台
AnalyticDB MySQL湖仓版同时支持低成本离线处理和高性能在线分析,适合ETL/BI报表/交互式查询/APP应用等多场景,并可无缝替换CDH/TDH/Databricks/Presto/Spark/Hive等