助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】

这篇具有很好参考价值的文章主要介绍了助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

知识点13:ODS层构建:申明分区代码及测试

  • 目标:阅读ODS申明分区的代码及实现测试

  • 路径

    • step1:代码讲解
    • step2:代码测试
  • 实施

    • 代码讲解

      • step1:为什么要申明分区?

        • 表的分区数据由Sqoop采集到HDFS生成AVRO文件

          /data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas/20210101/part-m-00000.avro
          
        • HiveSQL基于表的目录实现了分区表的创建

          create external table if not exists one_make_ods.ciss_base_areas 
          partitioned by (dt string) 
          ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
          STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
          OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
          tblproperties ('avro.schema.url'='hdfs:///data/dw/ods/one_make/avsc/CISS4_CISS_BASE_AREAS.avsc')
          location '/data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas'
          
        • 但是Hive中没有对应分区的元数据,无法查询到数据

      • step2:怎么申明分区?

        • Alter Table

          alter table 表名 add if not exists partition (dt='值')
          location 'HDFS上的分区路径'
          
        • 例如

          alter table one_make_ods.ciss_base_areas add if not exists partition (dt='20210101')
          location '/data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas/20210101'
          
      • step3:如何自动化实现每个表的分区的申明?

        • 获取分区工具类实例
        • 调用申明分区的方法
          • 对所有全量表调用申明分区的方法:数据库名称、表名、全量标记、分区值
          • 对所有增量表调用申明分区的方法:数据库名称、表名、增量标记、分区值
        • 拼接SQL
        • 执行SQL
    • 代码测试

      • 注释掉第5 ~ 第6阶段的内容
    • 运行代码,查看结果

  • 小结文章来源地址https://www.toymoban.com/news/detail-458093.html

    • 阅读ODS申明分区的代码及实现测试

知识点14:ODS层与DWD层区别

  • 目标:理解ODS层与DWD层的区别

  • 路径

    • step1:内容区别
    • step2:设计区别
    • step3:实现区别
  • 实施

    • 内容区别

      • ODS:原始数据
      • DWD:对ODS层ETL以后的数据
      • 本次数据来源于Oracle数据库,没有具体的ETL的需求,可以直接将ODS层的数据写入DWD层
    • 设计区别

      • ODS层:Avro格式分区数据表
      • DWD层:Orc格式分区数据表
    • 实现区别

      • ODS层建表:基于avsc文件指定Schema建表

        create external table if not exists one_make_ods.ciss_base_areas 
        partitioned by (dt string) 
        ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
        STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
        OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
        tblproperties ('avro.schema.url'='hdfs:///data/dw/ods/one_make/avsc/CISS4_CISS_BASE_AREAS.avsc')
        location '/data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas'
        
      • DWD层建表:自己指定每个字段的Schema建表

        create external table if not exists one_make_dwd.ciss_base_areas(
        	ID string,
        	AREANAME string,
        	PARENTID string,
        	SHORTNAME string,
        	LNG string,
        	LAT string,
        	RANK bigint,
        	POSITION string,
        	SORT bigint
        ) partitioned by (dt string) 
        stored as orc
        location '/data/dw/dwd/one_make/ciss_base_areas';
        
  • 小结

    • 理解ODS层与DWD层的区别

知识点15:DWD层构建:需求分析

  • 目标掌握DWD层的构建需求

  • 路径

    • step1:整体需求
    • step2:建库需求
    • step3:建表需求
  • 实施

    • 整体需求:将ODS层的数据表直接加载到DWD层

      insert into  dwd partition (dt = '20210101')
      select
      	*
      from ods
      where dt=20210101
      
    • 建库需求:创建DWD层数据库one_make_dwd

    • 建表需求:将ODS层中的每一张表创建一张对应的DWD层的表

      • 问题1:建表的语法是什么?

        create external table dwd.tbname(
        	字段名 字段类型 字段注释
        )
        partitioned by (dt string)
        location '/data/dw/dwd/one_make/ciss_base_areas';
        
      • 问题2:表的名称名是什么,怎么获取?

        • 不分全量和增量
        • 所有表的名称都在列表中
      • 问题3:表的注释怎么来?

        • Oracle元数据中有
      • 问题4:表的字段怎么获取?

        • Oracle元数据中有
      • 问题5:Oracle中的字段类型如果与Hive中的类型不一致怎么办?

        • 将Oracle中Hive没有类型转换为Hive的类型
  • 小结

    • 掌握DWD层的构建需求

知识点16:DWD层构建:建库实现测试

  • 目标阅读DWD建库代码及实现测试

  • 路径

    • step1:代码讲解
    • step2:代码测试
  • 实施

    • 代码讲解

      • step1:DWD层的数据库名称是什么,建库的语法是什么?

        create database if not exists one_make_dwd;
        
      • step2:如何实现DWD层数据库的构建?

        cHiveTableFromOracleTable.executeCreateDbHQL(CreateMetaCommon.DWD_NAME)
        
    • 代码测试

      • 注释掉第5.2 ~ 第6阶段的内容

      • 运行代码,查看结果

        助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】

  • 小结

    • 阅读DWD建库代码及实现测试

知识点17:DWD层构建:建表实现测试

  • 目标阅读DWD建表代码及实现测试

  • 路径

    • step1:代码讲解
    • step2:代码测试
  • 实施

    • 代码讲解

      • step1:如何获取所有表名?

        allTableName = [i for j in tableNameList for i in j]
        
        • 列表推导式
      • step2:建表的语句是什么,哪些是动态变化的?

        create external table if not exists one_make_dwd.ciss_base_areas(
        	ID string comment '字段的注释',
        	AREANAME string comment '字段的注释',
        	PARENTID string comment '字段的注释',
        	SHORTNAME string comment '字段的注释',
        	LNG string comment '字段的注释',
        	LAT string comment '字段的注释',
        	RANK bigint comment '字段的注释',
        	POSITION string comment '字段的注释',
        	SORT bigint comment '字段的注释'
        ) 
        comment '表的注释'
        partitioned by (dt string) stored as orc
        location '/data/dw/dwd/one_make/ciss_base_areas';
        
        • 动态变化的信息如下:
          • 表名,表的注释
          • 字段
          • 路径
      • step3:怎么获取字段信息?

      • step4:Oracle字段类型与Hive/SparkSQL字段类型不一致怎么办?

        • timestamp => long
        • number => bigint | dicimal
        • other => String
      • step4:HDFS上的路径是什么?

        /data/dw/dwd/one_make/tableName
        
      • step5:如何实现自动化

        • 遍历表名,对每张表调用自动化建表的方法:数据库名称、表的名称、None【不分全量或者增量】
        • 从Oracle中获取字段名,并实现类型转换
        • 添加表的注释、分区信息
        • 添加表的存储格式
        • 指定表的存储路径
        • 执行SQL语句
    • 代码测试

      • 注释掉 第6阶段的内容

      • 运行代码,查看结果

        助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】

  • 小结

    • 阅读DWD建表代码及实现测试

到了这里,关于助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 助力工业物联网,工业大数据之一站制造业务主题划分【十三】

    目标 : 掌握一站制造的主题域及主题的划分 实施 来源 主题域划分:业务或者部门划分 业务:客户域、广告域、运营域…… 部门:运维域、财务域、销售域…… 数据需求来划分主题 运营域:访问分析报表、转化分析报表、用户属性分析报表、订单分析报表 服务域 安装主

    2024年02月10日
    浏览(43)
  • EMQ & 明道云:零代码高效构建工业物联网设备管理平台

    智能物联网设备在 IIoT 场景中有着广泛的应用,但如何管理和监控这些设备是一个挑战。 明道云是一家专业的 hpaPaaS 平台服务商,其所开发的 明道云平台 (Mingdao Cloud)是一个企业软件设计和开发工具,让企业可以低代码或无代码搭建个性化的 CRM、ERP、OA、项目管理、进销存

    2024年02月11日
    浏览(40)
  • 助力工业物联网,工业大数据之服务域:node_exporter插件【三十七】_node_expoter 电源(1)

    小结 实现node_exporter插件的安装监控Linux指标 07:mysqld_exportor插件 目标 : 实现mysqld_exportor插件的安装监控MySQL指标 实施 上传安装 配置MySQL用户授权 注册服务 启动服务 配置Prometheus 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入

    2024年04月15日
    浏览(34)
  • 探工业互联网的下一站!腾讯云助力智造升级

    数字化浪潮正深刻影响着传统工业形态。作为第四次工业革命的重要基石,工业互联网凭借其独特的价值快速崛起,引领和推动着产业变革方向。面对数字化时代给产业带来的机遇与挑战,如何推动工业互联网的规模化落地,加速数字经济与实体经济的深度融合,已成为全行

    2024年02月11日
    浏览(42)
  • Ruff物联网数采网关助力工业企业数字化转型,降本增效

    如今,随着工厂数字化转型进程的加速,越来越多的企业对于设备数据感知层及传输层的应用越来越重视,因此工业数采网关也走进了很多人的视野,在工厂数字化转型中扮演着关键角色。 物联网数据采集网关能将各种传感器、执行器等设备连接在一起,通过收集、处理和传

    2024年02月03日
    浏览(50)
  • 助力工业园区作业违规行为检测预警,基于YOLOv3开发构建工业园区场景下作业人员违规行为检测识别系统

    在很多工业园区生产作业场景下保障合规合法进行作业生产操作,对于保护工人生命安全降低安全隐患有着非常重要的作用,但是往往在实际的作业生产中,因为一个安全观念的淡薄或者是粗心大意,对于纪律约束等意思薄弱,导致在进行正常的作业生产中并没有按照安全规

    2024年01月20日
    浏览(52)
  • 助力工业园区作业违规行为检测预警,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建工业园区场景下作业人员违规行为检测识别系统

    在很多工业园区生产作业场景下保障合规合法进行作业生产操作,对于保护工人生命安全降低安全隐患有着非常重要的作用,但是往往在实际的作业生产中,因为一个安全观念的淡薄或者是粗心大意,对于纪律约束等意思薄弱,导致在进行正常的作业生产中并没有按照安全规

    2024年02月01日
    浏览(115)
  • 低代码助力制造业数智转型,激发创新力迎接工业 4.0

    nbsp; nbsp; nbsp; nbsp;随着科技的不断进步,我们迈入了一个崭新的工业时代——工业4.0。这场工业革命不仅颠覆了制造业的传统形象,还为全球生产方式带来了前所未有的变革。 nbsp; nbsp; nbsp; nbsp;在这一过程中,制造业数字化转型逐渐成为主旋律,而低代码技术在这其中发挥着

    2024年01月17日
    浏览(45)
  • 低代码:工业互联网从“学步”到“奔跑”的加速器

    一、政策、技术合力推进,工业互联网发展提速 工业制造业曾经创造了我国的崛起神话,最近几年,随着新闻中一些老牌制造业厂商的闭幕,很多人都开始思考: 未来工业会是什么样子? 放眼全球,各国对于工业的发展早有布局,都在寻求智能制造的产业升级,以期在全球

    2024年02月10日
    浏览(51)
  • 为场景打造工具,启业云面向工业互联网的融代码平台

    《中智观察》第 1730 篇推送 作者:木易 编辑:益韩 编审:杨小天 头图来源:启业云 “启业云是为场景打造工具,而非为工具选择场景。”这是访谈中,启业云创始人CEO王聪明反复提及的一句话。 同时,对于业内“基于低代码平台构建的应用只能用于轻量长尾场景”这一观

    2024年02月02日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包