助力工业物联网,工业大数据之ODS层构建:需求分析【八】_工业大数据 标签

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 需求:加载Sqoop生成的Avro的Schema文件,实现自动化建表

  • 分析

    • step1:代码中构建一个Hive/SparkSQL的连接
    • step2:创建ODS层数据库
    create database if not exists one_make_ods;
    
    
    • step3:创建ODS层全量表:44张表
    create external table one_make_ods_test.ciss_base_areas
    
    comment '行政地理区域表'
    
    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'
    
    location '/data/dw/ods/one\_make/full\_imp/ciss4.ciss\_base\_areas'
    
    TBLPROPERTIES ('avro.schema.url'='hdfs://bigdata.maynor.cn:9000/data/dw/ods/one\_make/avsc/CISS4\_CISS\_BASE\_AREAS.avsc');
    
    
      - 读取全量表表名
      
      
      	* 动态获取表名:循环读取文件
      - 获取表的信息:表的注释
      
      
      	* Oracle:表的信息
      	* 从Oracle中获取表的注释
      - 获取表的文件:HDFS上AVRO文件的地址
      
       
      ```
      /data/dw/ods/one_make/full_imp
      
      ```
      - 获取表的Schema:HDFS上的Avro文件的Schema文件地址
      
       
      ```
      /data/dw/ods/one_make/avsc
      
      ```
      - 拼接建表字符串
      
      
      	* 方式一:直接相加:简单
      	
      	 
      	```
      	str1 = "I "
      	str2 = "like China"
      	str3 = str1 + str2
      	
      	```
      	* 方式二:通过列表拼接:复杂
      - 执行建表SQL语句
    
    • step4:创建ODS层增量表:57张表

      • 读取增量表表名

        • 动态获取表名:循环读取文件
      • 获取表的信息:表的注释

        • Oracle:表的信息
        • 从Oracle中获取表的注释
      • 获取表的文件:HDFS上AVRO文件的地址

      /data/dw/ods/one_make/incr_imp
      
      
      • 获取表的Schema:HDFS上的Avro文件的Schema文件地址
      /data/dw/ods/one_make/avsc
      
      
      • 拼接建表字符串
      • 执行建表SQL语句
  • 小结

    • 掌握ODS层构建的实现需求

02:ODS层构建:创建项目环境

  • 目标实现Pycharm中工程结构的构建

  • 实施

    • 安装Python3.7环境

    image-20210930150020688

      - 项目使用的Python3.7的环境代码,所以需要在Windows中安装Python3.7,与原先的Python高版本不冲突,正常安装即可
    
    • 创建Python工程

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    • 安装PyHive、Oracle库

      • step1:在Windows的用户家目录下创建pip.ini文件

        • 例如:C:\Users\Frank\pip\pip.ini
        • 内容:指定pip安装从阿里云下载
        [global]
        
        index-url=http://mirrors.aliyun.com/pypi/simple/
        
        [install]
        
        trusted-host=mirrors.aliyun.com
        
        
      • step2:将文件添加到Windows的Path环境变量

      image-20210930150905946

      • step3:进入项目环境目录

        • 例如我的项目路径是:D:\PythonProject\OneMake_Spark\venv\Scripts

        image-20210930151306714

        • 将提供的sasl-0.2.1-cp37-cp37m-win_amd64.whl文件放入Scripts目录下

        image-20210930151549478

        • 在CMD中执行以下命令,切换到Scripts目录下
        #切换到D盘
        D:
        #切换到项目环境的Scripts目录下
        cd D:\PythonProject\OneMake_Spark\venv\Scripts
        
        

        image-20210930151448348

      • step4:CMD中依次执行以下安装命令

      # 安装sasl包 -> 使用pycharm安装,会存在下载失败情况,因此提前下载好,对应python3.7版本
      pip install sasl-0.2.1-cp37-cp37m-win_amd64.whl
      # 安装thrift包
      pip install thrift
      # 安装thrift sasl包One
      pip install thrift-sasl
      # 安装python操作oracle包
      pip install cx-Oracle
      # 安装python操作hive包,也可以操作sparksql
      pip install pyhive
      
      

      image-20210930152134126

      • step5:验证安装结果

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      • 温馨提示:其实工作中你也可以通过Pycharm直接安装
  • 小结

    • 实现Pycharm中工程结构的构建

03:ODS层构建:代码导入

  • 目标实现Python项目代码的导入及配置

  • 实施

    • Oracle本地驱动目录:将提供的instantclient_12_2目录放入D盘的根目录下

    image-20210930153737086

      - **PyHive本地连接配置**:将提供的CMU目录放入C盘的根目录下![image-20210930153652800](https://img-blog.csdnimg.cn/img_convert/ee0d2adf80b1b4125547e8592718cfb0.png)
    
    • auto_create_hive_table包

      • 创建路径包

      image-20210930153142799

      auto_create_hive_table.cn.maynor.datatohive
      
      

      image-20210930154056029

        * 在datatohive的init文件中放入如下代码
        
         
        ```
        from auto_create_hive_table.cn.maynor.datatohive import LoadData2DWD
        from auto_create_hive_table.cn.maynor.datatohive.CHiveTableFromOracleTable import CHiveTableFromOracleTable
        from auto_create_hive_table.cn.maynor.datatohive.CreateHiveTablePartition import CreateHiveTablePartition
        
        ```
        * 其他包的init都放入如下内容
        
         
        ```
        #!/usr/bin/env python
        # @desc :
        __coding__ = "utf-8"
      

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值