更新于:

模块B题目

模块 B:数据采集(15分)

环境说明: 服务端登录地址详见各模块服务端说明。 补充说明: 各节点可通过 Asbru 工具或 SSH 客户端进行SSH访问; 主节点 MySQL 数据库用户名/密码:root/123456(已配置远程连接); Hive的配置文件位于主节点/opt/module/hive-3.1.2/conf/ Spark 任务在Yarn 上用 Client 运行,方便观察日志; 建议使用 gson 解析 json 数据。 ———— 2023年福建省赛题目

任务一:离线数据采集

编写Scala工程代码,将 MySQL 的 dsdb01 库中表 order_masterorder_detailcoupon_infocoupon_useproduct_browseproduct_infocustomer_infcustomer_login_logorder_cartcustomer _level_infcustomer_addr 的数据增量抽取到 Hive 的 ods 库中对应表 order_masterorder_detailcoupon_infocoupon_useproduct_browseproduct_infocustomer_inf 、customer_ login_log 、 order_cartcustomer_level_infcustomer_addr 中( ods 库中部分表没有数据,正常抽取即可)。

  1. 抽取 ds_db01 库中 order_master 的增量数据进入 Hive 的 ods 库中表 order_master 。根据 ods .order_master 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行 show partitions ods .order_master 命令,将执行结果截图粘贴至客户端桌面【Release\模块B提交结果.docx】中对应的任务序号下;
  2. 抽取 ds_db01 库中 order_detail 的增量数据进入 Hive 的 ods 库中表 order_detail 。根据 ods .order_detail 表中 modified_time 作为增量字段只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用hive cli执行 show partitions ods .order_detail 命令,将执行结果截图粘贴至客户端桌面【Release\模块B提交结果.docx】中对应的任务序号下;
  3. 抽取 ds_db01 库中 coupon_info 的增量数据进入Hive的 ods 库中表 coupon_info ,根据 ods .coupon_info 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行 show partitions ods .coupon_info 命令,将执行结果截图粘贴至客户端桌面【Release\模块B 提交结果.docx】中对应的任务序号下;
  4. 抽取 ds_db01 库中 coupon_use 的增量数据进入Hive的 ods 库中表 coupon_use ,增量字段取 ods.coupon_use 表中 get_time、used_time、pay_time 中的最大者,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。使用Hive Cli 查询最新分区数据总条数,将执行结果截图粘贴至客户端桌面【Release\模块 B 提交结果.docx】中对应的任务序号下;
  5. 抽取 ds_db01 库中 product_browse 的增量数据进入 Hive的 ods 库中表 product_browse ,根据 ods.product_browse 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行 show partitions ods.product_browse 命令,将执行结果截图粘贴至客户端桌面【Release模块B提交结果.docx】中对应的任务序号下。
  6. 抽取 ds_db01 库中 product_info 的增量数据进入 Hive 的 ods 库中表 product_info ,根据 ods.product_info 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行show partitions ods.product_info 命令,将执行结果截图粘贴至客户端桌面【Release 模块B提交结果.docx】中对应的任务序号下;
  7. 抽取 ds_db01 库中 customer_inf 的增量数据进入 Hive 的 ods 库中表 customer_inf ,根据 ods.customer_inf 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行show partitions ods.customer_inf 命令,将执行结果截图粘贴至客户端桌面【Release\模块B 提交结果.docx】中对应的任务序号下;
  8. 抽取 ds_db01 库中 customer_login_log 的增量数据进入Hive的 ods 库中表 customer_login_log ,根据 ods.customer_login_log 表中 login_time 作增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区分区字段为 etl_date ,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行 show partitions ods.customer_login_log 命令,将执行结果截图粘贴至客户端桌面【Release模块B提交结果.docx】中对应的任务序号下;
  9. 抽取 ds_db01 库中 order_cart 的增量数据进入 Hive 的 ods 库中表 order_cart ,根据 ods.order_cart 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli 执行 show partitions ods.order_cart 命令,将执行结果截图粘贴至客户端桌面【Release\模块 B 提交结果.docx】中对应的任务序号下;
  10. 抽取 ds_db01 库中 customer_addr 的增量数据进入 Hive的 ods 库中表 customer_addr ,根据 ods.customer_addr 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)。使用 hive cli执行 show partitions ods.customer_addr 命令,将执行结果截图粘贴至客户端桌面【Release\模块 B提交结果.docx】中对应的任务序号下;
  11. 抽取 ds_db01 库中 customer_level_inf 的增量数据进入Hive的 ods 库中表 customer_level_inf ,根据 ods.customer_level_inf 表中 modified_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段为 etl_date ,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。使用 hive cli 执行 show partitions ods.customer_level_inf 命令,将执行结果截图粘贴至客户端桌面【Release\模块B提交结果.docx】中对应的任务序号下。