2024年重庆_甘肃_安徽等省职业院校技能大赛_大数据应用开发样题解析-模块B:数据采集-任务一:离线数据采集
任务描述
编写Scala 工程代码, 将MySQL 的ds_db01 库中表order_master、order_detail、coupon_info、coupon_use、product_browse、product_info、customer_inf 、customer_login_log 、order_cart 、customer_level_inf 、 customer_addr 的数据增量抽取到Hive 的ods 库中对应表order_master、order_detail、coupon_info、coupon_use、product_browse、product_info、customer_inf 、customer_login_log 、order_cart 、customer_level_inf 、customer_addr 中(ods 库中部分表没有数据,正常抽取即可)。
任务分析
如果这些表在后续的数据处理和计算中使用到,还情有可原;如果大部分表在后续的数据处理和计算中没有用到,这样的题目可谓是“老太太的裹脚布,又臭又长”。
任务描述中提到,“(ods 库中部分表没有数据,正常抽取即可)”,意思也就是,在ods库中部分表是没有存量数据的,对于这些表直接全量抽取即可;对于有存量数据的,则需要增量抽取。
但是,这里赛方挖了一个比赛环境的坑,即存量数据表(Hive表)是如何创建的?大家都知道,Hive的存储格式和Spark的存储格式是有所不同的,如果不知道存量数据Hive表的存储格式,则在使用Spark做ETL增量写入的时候,则会遇到格式不兼容的问题,从而造成写入失败。这时可能会遇到了类似下面这样的错误信息:
org.apache.spark.sq ............
抱歉,只有登录会员才可浏览!会员登录