数仓维度层DWS层构建

01:项目回顾

  1. ODS层与DWD层的功能与区别是什么?
  • ODS:原始数据层
  • 存储格式:AVRO
  • 数据内容:基本与原始数据是一致的
  • DWD:明细数据层
  • 存储格式:Orc
  • 数据内容:基于与ODS层是一致的
  1. ODS层的需求是什么?
  • 自动化建库建表
  • 建表
create table one_make_ods.表名
tableproperties(schema文件)
+ 表名
 + 表的注释
 + 表对应的HDFS地址
 + Schema文件的地址
  1. DWD层的需求是什么?
  • 自动化建库建表
  • 建表
create table one_make_dwd.表名(
	字段信息
)
location
+ 表名
 + 表的注释
 + 表对应的HDFS地址
 + 字段信息
  1. 怎么获取表的Schema信息?
  • 表的注释、Schema信息
  • ODS:Oracle中获取表的注释、Schema文件从Sqoop生成的
  • DWD:Oracle中获取表的信息
  • TableMeta:表名,表的注释,列的信息:List
  • ColumnMeta:列名、列的注释、列的类型、长度、精度
  1. 如何使用Python构建Oracle和Hive的连接?
  • Oracle:cx_Oracle
  • conn(host,port,user,passwd,sid)
  • Hive/SparkSQL:pyHive
  • SparkSQL用法
  • 编程方式:python文件 | jar包
  • 流程
  • step1:SparkSession
  • step2:读取数据源
  • step3:处理
  • 注册视图
  • spark.sql(“”)
  • spark-submit
  • 优点:灵活
  • 场景:DSL
  • 提交SQL:ThriftServer
  • 场景:SQL,调度开发
  • 流程
  • JDBC | PyHive | Beeline:代码中开发
  • spark-sql -f xxxx.sql:SQL文件的运行
  1. 如果实现SQL语句的执行?
  • step1: 先构建服务端的远程连接
  • 服务端地址:主机名 + 端口
  • 用户名和密码
  • step2:基于这个连接构建一个游标
  • step3:通过游标来执行SQL语句:execute(String:SQL)
  • step4:释放资源
  1. 集中问题
  • 连接构建不上
  • 映射不对:spark.bigdata.cn:Can not Connect[46.xxx.xxxx.xx,10001]
  • 修改host文件
  • 修改config.txt:node1
  • 服务端问题:spark.bigdata.cn:Can not Connect[192.168.88.100,10001]
  • Spark的TriftServer没有启动
  • 启动完成先用dg或者beeline先测试一下
  • ThriftServer:依赖于MetaStore + YARN
  • 检查YARN:本质就是一个Spark程序:实时程序,不停止的
  • Oracle:cx_Oracle + 本地客户端:D:\instantclient_12_2
  • 安装
  • Python版本:Python 3.7.4
  • 命令sasl

02:项目目标

  1. 回顾维度建模
  • 建模流程:划分主题域和主题
  • 维度设计:构建维度矩阵
  • 维度模型:雪花模型、星型模式
  1. 项目中的建模流程和维度设计
  • 划分了哪些主题域,每个主题域有哪些主题?
  • 每个主题基于哪些维度进行分析?
  1. 维度层构建
  • 时间维度
  • 地区维度
  • 油站维度
  • 服务网点维度
  • 组织机构维度
  • 仓库维度
  • 物流维度

03:维度建模回顾:建模流程

  • 目标掌握维度建模的建模流程
  • 实施
  • step1-需求调研:业务调研和数据调研
  • 了解整个业务实现的过程
  • 收集所有数据使用人员对于数据的需求
  • 整理所有数据来源
  • step2-划分主题域:面向业务将业务划分主题域及主题
  • 用户域、店铺域
  • 商品域、交易域、
  • 客服域、信用风控域、采购分销域