数仓工具(重点)
账号:hue
密码:hue
Hue操作HDFS(操作)
新建文件夹、新建文件、上传文件、查看文件、编辑文件、删除文件。
Hue操作Hive(重点)
建库、建表、插入、查询
内置函数: 精度四舍五入 ▁▁▁round(double, length)
字符串截取函数 ▁▁▁substr(string, start, length)
字符串拼接函数 ▁▁▁concat concat_ws
年月日获取▁▁▁year/quarter/month/day/hour
日期格式化函数▁▁▁date_format(string, format)
判断函数 ▁▁▁if case when then
Sqoop
sqoop1与sqoop2
Sqoop1以▁▁▁client的形式存在和运行。
没有任务时是▁▁▁没有 进程存在的。
Sqoop2以▁▁▁server 的形式存在和运行。
没有任务时是▁▁▁有 进程存在的。
Sqoop和Hcatalog方式
1、▁▁▁Hacatalog 方式支持更多数据格式,包括RCFile, ORCFile, CSV, JSON和SequenceFile等格式。
2、▁▁▁sqoop 方式允许数据覆盖,▁▁▁Hcatalog 不允许数据覆盖,每次都只是追加。
3、Sqoop方式的字段是按照▁▁▁顺序 匹配的,HCatalog方式的字段是按照▁▁▁字段名 匹配的。
Sqoop常用参数
--connect ▁▁▁▁▁▁mysql连接地址和数据库
--username ▁▁▁▁▁▁mysql用户名
--password ▁▁▁▁▁▁mysql密码
--table ▁▁▁▁▁▁mysql的表,用的少
--where ▁▁▁▁▁▁mysql条件,用的少
--query ▁▁▁▁▁▁用的多,代替--table和--where,推荐使用双引号,后面记得加$CONDITIONS
--target-dir ▁▁▁▁▁▁hdfs的目录
--delete-target-dir ▁▁▁▁▁▁hdfs覆盖插入
--hcatalog-database ▁▁▁▁▁▁hive数据库
--hcatalog-table ▁▁▁▁▁▁hive表
-m ▁▁▁▁▁▁MR的数量
--split-by ▁▁▁▁▁▁切割的字段
导入命令 ▁▁▁▁▁▁sqoop import
导出命令 ▁▁▁▁▁▁sqoop export
数据仓库
面向主题:针对事务来说的,主题指的是分析主题。
数据集成:集成内部不同系统的数据源、外部数据源。
非易失:保留完整的历史数据;不会轻易修改或删除数据。
时变性:数据随时间而产生变化,1、新增 2、删除数据(比如10年前)3、统计聚合
数据仓库系统流程:
源数据——》▁▁▁——》▁▁▁——》▁▁▁——》报表、决策系统《——用户
维度建模
指标和维度
指标:多为行为事实数据,线状图中的▁▁▁轴,数值类型字段,如销售额,销量等;
维度:事务的特征,线状图中的▁▁▁轴,字符类型字段,如颜色、区域、时间等。
下钻与上卷
获取高级别的汇总信息的过程叫▁▁▁;
获取低级别的明细信息的过程叫▁▁▁。
事实表和维度表(重点)
事实表
记录了特定行为事件的数字化信息,此类数据的数据量较▁▁▁大,更新频率比较▁▁▁高。
维度表
维度是指观察数据的角度,一般是一个名词,维度表的记录数比事实表▁▁▁小,更新频率较▁▁▁低。
高基数维度表
数据量相对较▁▁▁大、重复性比较▁▁▁小,可辨识度高,比如:用户表、店铺表、商品表
低基数维度表
数据量相对较▁▁▁小、重复性比较▁▁▁高,可辨识度低,比如:性别、部门。
思考
1、事实数据和维度数据在线状图中谁是x轴谁是y轴?
2、事实数据和维度数据在统计sql中,分别处于什么位置?
select count(order_id) order_num, sum(order_price) price from t_order group by year_month;
建模方法
▁▁▁星型模型:
一个事实表为中心,多个维度表。 优点:降维、冗余、性能较▁▁▁高。
▁▁▁雪花模型:
维表要通过其他维表连接到事实表。 优点:维度更清晰、性能较▁▁▁低。
渐变维
SCD1
直接覆盖,历史数据属于无效数据。
SCD2(重点)
拉链表,能够保留完整的▁▁▁▁▁▁历史快照。
两个核心字段:▁▁▁▁▁▁开始日期、▁▁▁▁▁▁截止日期
获取当前生效的数据:
select * from table where ValidTo=null、'9999-99-99'、'9999-12-31';
获取2012-02-01生效的数据:
select * from table where '2012-02-01' >= ValidFrom and '2012-02-01' < ValidTo;
SCD3
增加列,只保存上一次和当前的数据。
数仓分层(重点)
1、ODS
▁▁▁▁▁▁层
动作:▁▁▁▁▁▁抽取,没有变更
作用:▁▁▁▁▁▁保留最原始最完整的数据
2、DW
2.1、DWD
▁▁▁▁▁▁层
动作:▁▁▁▁▁▁清洗转换
作用:▁▁▁▁▁▁保证数据质量
数据粒度与ODS相比▁▁▁▁▁▁一致
清洗:▁▁▁▁▁▁
转换:▁▁▁▁▁▁
2.2、DWM
▁▁▁▁▁▁中间层
动作:▁▁▁▁▁▁降维冗余、轻度聚合、留作复用
作用:▁▁▁▁▁▁减少join,提高DWS性能
2.3、DWS
▁▁▁▁▁▁业务层
动作:▁▁▁▁▁▁聚合统计
作用:▁▁▁▁▁▁数据集市
3、APP
▁▁▁▁▁▁应用层
动作:▁▁▁▁▁▁个性化字段、统计
作用:▁▁▁▁▁▁报表展现、辅助决策、画像等
4、DIM
▁▁▁▁▁▁维度层
作用:▁▁▁▁▁▁存放公共维度数据
新零售分层(重点)
ODS:▁▁▁▁▁▁
DWD:▁▁▁▁▁▁
DWB:▁▁▁▁▁▁
DWS:▁▁▁▁▁▁
DM:▁▁▁▁▁▁
RPT:▁▁▁▁▁▁