更新时间:2023-06-13 GMT+08:00

步骤3:数据开发

本步骤通过电影信息和评分信息的原始数据,分析评分最高的Top10电影和最活跃的Top10电影,然后通过作业定期调度执行并将结果每日导出到表中,以支撑信息分析。

创建DWS SQL脚本top_rating_movie(用于存放评分最高的Top10电影)

评分最高Top10电影的计算方法是:先计算出每部电影的总评分和参与评分的用户数,过滤掉参与评分的用户数小于3的记录,返回电影名称、平均评分和参与评分用户数。

  1. 登录DataArts Studio控制台。选择实例,点击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。

    图1 选择数据开发

  2. 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。

    图2 新建脚本

  3. 在新建脚本弹出的SQL编辑器中输入如下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)

    关键参数说明:
    • 数据连接:步骤3中创建的DWS数据连接。
    • 数据库:步骤5中创建的数据库。

  4. 脚本调试无误后,点击“保存并提交版本”提交该脚本,脚本名称为“top_rating_movie”。在后续开发并调度作业引用该脚本。
  5. 脚本保存完成且运行成功后,您可通过如下SQL语句查看top_rating_movie表数据。您还可以参考图4,下载或转储表数据。

    SET SEARCH_PATH TO dgc;
    SELECT * FROM top_rating_movie
    图4 查看top_rating_movie表数据

创建DWS SQL脚本top_active_movie(用于存放最活跃的Top10电影)

最活跃Top10电影的计算方法是:平均评分大于3.5的电影中用户评分数最多的10部电影。

  1. 登录DataArts Studio控制台。选择实例,点击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。

    图5 选择数据开发

  2. 创建一个DWS SQL脚本,以通过DWS SQL语句来创建数据表。

    图6 新建脚本

  3. 在新建脚本弹出的SQL编辑器中输入如下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)
    关键参数说明:
    • 数据连接:步骤3中创建的DWS数据连接。
    • 数据库:步骤5中创建的数据库。

  4. 脚本调试无误后,点击“保存并提交版本”提交该脚本,脚本名称为“top_active_movie”。在后续开发并调度作业引用该脚本。
  5. 脚本保存完成且运行成功后,您可通过如下SQL语句查看top_active_movie表数据。您还可以参考图8,下载或转储表数据。

    SET SEARCH_PATH TO dgc;
    SELECT * FROM top_active_movie
    图8 查看top_active_movie表数据

开发并调度作业

假设OBS中“movie”“rating”表是每日更新的,我们希望每天更新Top10电影,那么这里可以使用DLF作业编排和作业调度功能。

  1. 登录DataArts Studio控制台。选择实例,点击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。

    图9 选择数据开发

  2. 创建一个DLF批处理作业,作业名称为“topmovie”

    图10 新建作业
    图11 配置作业

  3. 在作业开发页面,拖动2个CDM Job节点、3个Dummy节点和2个DWS SQL节点到画布中,选中连线图标并拖动,编排图12所示的作业。

    图12 连接和配置节点属性

    关键节点说明:

    • 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节点):不执行任何操作,只作为结束点的标识。

  4. 作业编排完成后,单击,测试运行作业。
  5. 如果作业运行正常,单击“调度配置”,配置作业的调度策略。

    图13 调度配置

    说明:

    • 2022/02/09至2022/02/28,每天1点00分执行一次作业。
    • 依赖属性:可以配置为依赖其他作业运行,本例不涉及,无需配置。
    • 跨周期依赖:可以选择配置为依赖上一周期或者不依赖,此处配置为不依赖即可。

  6. 最后保存并提交版本(单击),执行调度作业(单击)。实现作业每天自动运行,Top10电影的结果自动保存到“top_active_movie”“top_rating_movie”表。
  7. 您如果需要及时了解作业的执行结果是成功还是失败,可以通过数据开发的运维调度界面进行查看,如图14所示。

    图14 查看作业执行情况

数据开发还支持配置通知管理,可以选择配置当作业运行异常/失败后,进行短信、邮件、控制台等多种方式提醒,此处不再展开描述。

至此,基于电影评分的数据集成与开发流程示例完成。此外,您还可以根据原始数据,分析不同类型电影的评分、浏览情况等,为营销决策、广告推荐、用户行为预测等提供高质量的信息。