全国职业院校技能大赛-大数据 离线数据处理模块-数据清洗

这篇具有很好参考价值的文章主要介绍了全国职业院校技能大赛-大数据 离线数据处理模块-数据清洗。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

子任务2:数据清洗

        编写Hive SQL代码,将ods库中相应表数据全量抽取到Hive的dwd库中对应表中。表中有涉及到timestamp类型的,均要求按照yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加00:00:00,添加之后使其符合yyyy-MM-dd HH:mm:ss。

  1. 抽取ods库中environmentdata的全量数据进入Hive的dwd库中表fact_environment_data,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写当前操作时间,并进行数据类型转换。使用hive cli按照envoid降序排序,查询前5条数据,将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下;
    set hive.exec.dynamic.partition.mode=nonstrict;
    insert overwrite table dwd.act_environment_data partition (etldate)
    select
        id,
        name,
        'user1',
        date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
        'user1',
        date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
        etldate
    from (
         select
             id,    -- 我这里使用的是简单的测试字段,具体的字段名称看比赛环境而定
             name,
             etldate
         from ods.environmentdata
    ) t1;

    使用hive cli按照envoid降序排序,查询前5条数据

    select
        *
    from dwd.act_environment_data
    order by envoid desc
    limit 5;
  2. 抽取ods库中changerecord的全量数据进入Hive的dwd库中表fact_change_record,抽取数据之前需要对数据根据changeid和changemachineid进行联合去重处理,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写当前操作时间,并进行数据类型转换。使用hive cli按照change_machine_id降序排序,查询前1条数据,将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下;
    -- 这里因为没有数据,具体的字段用注释来代替
    -- 通过group by对changeid,changemachineid进行组合分组
    -- 然后通过过滤之后的changeid,changemachineid连接此表的其他字段
    insert overwrite table fact_change_record partition (etldate)
    select
        -- t2的其他字段
        t1.changeid,
        t1.changemachineid,
        'user1',
        date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
        'user1',
        date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
        etldate -- 动态分区字段
    from (
         select
             changeid,
             changemachineid
         from ods.changerecord
         group by changeid,changemachineid
    ) t1
    left join (
        select
            -- 其他字段
            changeid,
            changemachineid,
            etldate
        from ods.changerecord
    ) t2 on t1.changeid = t2.changeid
    and t1.changemachineid = t2.changemachineid

    使用hive cli按照change_machine_id降序排序

    select
        *
    from dwd.fact_change_record
    order by change_machine_id desc
    limit 1;

3. 抽取ods库中basemachine的全量数据进入Hive的dwd库中表dim_machine,抽取数据之前需要对数据根据basemachineid进行去重处理。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写当前操作时间,并进行数据类型转换。使用hive cli按照base_machine_id升序排序,查询dim_machine前2条数据,将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下

insert overwrite table dwd.dim_machine partition (etldate)
select
    -- 其他字段,
    base.basemachineid,
    'user1',
    date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
    'user1',
    date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
    etldate
from (
     select
         basemachineid
     from ods.basemachine
     group by basemachineid
) base
left join (
    select
        -- 其他字段
        basemachineid,
        etldate
    from ods.basemachine
) t on base.basemachineid = t.basemachineid;

使用hive cli按照base_machine_id升序排序,查询dim_machine前2条数据

select
    *
from dwd.dim_machine
order base_machine_id asc
limit 2;

4. 抽取ods库中producerecord的全量数据进入Hive的dwd库中表fact_produce_record,分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写当前操作时间,并进行数据类型转换。使用hive cli按照produce_machine_id升序排序,查询fact_produce_record前2条数据,将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下;

insert overwrite table dwd.fact_produce_record partition (etldate)
select
    -- t表中的其他字段
    produce_machine_id,
    'user1',
    date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
    'user1',
    date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
    etldate
from (
     select
         -- 其他字段,
         produce_machine_id,
         etldate
     from ods.producerecord
) t

用hive cli按照produce_machine_id升序排序,查询fact_produce_record前2条数据

select
    *
from dwd.fact_produce_record
order by produce_machine_id asc
limit 2;

5. 抽取ods库中machinedata的全量数据进入Hive的dwd库中表fact_machine_data。分区字段为etldate且值与ods库的相对应表该值相等,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time四列,其中dwd_insert_user、dwd_modify_user均填写“user1”,dwd_insert_time、dwd_modify_time均填写当前操作时间,并进行数据类型转换。使用hive cli按照machine_id降序排序,查询前1条数据,将结果截图粘贴至客户端桌面【Release\任务B提交结果.docx】中对应的任务序号下。

insert overwrite table dwd.fact_machine_data partition (etldate)
select
    -- t表中的其他字段
    machine_id,
    'user1',
    date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
    'user1',
    date_format(current_date(), 'yyyyMMdd HH:mm:ss'),
    etldate
from (
         select
             -- 其他字段,
             machine_id,
             etldate
         from ods.machinedata
) t

使用hive cli按照machine_id降序排序,查询前1条数据

select
    *
from fact_machine_data
order by machine_id
limit 1;

数据清洗主要是对SQL去重的考察,这里主要使用group by 的方式对字段进行去重,因为没有涉及到分组聚合的功能,因此本小节也不是很难实现文章来源地址https://www.toymoban.com/news/detail-782694.html

到了这里,关于全国职业院校技能大赛-大数据 离线数据处理模块-数据清洗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022全国职业院校技能大赛软件测试赛项解析

    随着时间的流逝,2022的赛项规程和赛项赛题也在3月24号全部官网发布了,看了下其他的赛项赛项组委会今年改革真的狠要求每个赛项公布十套题,看着软测赛项又有无力吐槽点都是看到第一眼都是懵的(公布的试题练习只有软测每次都是这样,自己去赛项规程和赛项试题去寻

    2023年04月09日
    浏览(27)
  • 2023年全国职业院校技能大赛-信息安全管理与评估-赛题 1

    目录 信息安全管理与评估 赛题一 模块一 网络平台搭建与设备安全防护 任务1:网络平台搭建 (50分) 任务2:网络安全设备配置与防护(250分) 模块二 网络安全事件响应、数字取证调查、应用程序安全 竞赛项目赛题 介绍 所需的设备、机械、装置和材料 评分方案 项目和任

    2024年02月06日
    浏览(33)
  • 2022 年全国职业院校技能大赛高职组云计算赛项试卷-容器云-1

    2022 年全国职业院校技能大赛高职组云计算赛项试卷 ........ 【任务 1 】容器云平台搭建[5 分] 【适用平台】私有云 【题目 1】平台部署--部署容器云平台[1.5 分] 登录 OpenStack 私有云平台,使用 CentOS7.9 镜像创建两台云主机,使用 kubeeasy 工具完成 Kubernetes 1.22.1 集群的搭建。然后

    2024年02月12日
    浏览(34)
  • 2023年全国职业院校技能大赛网络建设与运维样题理论题答案

                                                                      禁止侵权,禁止转载                                                         1.贵公司正在评估数据中心虚拟化技术,要求您解释第1类和第2类虚拟化管理程序之间的区别。以下哪项是第1类虚拟

    2024年02月07日
    浏览(40)
  • 2023年全国职业院校技能大赛-高职组-物联网应用开发-任务书(第1套卷)

    目录 第一部分 竞赛须知 一、竞赛要求 二、职业素养与安全意识 三、扣分项 四、选手须知 第二部分 竞赛设备及注意事项 一、注意事项 二、硬件环境 第三部分竞赛任务 模块一 物联网方案设计与升级改造(40分) 模块二 物联网应用开发与调试(60分) 1、正确使用工具,

    2024年02月08日
    浏览(39)
  • 教育部办公厅关于印发《全国职业院校技能大赛执行规划(2023—2027年)》的通知

    全国职业院校技能大赛执行规划 (2023—2027年) 完善选手奖励政策。探索建立和完善分层分级的大赛获奖师生奖励制度。鼓励各地协调联合主办单位,借鉴相关做法,在授予技术能手、青年岗位能手称号和职业技能等级评定等方面出台相关办法和举措;完善大赛获奖选手在升

    2024年02月01日
    浏览(26)
  • 2023年全国职业院校技能大赛信息安全管理与评估网络安全渗透任务书

    全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 任务书 模块三 网络安全渗透、理论技能与职业素养 比赛时间及注意事项 本阶段比赛时长为180分钟,时间为 9:00-12:00。 【注意事项】 (1)通过找到正确的flag值来获取得分,flag统一格式如下所示: flag{flag值 } 这种

    2024年02月10日
    浏览(33)
  • 2023年全国职业院校技能大赛-高职组-物联网应用开发-任务书(第6套卷)

    目录 第一部分 竞赛须知 一、竞赛要求 二、职业素养与安全意识 三、扣分项 四、选手须知 第二部分 竞赛设备及注意事项 一、注意事项 二、硬件环境 第三部分竞赛任务 模块一 物联网方案设计与升级改造(40分) 子任务1-1 感知层设备安装与调试 1、设备选型、布局与安装连

    2024年02月08日
    浏览(42)
  • 全国职业院校技能大赛-嵌入式系统应用开发赛项-竞赛任务书(第5套)

    目录 全国职业院校技能大赛嵌入式系统应用开发赛项 竞赛模块: 模块一 竞赛注意事项 第一模块 嵌入式系统硬件制作与驱动开发 竞赛任务书(第5套) 一、总体要求 二、竞赛任务表 竞赛模块: 模块二 竞赛注意事项 第二模块 嵌入式系统应用程序开发 竞赛任务书(第5套)

    2024年02月04日
    浏览(37)
  • 全国职业院校技能大赛-嵌入式系统应用开发赛项-竞赛任务书(第9套)

    目录 全国职业院校技能大赛嵌入式系统应用开发赛项 竞赛模块: 模块一 竞赛注意事项 第一模块 嵌入式系统硬件制作与驱动开发 竞赛任务书(第9套) 一、总体要求 二、竞赛任务表 竞赛模块: 模块二 竞赛注意事项 第二模块 嵌入式系统应用程序开发 竞赛任务书(第9套)

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包