本案例是基于阿里云上的datahub收集营销数据,并通过maxcompute对营销数据进行分析。下面主要介绍如何用datahub收集营销数据,以及在maxcompute中如何对数据进行分析。
1 datahub采集数据
阿里云的datahub提供了接口可将项目中产生的数据同步到datahub中,并实时同步到maxcompute项目对应的表中。下面介绍如何利用datahub收集数据。
1.1 创建项目

点击创建project按钮,可创建项目,窗口如下:
输入名称和描述之后点击创建可新建一个项目,刷新后会出现在项目列表中。点击查看可设置项目的各种信息。
1.2 创建topic
点击项目后的查看按钮,进入如下页面:
创建topic设置同步数据到maxcompute的数据表中。点击创建topic,弹出页面如下:
有两种创建方式,直接创建和导入maxcompute表结构。第一种方式需要自己填写表结构,比较麻烦,如果在maxcompute中已经创建好了表,推荐使用导入maxcompute表结构。按提示填写完信息即可创建成功(提示:备注也要写,否则创建按钮不可点击)。创建完成后会出现在topic列表中。
此时在datahub中的配置已经完成,点击topic后面的查看可查看配置的各种信息。如下图:
点击第二张图片connectors中的查看,弹出如下页面:
重启归档和暂停归档可设置是否将datahub中的数据同步到maxcompute中。
注:创建topic的时候会设置生命周期,如生命周期为三天,表示datahub只保存三天的数据。超过三天的数据会被删除,且不可恢复。因此需经常看看datahub是否因未知的原因而归档失败了。因为当归档失败时,datahub没有失败自动重启的功能,此时会一直处于失败状态,数据无法归档到maxcompute中,超过三天数据会丢失(也可将生命周期设置的长一些)。
1.3 数据采集
datahub中提供了很多工具将本地项目中的数据同步到datahub中。提供的工具如下:
点击需要用的工具即可进入帮助文档页面,按帮助文档的步骤进行操作即可。
2 利用maxcompute进行数据分析
用maxcompute进行数据分析,首先需要创建odps项目,其产品名如下:
创建成功后的页面如下:
点击项目列表中的项目名即可进入项目空间(需操作不同项目空间的表需要再表前加上项目名,用“.”连接)。项目空间如下:
任务开发:可创建一些定时任务,定时运行一些数据同步任务、机器学习实验、sql语句等。
脚本开发:可写一些sql语句对项目空间的表进行分析。
函数管理:提供了一些系统自带的函数。
表查询:可查看maxcompute中的所有表,查看表结构及预览部分数据。
下面介绍一下本案例的营销报告所做的工作,主要是新建一个任务,在任务中添加一些sql语句节点,定时每天跑这些任务。
2.1 创建任务
点击新建,出现如下页面:
点击新建任务,出现如下页面:
分为工作流任务和节点任务,节点任务有如图所示的几种任务类型,顾名思义,节点任务就是只能执行一种任务类型的一个任务。而工作流任务是将节点任务连接成一个工作流,可让多个节点任务一起执行。我们这里创建工作流任务,其页面如下:
创建成功后的页面如下:
左边提供了节点组件。本案例的营销报告工作流如下:
鼠标选择节点组件,点击右键会出现设置节点信息的菜单,如下:
任务配置完成后,可在右边的调度配置中配置调度信息,如下:
各种信息都设置后之后,点击菜单栏中的保存、提交即可定时执行任务,菜单栏如下:
其中,测试运行可测试任务配置的是否有问题。
2.2 同步数据到rds数据库
用maxcompute平台分析后的数据可同步存放到rds数据库中,然后在本地项目即可获取分析结果。
2.2.1 新建数据源
同步数据到rds中需要新建数据源,将maxcompute的项目与rds数据库连通起来。数据源在数据集成中创建,页面如下:
点击新建数据源按提示创建即可。
2.2.2 创建数据同步任务
在maxcompute的项目空间中新建任务,如下:
此时任务类型选择数据同步。之后按提示填写即可。
3 总结
本案例是利用datahub采集营销数据,然后利用maxcompute对数据定时进行分析,然后同步到rds数据库中,供本地项目获取结果。
#maxcompute最佳实践#