阿里云MaxCompute入门

ODPS入门

阿里云大数据开发治理平台-DataWorks


阿里云大数据计算服务-MaxCompute

数据仓库的概念

数据仓库定义(Data Warehouse),是为企业所有决策制定过程,提供所有系统数据支持的战略集合
数据仓库VS传统数据库存储

三大优势

  • 体量大,效率高
  • 历史追查,时光回溯
  • 数据可用性强

下面使用一个demo来入门

  1. 采集业务数据库中的数据
  2. 数据仓库的搭建
  3. 分析统计业务指标
  4. 对结果进行可视化展示

2.使用到的技术框架

系统数据流程设计

DataWorks和MaxCompute
DataWorks基于阿里云MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。作为阿里巴巴数据中台的建设者,DataWorks从2009年不断沉淀阿里巴巴大数据建设方法论,同时与数万名政务/金融/零售/互联网/制造等客户携手,助力产业数字化升级。

MaxCompute是面向分析的企业级SaaS模式云数据仓库,以ServerLess架构提供快速、全托管的在线数据仓库服务,消除了传统数据库平台在资源拓展和弹性方面的限制,最小化用户运维投入,使您可以经济并且高效的分析处理海量数据,数以万计的企业正基于MaxCompute进行数据计算与分析,将数据搞笑转换为业务洞察

说明: DataWorks是一个大的数据治理平台,可以在里面选择MaxCompute

盘古: 相当于Hadoop中的HDFS

复习: 相当于Hadoop中的YARN

MaxCompute Engine:相当于MR、Tez等计算引擎

MaxCompute和DataWorks一起向用户提供完善的ETL和数仓管理能力,以及SQL、MR、Graph等多种经典的分布式计算模型,能够更快速地解决用户海量数据计算问题,有效降低企业成本,保障数据安全

创建工作空间

控制台入口: 控制台入口

登录阿里云平台




购买完成之后,回到原始页面,点击管理控制台


如下则创建成功

点击立即绑定MaxCompute


点击前往DataStudion进行数据开发,进入如下页面

业务表格

需要的业务表









假设现在在你的数据库mysql或者RDS中已经有了上面那些表,现在需要将这些数据按照一定的规则同步到数仓里面

根据对比,可以得出以下结论:

通常情况,业务表数据量比较大,优先考虑增量,数据量比较小,优先考虑全量

下面开始进行建模

说明: 数仓建模工具是直接嵌套在dataworks里面的

回到阿里云页面,如下操作进入建模

此时进入到该页面

刚开始进来啥也没有,因为你还没有创建各种模型


需要对做的需求业务进行分类

可以看到业务分类创建出来了




退出,接下来创建明细数据层

退出,接下来创建数据汇总层



在新建一个指标

说明一下,模型是指我们的表,指标指的是表里的某个细节

下面操作应用数据层


定义数据域

创建数据域

创建一个用户域,然后在创建一个交易域

创建如下

定义业务过程

首先是在定义业务过程中,系统会针对你的数据域定义几个默认的业务过程,我们一般忽略

新建业务过程,一个业务过程只能对应一个数据域



可以看到创建了如下四种业务过程

说明一下新增付费用户,就是可以通过用户表和订单表进行一个join操作,操作完了发现该用户没有下过单,说明他是一个新的付费用户,那摩当前订单就是他新增的首单,这时候他就是属于新增的付费用户,后续可以根据这个统计每天新增的付费用户有哪些

业务数据准备

业务数仓系统流程设计

业务表结构

RDS服务器准备

RDS服务器购买

阿里云关系型数据库(Relational Database Service,简称RDS ) 是一种稳定可靠、可弹性伸缩的在线数据库服务

购买RDS for MySQL服务器: https://www.aliyun.com/product/rds/mysql


点击立即购买



支付完成之后点击去控制台

控制台列表

注意:实例一旦创建,服务开始计费,使用过程中不能停机,只能释放实例。

RDS服务器配置

服务建立好以后,首先要建立连接通道,可以让用户远程操控RDS服务器

1)从列表中点入实例

2)配置白名单

白名单:白名单上的IP地址,是可以访问该RDS服务器,其他IP地址都拒绝。

白名单的IP地址都是本机对外显示的外网地址。获取外面IP地址的方法,就是在百度上搜索IP查询。

配置白名单详情

4)基本信息->申请外网地址


框住的部分就是,用户可以通过客户端工具直接访问的地址。

5)账号管理->创建账号

RDS服务器连接

1)利用客户端工具进行登录

注意:SQL主机地址,一定是RDS服务器暴露的外网IP地址。

一旦登录成功,那么RDS服务就和一台本地安装的服务器操作起来基本差不多

创建业务数据库及表

建立业务数据库

2)导入数据库脚本

数据导入后可以看到有表

  1. 业务数仓系统流程设计

下面将数据导入到odps

进入到DataWorks工作台页面

调整自己喜欢的页面设置


在表管理上一般会设置一些主题,方便类似于文件夹,方便我们后续开发的时候更容易找到




数据同步

ODS层存储的是原始数据,即不需要对数据进行任何处理,所以直接使用DataWorks的同步工具将数据导入到MaxComputer中即可。

同步策略

各表同步策略

首先在数据开发空间中创建业务流程

创建业务过程之后可以看到里面有如下内容


可以看到自己新建的内容

选择数据来源




选择资源组,公共资源组可以调试使用,生成使用可以购买独享资源组获得更高效的通道




我们这里演示的是不需要过滤的

下一步配置数据去向



由于我们是自动创建的表结构,因此映射关系是自动帮我们映射好了,也可以进行修改

上图不需要点击上一步,应该是到了调度配置了

默认的调度是每天同步处理昨天的业务数据,在测试环境中,可以随意填写参数直接运行

点击保存

在测试的时候可以自己手动带参数运行,那摩填写的参数就是作为昨天的数据与逆行了

由于我们使用的是公共资源组,所以我们在使用起来的时候是需要排队的,因此需要我们等一下

数据同步完了之后,下面我们可以去查看这些数据

创建完成之后,就可以拥有一个临时页面,来帮助我们写sql

可以看到已经查到了我们导入的数据

还有一种方式可以查看我们的表,在公共表直接搜索我们创建的表

下面来完成完整的离线全量表同步

将上一步创建的离线表ods_sku_di移到上图中创建的文件夹下面

创建新的离线同步节点


可以看到另外创建的两张离线表

跟第一张表配置方式一样


全部都跟第一张商品表一样的配置即可

等待数据导入完成即可

下面按照正常的规范应该是在临时查询中去查询数据

阿里云离线数据查询比较严格,必须带上分区字段,不然会报错

增量表的首次初始化同步

需要执行实时数据同步的表格为增量同步表格,需要保持同步任务,实时监控数据的变更情况。需要执行实时数据同步的表格有order_info,order_detail,order_status_log,payment_info,user_info等5张表。

实时同步的增量表需要进行首日初始化同步,这种同步是一次性的,需要在手动业务流程中创建:(只展示order_info表格)






说明手动业务流程是没有调度配置的

以上所述表的所有流程基本都是那样操作,但是这里有个问题就是,如果我表的数量特别多的话,难道要把每张表都挨个设置一下吗?那样的时间成本就太高了,其实DataWorks给用户提供了批量处理的功能

可以看到这里变成了数据集成

但是当你选择了这种方式同步离线表数据之后,那摩你就相当于一个正式的任务了,不会再让你使用公共资源组了,这是需要额外收费的

如果你实在不想要一个个的去操作,那你直接购买资源组就行了

买完之后需要绑定当前的命名空间

再回到DataWork数据集成页面就有数据了







这种批量执行全自动化的是无法自己设置分区时间的,所以这个分区时间就是当前时间的前一天

这种执行都是覆盖写入的,所以可以允许重复执行的,会把之前的数据覆盖掉,不会出现重复数据

还可以批量提交

设置表格层级


也可以添加二级主题




可以看到表都放到了对应的主题下,这样以后查询起来更加方便

增量表的实时同步




可以看到五张表已经全部创建出来了

点击下一步,开始建表


下面需要让任务跑起来


可以看到正在跑起来任务

可以查看数据库的一些变化

因为目前数据库的数据没啥变化,所以这里可以自己去造数据,然后看odps上的变化,mock过程忽略

可以看到odps上的监控信息

可以去odps是查一下增量表的数据信息

一条修改的数据在增量同步表里面会存在两条数据,一条是修改前的数据,一条是修改后的数据

下面先将上一步创建的增量表在表管理中配置好,方便查找




刷新一下

下面设置表格的关联,从引擎关联表就是从库里关联表的意思

确认完了之后就可以看到ods层的表全部都被关联到了MaxCompute的表中

以上就是全部ODS层的开发了,下面讲解DIM层的开发

DIM层

DIM层,用于存放维度建模中的维度表,来表示业务过程运行中的环境。本项目有3张维度表,分别为:省份维度表、商品维度表、用户维度表








创建维度表

维度表是不划分数据域的

点击导入


再往下就是分区字段管理,我们可以删除掉多余的分区字段

每一个分区都会有一个相同id的数据,创建完成之后点击保存

保存完之后点击提交

提交成功之后,点击发布

发布完成之后,回到我们的DataStudio页面

下面创建用户信息维度表

用户信息表是一个增量表,基本上都是每日新增用户,而原来已有的用户基本不会怎么去修改自己的信息,所以是一个增量表






保存之后可以查看见表语句

然后同上一步一样点击提交发布

接着创建省份维度表


可以看到三张维度表都有了

6.4.4同步商品维度表

商品维度表是一张全量同步的表格,数据每天都会有新增及变化,所以使用分区表来存放每天的全量数据


使用调度每天执行一次全量同步

相关推荐
青春之我_XP5 小时前
【基于阿里云搭建数据仓库(离线)】使用UDTF时出现报错“FlatEventUDTF cannot be resolved”
数据仓库·sql·阿里云·云计算·dataworks·maxcompute
ahhhhaaaa-20 小时前
【学习笔记】QUIC
数据库·笔记·学习·阿里云·golang·云计算
可口口可1 天前
AWS vs 阿里云:功能、服务与性能对比指南
阿里云·云计算·aws
solihawk1 天前
从阿里云域名解析异常事件看下域名解析过程
阿里云·云计算
云布道师1 天前
云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项
网络·人工智能·安全·阿里云·云计算·云布道师
zh_199951 天前
Spark 之 入门讲解详细版(1)
大数据·spark·mapreduce·数据库架构·etl·涛思数据·odps
BOB-wangbaohai2 天前
阿里云ACP云计算备考笔记 (5)——弹性伸缩
阿里云·云计算·as弹性伸缩
通义灵码2 天前
通义灵码 AI IDE 上线!智能体+MCP 从手动调用工具过渡到“AI 主动调度资源”
ide·人工智能·阿里云·通义灵码