MaxCompute 湖仓一体方案最佳实践 | 学习笔记

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
对象存储 OSS,标准 - 同城冗余存储 20GB 3个月
简介: 快速学习 MaxCompute 湖仓一体方案最佳实践

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

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


MaxCompute  湖仓一体方案最佳实践


内容简介:

一、最佳实践架构讲解

二、阿里云湖仓一体架构设计

三、最佳实践系统搭建


一、最佳实践架构讲解

1.系统架构

数据湖:开源  Hadoop  集群+ HDFS 存储。存储结构化、半结构化和非结构化数据。客户自建集群或者使用云厂商提供的托管服务,如阿里云EMR

数据仓库:大数据时代的集成系统,数据需要清洗和转化,并强调建模和数据管理。如阿里云  MaxCompute

湖仓一体:打通数据湖和数据仓库两套体系,让数据和计算在湖和仓之间自由流动。基于 DataWorks  强大的数据开发治理能力,提供统一的开发体验,降低两套系统的管理成本

image.png

业务部署

为了简化  Hadoop  集群部署,本篇最佳实践会在华东1杭州地域部署EMR集群。为了模拟跨地域通信,MaxCompute  项目启动在华东2上海地域。

两个地域的 VPC  通过云企业网 CEN  打通。在 MaxCompute  端 创建外部项目,也就是  external project  与  Hive DB  做映射。

其他的注意事项还有  MaxCompute  通过 ENI  网卡与  EMR  集群通信,也需要EMR  集群放开对应的访问端口,实现元数据同步和数据查询。

·EMR  集群:托管版服务模拟自建  Hadoop  集群,存储是  HDFS

·云企业网  CEN:打通跨地域的  EMR  集群和  MaxCompute  数仓

·MaxCompute  :创建外部项目,实现  Hive DB  级映射

产品名称

作用

EMR

Hadoop集群

MaxCompute

云数据仓库

DataWorks

数据开发/管理/治理

云企业网CEN

打通VPC网络

ENI弹性网卡

MaxCompute与EMR通信接口

弹性公网EIP

方便公网访问管理

安全组

管控EMR端口访问

3.方案优势

(1)业务无侵入性,用户自持的计算资源可充分利用,助力平滑上云。

(2)依托  MaxCompute  作为弹性资源池,极大地增强了系统的资源弹性,解决业务高峰计算资源不足问题。

(3)相比开源计算引擎,MaxCompute  在  SQL  上做了大量优化,可帮助用户提高  SQL  运行性能,降低计算成本。

(4)与传统的数据同步方案相比,通过共享存储,镜像元数据的方式解决了数据实时性和存储冗余的问题。

(5)数据处理能力延伸,借助  MaxCompute  无缝集成阿里云  PAI  机器学习平台,拓展离线数据集群的机器学习能力。


二、阿里云湖仓一体架构设计

1.湖仓一体的架构

湖仓一体是由两种湖组成的。

左下角是  Hadoop  生态的湖,也就是Hive数据仓库的数据,Hive  是一种数仓,是一种  schema on read  模式的数仓,也就是说数据在插入  Hive 数据库的时候是不做  schema  校验的,只有在读取的时候才会做  schema  校验。

右下角是  OSS  的湖,很多非结构化数据,包括图像,音频,视频都放在对象存储上,所以有另外一套支持对象存储的湖。

通过  DLF  做元数据管理,数据放在  OSS  上,通过云上  MaxCompute  数仓对两种湖的数据做统一的管理。

通过  DataWorks  实现统一的数据开发平台,统一的元数据管理和数据治理。

最后通过不同的角色对湖或者苍的数据进行统一管理和分析。image.png

湖仓一体应用客户:新浪微博-——案例价值

不仅融合了数据湖和数据仓库的优势,在灵活性和效率上找到最佳平衡,还快速构建了一套统一的  AI 计算中台,极大提升该机器学习平台团队的业务支撑能力。

无须进行数据搬迁和作业迁移,即可将一套作业无缝灵活调度在  MaxCompute  集群和  EMR  集群中。

SQL  数据处理任务被广泛运行到  MaxCompute  集群,性能有明显提升。基于  PAI丰富且强大的算法能力,封装出很多贴近业务场量的算法服务。满足增量业务需求,如  PAI GNN

(3)MaxCompute  云原生的弹性资源和EMR集群资源形成互补,两营体系之间进行资源的形峰填谷,不仅减少作业排队,且降低整体成本。


三、最佳实践系统搭建

1.权限管理

1. 1.创建  RAM  用户  

登录阿里云控制台,输入访问控制,跳转到  RAM  控制台,选择用户|创建用户,按如图所示进行设置,点击确定。

image.png

·AccessKey  和  AccessKey Secret  的信息,可以复制也可以下载  CSV  文件。给客户添加权限:dataworks  ,根据实际情况进行精细化配置。完成后该账户则拥有了读写  MaxCompute  的权限。

1. 2.授权  MaxCompute  访问  ENI

MaxCompute  服务需要在用户的  VPC  内创建ENI网卡,以实现  MaxCompute  到用户  VPC  的连通。所以需要授权  MaxCompute  服务访问  ENI  资源的权限。点击链接,同意授权即可,云资源访问授权成功。

2.资源创建

2. 1.CADT  构建  

通过云架构设计工具,创建湖仓一体所需要的云资源,进入  CADT  控制台,选择官方模板库,输入湖仓一体,点击基于方案新建。image.png

emr  创建的  ECS  和  ECS  本身都是有登录密码的,实现官方模板到本地应用的保存

image.png

2. 2.资源配置

下一步 应用|部署应用。进行资源的验证,如果全部验证通过,则点击下一步,如果验证失败,则有失败的原因,根据其原因进行相应的解决。image.png

点击下一步:价格清单,会根据价格列表,支付方式列出相应的价格清单。image.png

点击下一步:部署清单,勾选《云架构设计工具服务条款》,点击下一步创建资源,则整个应用处于部署中的状态,需15分钟左右。

3.云数仓  MaxCompute

1.创建工作空间

首先退出主账号,切换到  RAM  用户登录窗口,输入之前创建的  RAM  用户  ID,登录成功切换到  DataWorks  工作台。选择工作空间列表,开始创建工作空间,选择简单模式。

image.png

选择  MaxCompute  作为计算引擎,点击下一步。image.png

实例显示名称为  didw.demo ,其它选项默认。

切回到主账号,通过  CADT  的资源部署情况可以查询到对应的要安装客户端的  IP地址。image.png

3. 2.配置  MaxCompute  客户端

安装  java  运行时下载  odpscmd客户端解压,避免特殊字符的影响,先将命令复制到文本,进行编辑和对齐,复制命令,执行。image.png

运行结果如下:image.png配置odps文件,复制到文本。image.png

将  AccessKey ID  和   AccessKey Secret  在  RAM  用户处拷贝。保存,运行odpscmd  客户端是否可以正常进入项目,结果如下。image.png

4.湖仓连通

4. 1.申请  MaxCompute  与  Hadoop  通信使用的  ENI  弹性网卡

需要通过VPC来跨区域访问  Hadoop  集群,所以要打通  MaxCompute  和  VPC之间的网络通路。

这个步骤目前需要阿里云产品团队协助处理,可将以下信息通过工单提供给 MaxCompute  团队并等待产品团队评估开通网络通路:

1.可用区  ID

2.专有网络  ID

3.虚拟交换机 ID

4.ENI安全组 ID

5.主账号  UID

注意:此处的  VPC  不是 Hadoop  集群所在的  VPC,而是要与  Hadoop 集群通信的  VPC. 本示例中使用的是与  MaxCompute 项目同在上海地域的相关VPC信息。申请通过后,可在弹性网卡中看到由 MaxCompute  新建的  ENI。

4. 2.配置  Hadoop 集群安全组

MaxCompute  通过  ENI  访问  Hadoop  集群,因此也需要 Hadoop   集群的安全组或防火墙对ENI开放必要的端口(注意:端口号和  Hadoop 版本有关,本实践使用的 EMR  的  Hadoop  版本是 3.x)。

允许  HiveMetaStore   端口(通常是9083,本实践中是9083)2.允许 HDFS NameNode IPC  端口(通常是8020或9000,本实践中是8020)3.允许  HDFS DataNode  数据传输端口(通常是50010或9866,本实践中是9866)

登录VPC控制台(http://vpc.console.allyun.com),选择杭州区域,找到VPC实例,点击右侧的管理连接。image.png

点击安全组模块,点击配置规则。image.png

在安全组规则管理页面点击手动添加三个端口。

添加入方向TCP端口8020,授权对象是MaxCompute 使用的ENI所在的VPC地址段(本示例是192. 168. 0. 0/16),然后点击右侧的保存。4. 3.创建Hive数据库和表

image.png需要在  EMR 集群通过 hive  命令创建测试用的数据库和表,并插入测试数据。登录EMR  的 master  节点,输入 hive 命令:

创建数据库:

create database aliyun_bp;

创建表:

use aliyun_bp;

create table bp_articles (id string,content string) ;

插入测试数据记录:

insert into table bp_articles values ("169", "data lake”) ;

4.4创建  Extemal Project image.pngExternal project  是一种特殊的  MaxCompute  项目,无法脱离主 Project  被创建和使用。

在湖仓一体的场景下,主项目承载计算资源提供者和计费主体,用于执行作业:External project   则是  Hive Database  在  MaxCompute  中的映射,用于提仅作业和授权的所需的引用对象。在  External project  中不能执行作业,也不会产生费用。

打开  odpscmd  ,执行如下命令创建外部项目:image.png

5.命令行校验

5.1查看数据库表

元数据和数据库信息映射完成后,我们可以直接在MaxCompute 中查看到hive 数据库的表信息。

进入 odpscmd  ,选择使用刚刚创建的数据库。

键入命令  show tables  ,查看所有表。发现可以通过  odpscmd  客户端查看到在Hive  中创建的表信息。

image.png

5.2.执行  SQL  任务

在  MaxCompute   中,我们可以通过  Hive  混合模式来运行兼容 Hive  的  SQL.

在MaxCompute 端切回到主项目。在 MaxCompute  客户端运行如下命令,设置成hive  混合模式。

运行简单的  SQL  语句:

select*from biyi_008.bp_articles limit 10;

执行过程如下:image.png

6.DataWorks执行

文件夹创建:

image.png

用  dataworks  控制台一样可以查询到存储在  hadoop   集群里的信息:image.png

至此完成整个湖仓一体环境的搭建以及校验查询。

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
SQL 缓存 分布式计算
【跨国数仓迁移最佳实践5】MaxCompute近线查询解决方案助力物流电商等实时场景实现高效查询
本系列文章将围绕东南亚头部科技集团的真实迁移历程展开,逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第5篇,解析跨国数仓迁移背后的性能优化技术。 注:客户背景为东南亚头部科技集团,文中用 GoTerra 表示。
166 8
|
3月前
|
SQL 分布式计算 运维
【跨国数仓迁移最佳实践3】资源消耗减少50%!解析跨国数仓迁移至MaxCompute背后的性能优化技术
本系列文章将围绕东南亚头部科技集团的真实迁移历程展开,逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第3篇,解析跨国数仓迁移背后的性能优化技术。 注:客户背景为东南亚头部科技集团,文中用 GoTerra 表示。
221 0
|
6月前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
4月前
|
存储 SQL 人工智能
【跨国数仓迁移最佳实践1】Append Delta Table 统一存储格式创新
本系列文章将围绕东南亚头部科技集团的真实迁移历程展开,逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第一篇,跨国数仓迁移背后 MaxCompute 的统一存储格式创新。 注:客户背景为东南亚头部科技集团,文中用 GoTerra 表示。
117 0
|
9月前
|
存储 分布式计算 物联网
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
美的楼宇科技基于阿里云 EMR Serverless Spark 建设 IoT 数据平台,实现了数据与 AI 技术的有效融合,解决了美的楼宇科技设备数据量庞大且持续增长、数据半结构化、数据价值缺乏深度挖掘的痛点问题。并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台,最终实现不同场景下整体性能提升50%以上,同时综合成本下降30%。
746 58
|
7月前
|
数据采集 数据可视化 数据挖掘
基于Python的App流量大数据分析与可视化方案
基于Python的App流量大数据分析与可视化方案
|
9月前
|
SQL 缓存 数据处理
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)
Apache Doris 提出“数据无界”和“湖仓无界”理念,提供高效的数据管理方案。本文聚焦三个典型应用场景:湖仓分析加速、多源联邦分析、湖仓数据处理,深入介绍 Apache Doris 的最佳实践,帮助企业快速响应业务需求,提升数据处理和分析效率
537 3
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)