示例说明
实验背景:
本实验基于五年好莱坞电影数据,了解通过 DataWorks 操作 MaxCompute 来构建数据仓库,ETL清洗数据,并同步数据给应用数据库,完成从数据到线上应用的过程。
使用工具:
大数据计算服务(MaxCompute)+ 大数据开发(DataWorks)
实验数据:
基于2007-2011年五年间的好莱坞电影数据,分析电影题材,故事,工作室与电影之间的关系
数据准备:
样例数据:
使用2007-2012年5年的好莱坞电影数据
字段名称 |
字段说明 |
film |
电影名称 |
major_studio |
主要工作室 |
rotten_tomatoes |
烂蕃茄评分 |
audience_score |
观众评分 |
story |
故事 |
genre |
体裁 |
week_theatres_num |
上映场数 |
week_boxOffice_avf |
每周平均票房 |
domestic_gross_m |
国内票房 |
foreign_gross_m |
国外票房 |
worldwide_gross_m |
世界票房 |
budget |
预算 |
market_profitability |
市场占有率 |
opening_weekend |
上映周数 |
oscar |
奥斯卡 |
bafta |
英国电影学院奖 |
sourec |
来源,全是 the_numbs.com |
domestic_gross |
国内票房 |
foreign_gross |
国外票房 |
worldwide_gross |
世界票房 |
budget |
预算 |
实验步骤:
前期准备
创建项目
进入项目列表,点击创建项目,选择服务项目,配置基本信息
进入工作区
在任务列表或DataWorks控制台首页点击进入工作区
数据ETL
建表
按年分区建一张原始数据表,用于存储已准备好的好莱坞电影数据
1. 可以在数据管理的数据表管理里面新建(可视化建表)
2.可以在数据开发区使用建表语句建表
建表语句:
CREATE TABLE ods_hollywood_movie_data_dd (
film STRING COMMENT '电影名称',
major_studio STRING COMMENT '主要工作室',
rotten_tomatoes STRING COMMENT '烂蕃茄网',
audience_score STRING COMMENT '观众评分',
story STRING COMMENT '故事',
genre STRING COMMENT '体裁',
week_theatres_num STRING COMMENT '周上印场数',
week_boxoffice_avf STRING COMMENT '周平均票房',
domestic_gross_m STRING COMMENT '国内总票房',
foreign_gross_m STRING COMMENT '国外总票房',
worldwide_gross_m STRING COMMENT '世界总票房',
budget_m STRING COMMENT '预算',
market_profitability STRING COMMENT '市场盈利能力',
opening_weekend STRING COMMENT '上印周数',
oscar STRING COMMENT '奥斯卡',
bafta STRING COMMENT '英国电影学院奖',
source STRING COMMENT '来源',
domestic_gross STRING COMMENT '国内总票房',
foreign_gross STRING COMMENT '外票总票房',
worldwide_gross STRING COMMENT '世界总票房',
budget STRING COMMENT '预算'
)
COMMENT '电影初始采集数据'
PARTITIONED BY (
yy BIGINT COMMENT '年份'
)
LIFECYCLE 100000;
导入本地数据
按分区将准备好的2007-2011年5年的数据分别导入对应的分区
1. 在数据开发区域-点击导入-选择导入本地数据
2. 选择本地文件-配置文件格式等信息
3. 选择建好的表-指定分区,并做好数据内容与字段的映射
分区检测是否已有数据,如果已有,先把分区删除,导入自动追加而不是覆盖
4. 导入数据,导入成功右上角提示导入成功
创建脚本清洗数据
1. 创建脚本
新建一张dwd表用于存储处理特殊格式后的数据
数据开发区-新建脚本文件-输入文件名-确定
2. 编写脚本
主要处理部分金额数值为?/??的数据,都清洗成0,部分金额数值中带了$符号,统一去除。
3. 运行脚本
脚本中带有分区参数,运行时需要填上参数,点脚本上方运行
按业务需求处理数据
多原始表中清洗出 电影信息表,电影与体裁的关联表,电影与获奖奖项的关联表,电影与故事情节的关联表,电影与工作室的关联表
新建任务-因为数据是预先获取,所以选择手动任务,如果是周期数据可以选择周期高度,按流程依赖执行
编写脚本
编写业务逻辑sql,创建业务表并从原始表中提取相关的数据
运行任务
脚本上方有测试运行
切换到运维页面-手动任务-运行
执行完成后,数据处理完成,可以将数据同步到业务平台进行分析。
数据同步
新建数据源
数据集成-数据源-新建数据源
按提示输入数据源信息,注意添加白名单
同步任务创建
数据集成-同步任务-选择向导模式-按流程步骤填写
选择源数据-odps及表名
选择目标数据源-表名
字段映射
配置资源并发数等
保存同步任务
运行同步任务
查看日志-同步完成
业务效果
数据同步到业务数据库后,配置相应信息,业务的展示效果如下