步骤3:数据开发处理
在影视数据分析业务中,运营人员通常需要定期掌握热门电影排行及用户活跃度情况。然而,面对海量且持续更新的原始数据,手动统计不仅耗时费力,还难以保证时效性与准确性。本步骤通过处理电影信息和评分信息的原始数据,分析出评分最高的Top10电影和最活跃的Top10电影,并通过配置作业定期调度执行,将结果每日导出到表中,以高效支撑后续的信息分析。
脚本开发
创建DWS SQL脚本top_rating_movie,用于存储评分最高的Top10电影。
创建DWS SQL脚本top_active_movie,用于存储最活跃的Top10电影。
评分最高Top10电影的计算方法是:先计算出每部电影的总评分和参与评分的用户数,过滤掉参与评分的用户数小于3的记录,返回电影名称、平均评分和参与评分用户数。
- 登录DataArts Studio管理控制台。
详情请参考访问DataArts Studio实例控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。 图1 新建脚本
- 在新建脚本弹出的SQL编辑器中,填写关键参数。 图2 关键参数
输入如下SQL语句,单击“运行”,从movies_item和ratings_item表中计算出评分最高的Top10电影,将结果存放到top_rating_movie表。SET SEARCH_PATH TO dgc; insert overwrite into top_rating_movie select a.movieTitle, b.ratings / b.rating_user_number as avg_rating, b.rating_user_number from movies_item a, ( select movieId, sum(rating) ratings, count(1) as rating_user_number from ratings_item group by movieId ) b where rating_user_number > 3 and a.movieId = b.movieId order by avg_rating desc limit 10图3 脚本(top_rating_movie)
- 脚本调试无误后,单击“保存并提交版本”提交该脚本,脚本名称为“top_rating_movie”。后续开发并调度作业引用该脚本。
- 脚本保存完成且运行成功后,可以参考步骤3新建DWS SQL脚本,执行如下SQL语句查看top_rating_movie表数据。您还可以参考图4,下载或转储表数据。
SET SEARCH_PATH TO dgc; SELECT * FROM top_rating_movie
最活跃Top10电影的计算方法是:平均评分大于3.5的电影中用户评分数最多的10部电影。
- 登录DataArts Studio管理控制台。
详情请参考访问DataArts Studio实例控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。 图5 新建脚本
- 在新建脚本弹出的SQL编辑器中,填写关键参数。 图6 关键参数
输入如下SQL语句,单击“运行”,从movies_item和ratings_item表中计算出最活跃的Top10电影,将结果存放到top_active_movie表。SET SEARCH_PATH TO dgc; insert overwrite into top_active_movie select * from ( select a.movieTitle, b.ratingSum / b.rating_user_number as avg_rating, b.rating_user_number from movies_item a, ( select movieId, sum(rating) ratingSum, count(1) as rating_user_number from ratings_item group by movieId ) b where a.movieId = b.movieId ) t where t.avg_rating > 3.5 order by rating_user_number desc limit 10图7 脚本(top_active_movie)
- 脚本调试无误后,单击“保存并提交版本”提交该脚本,脚本名称为“top_active_movie”。后续开发并调度作业引用该脚本。
- 脚本保存完成且运行成功后,可以参考步骤3新建DWS SQL脚本,执行如下SQL语句查看top_active_movie表数据。您还可以参考图8,下载或转储表数据。
SET SEARCH_PATH TO dgc; SELECT * FROM top_active_movie
开发并调度作业
假设OBS中“movie”和“rating”表是每日更新的,我们希望每天更新Top10电影,那么这里可以使用数据开发的作业编排和作业调度功能。
- 登录DataArts Studio管理控制台。
详情请参考访问DataArts Studio实例控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 创建一个批处理作业,作业名称为“topmovie”。 图9 新建作业
图10 配置作业
- 在作业开发页面,拖动2个CDM Job节点、3个Dummy节点和2个DWS SQL节点到画布中,选中连线图标
并拖动,编排图11所示的作业。 表3 关键节点 关键节点
说明
Begin(Dummy节点)
不执行任何操作,只作为起始点的标识。
movies_obs2dws(CDM Job节点)
在节点属性中,选择步骤2:数据集成中的CDM集群,并关联CDM作业“movies_obs2dws”。
ratings_obs2dws(CDM Job节点)
在节点属性中,选择步骤2:数据集成中的CDM集群,并关联CDM作业“ratings_obs2dws”。
Waiting(Dummy节点)
不执行任何操作,作为等待前侧节点执行结束的标识。
top_rating_movie(DWS SQL节点)
在节点属性中,关联创建DWS SQL脚本top_rating_movie中开发完成的DWS SQL脚本“top_rating_movie”。
top_active_movie(DWS SQL节点)
在节点属性中,关联创建DWS SQL脚本top_active_movie中开发完成的DWS SQL脚本“top_active_movie”。
Finish(Dummy节点)
不执行任何操作,只作为结束点的标识。
- 作业编排完成后,单击
,测试运行作业。 - 如果作业运行正常,单击“调度配置”,配置作业的调度策略。 图12 调度配置
表4 调度配置参数 参数
说明
调度方式
本示例中选择“周期调度”。
调度属性
请根据业务需要配置作业的生效时间范围(如2022/02/09至2022/02/28),每天1点00分执行一次作业。
依赖属性
可以配置为依赖其他作业运行,本例不涉及,无需配置。
跨周期依赖
可以选择配置为自依赖或者不依赖上一周期,此处配置为不依赖上一周期即可。
- 最后保存并提交版本(单击
),执行调度作业(单击
)。实现作业每天自动运行,Top10电影的结果自动保存到“top_active_movie”和“top_rating_movie”表。 - 您如果需要及时了解作业的执行结果是成功还是失败,可以通过数据开发的运维调度界面进行查看,如图13所示。
数据开发还支持配置通知管理,可以选择配置当作业运行异常/失败后,通过短信、邮件、控制台等多种方式提醒,此处不再展开描述。
至此,基于电影评分的数据集成与开发流程示例完成。此外,您还可以根据原始数据,分析不同类型电影的评分、浏览情况等,为营销决策、广告推荐、用户行为预测等提供高质量的信息。



