Hive+Spark离线数仓工业项目--ODS层及DWD层构建(1)
创始人
2024-05-01 12:25:51
0

目标:自动化的ODS层与DWD层构建
实现
  - 掌握Hive以及Spark中建表的语法规则
  - 实现项目开发环境的构建
  - 自己要实现所有代码注释
  - ODS层与DWD层整体运行测试成功

数仓分层回顾

目标:回顾一站制造项目分层设计

实施

 ODS层 :原始数据层

    - 来自于Oracle中数据的采集

    - 数据存储格式:AVRO

    - ODS区分全量和增量

    - 实现

      - 数据已经采集完成

      - step1:创建ODS层数据库:one_make_ods

      - step2:根据表在HDFS上的数据目录来创建分区表

      - step3:申明分区

  DWD层

    - 来自于ODS层数据
    - 数据存储格式:ORC
    - 不区分全量和增量的
    - 实现
      - step1:创建DWD层数据库:one_make_dwd
      - step2:创建DWD层的每一张表
      - step3:从ODS层抽取每一张表的数据写入DWD层对应的表中

Hive建表语法

目标:掌握Hive建表语法

实施

  - EXTERNAL:外部表类型
    - 内部表、外部表、临时表
  - PARTITIONED  BY:分区表结构
    - 普通表、分区表、分桶表
  - CLUSTERED BY:分桶表结构
  - ROW FORMAT:指定分隔符
    - 列的分隔符:\001
    - 行的分隔符:\n
  - STORED AS:指定文件存储类型
    - ODS:avro
    - DWD:orc
  - LOCATION:指定表对应的HDFS上的地址
    - 默认:/user/hive/warehouse/dbdir/tbdir
  - TBLPROPERTIES:指定一些表的额外的一些特殊配置属性

Avro建表语法

- **目标**:掌握Hive中Avro建表方式及语法

- **路径**

  - step1:指定文件类型
  - step2:指定Schema
  - step3:建表方式

- **实施**

  - Hive官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

  - DataBrics官网:https://docs.databricks.com/spark/2.x/spark-sql/language-manual/create-table.html

  - Avro用法:https://cwiki.apache.org/confluence/display/Hive/AvroSerDe

  - **指定文件类型**

 

 建表语法


     

ODS层构建:需求分析

目标:掌握ODS层构建的实现需求

路径

  - step1:目标
  - step2:问题
  - step3:需求
  - step4:分析

- **实施**

  - **目标**:将已经采集同步成功的101张表的数据加载到Hive的ODS层数据表中

  - **问题**

    - 难点1:表太多,如何构建每张表?

      - 101张表的数据已经存储在HDFS上

      - 建表 

        - 方法1:手动开发每一张表建表语句,手动运行

        - 方法2:通过程序自动化建表

    - 难点2:如果使用自动建表,如何获取每张表的字段信息?

      - Schema文件:每个Avro格式的数据表都对应一个Schema文件

      - 统一存储在HDFS上

        

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

分析 

      - 读取全量表表名

        - 动态获取表名:循环读取文件

      - 获取表的信息:表的注释

        - Oracle:表的信息
        - 从Oracle中获取表的注释

     

        - 方式二:通过列表拼接:复杂

      - 执行建表SQL语句

    - step4:创建ODS层增量表:57张表

      - 读取增量表表名
      
        - 动态获取表名:循环读取文件
      
      - 获取表的信息:表的注释
      
        - Oracle:表的信息
        - 从Oracle中获取表的注释
      
      
      - 拼接建表字符串
      
      - 执行建表SQL语句

 ODS层构建:创建项目环境

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

实施

安装Python3.7环境

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

创建Python工程

 安装PyHive、Oracle库

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

      - 例如:**C:\Users\Frank\pip\pip.ini**

      - 内容:指定pip安装从阿里云下载

  step2:将文件添加到Windows的**Path环境变量**中

 step3:进入项目环境目录

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

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

 在CMD中执行以下命令,切换到Scripts目录下

       

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

 step5:验证安装结果

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


 

相关内容

热门资讯

安卓系统自带的网页,功能与特色... 你有没有发现,每次打开安卓手机,那熟悉的系统界面里总有一个默默无闻的小家伙——安卓系统自带的网页浏览...
美咖云系统安卓版,开启智能生活... 你有没有发现,最近手机上多了一个叫“美咖云系统安卓版”的小家伙?它就像一个魔法师,轻轻一点,就能让你...
安卓系统推荐最好的手机,盘点性... 你有没有想过,拥有一部性能卓越的手机,就像是拥有了移动的宝藏库?在这个信息爆炸的时代,一部好手机不仅...
安卓11系统能精简吗,释放潜能 你有没有发现,随着手机越来越智能,系统也越来越庞大?安卓11系统,这个最新的操作系统,是不是也让你觉...
安卓自动重启系统软件,揭秘原因... 手机突然自动重启,是不是感觉整个人都不好了?别急,今天就来和你聊聊这个让人头疼的安卓自动重启系统软件...
苹果手机x刷安卓系统,探索安卓... 你有没有想过,你的苹果手机X竟然也能刷上安卓系统?是的,你没听错,就是那个一直以来都和我们苹果手机X...
安卓系统智商低吗,智商低下的真... 你有没有想过,为什么安卓系统的智商总被调侃得好像有点低呢?是不是觉得它总是慢吞吞的,有时候还犯点小错...
安卓系统手机联系人,揭秘你的社... 你有没有发现,手机里的联系人列表就像是一个小小的社交圈呢?里面藏着我们的亲朋好友、工作伙伴,甚至还有...
安卓系统免费铃声下载,打造个性... 手机里那首老掉牙的铃声是不是让你觉得有点out了呢?别急,今天就来给你支个招,让你轻松给安卓手机换上...
安卓系统用哪个桌面好,打造个性... 你有没有发现,手机桌面可是我们每天都要面对的“脸面”呢?换一个好看的桌面,心情都能跟着好起来。那么,...
虚拟大师是安卓10系统,功能与... 你知道吗?最近在手机圈里,有个新玩意儿引起了不小的轰动,那就是虚拟大师!而且,更让人惊喜的是,这个虚...
安卓系统与苹果优缺点,系统优缺... 说到手机操作系统,安卓和苹果绝对是两大巨头,它们各有各的特色,就像两道不同的美味佳肴,让人难以抉择。...
安卓win双系统主板,融合与创... 你有没有想过,一台电脑如果既能流畅运行安卓系统,又能轻松驾驭Windows系统,那该有多爽啊?没错,...
安卓系统可精简软件,轻松提升手... 你有没有发现,手机里的安卓系统越来越庞大,软件也越装越多,有时候感觉手机就像个“大肚子”,不仅运行速...
安卓系统基于linux的代码,... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、办公的安卓系统,其实背后有着一套复杂的基于Linux的代...
苹果和安卓的拍照系统,谁更胜一... 你有没有发现,现在手机拍照已经成为我们生活中不可或缺的一部分呢?无论是记录生活的点滴,还是捕捉美丽的...
苹果和安卓系统不同吗,系统差异... 你有没有想过,为什么你的手机里装的是苹果的iOS系统,而朋友的手机却是安卓系统呢?这两种系统,看似都...
安卓系统有多少级,揭秘其多级架... 你有没有想过,那个陪伴我们日常生活的安卓系统,它其实有着丰富的层级结构呢?没错,就是那个让我们的手机...
华为鸿蒙系统与安卓的,技术融合... 你知道吗?最近科技圈可是炸开了锅,华为鸿蒙系统与安卓的较量成为了大家热议的话题。这不,今天我就来给你...
什么安卓手机是苹果系统,搭载苹... 你有没有想过,为什么有些人宁愿花大价钱买苹果手机,而有些人却对安卓手机情有独钟呢?其实,这个问题背后...