大数据开发工作中的数仓设计(Hadoop,hive ,mysql )

1.HUE工具介绍使用

HUE是CDH提供一个hive和hdfs的操作工具,在hue中编写了hiveSQl也可以操作hdfs的文件

http://主机名字:端口号 hdfs的web访问端口

http://主机名字:端口号 hdfs的程序访问端口

进入后确保hdfs hive yarn 开启 在点击hue开启

在这里面也可以进行hive的sql操作,但是不太建议,依旧还是使用datagrip进行操作

2.数仓介绍

数据仓库是由一整套体系构成,包含数据采集,数据存储,数据计算,数据展示等

数据仓库主要作用对过往的历史数据进行分析处理,为公司决策停供数据支撑。

2-1 数仓特征

  • 面向主题

  • 集成性

  • 非易失性

  • 时变性

2-2 OLTP和OLAP

OLTP(On-Line Transaction Processing)即联机事务处理,也称为面向交易的处理过程,

OLAP(On-Line Analytical Processing)即联机分析处理,有时也称为决策支持系统(DSS)

2-3 ETL

ETL(Extra, Transfer, Load)包括数据抽取、数据转换、数据导入三个过程。

3.主题和主题域

主题 是对数据进行归类,每个分类是一个主题

主题域 根据分析的领域,将联系较为紧密的数据主题的集合在一起

主题域下面可以有多个主题,主题还可以划分成更多的子主题,主题和主题之间的建设可能会有交叉现象

3-2 主题域的划分

  • 按照系统划分

    • 生产系统 生产主题域

      • 商品原材料库存核销数据 商品主题

      • 订单主题

    • 财务系统

      • 商品原材料库存核销数据 商品主题

      • 销售主题

    • 人力系统

  • 按照部门划分

    • 人力部门 人力主题域

      • 员工主题 员工数据

      • 招聘主题 招聘数据

    • 生产部门

    • 销售部门

    • 后勤部门

  • 按照业务划分

    • 门店零售业务

    • 批发业务

    • 团购业务

  • 按照行业经验

    • 银行证券业

      • 当事人、产品、协议、事件、资产、财务、机构、地域、营销、渠道

4.数据仓库和数据集市

数据集市就是数据仓库的一个子集,它主要面向部门级业务,并且只面向某个特定的主题

数据集市由业务部门定义、设计和开发,业务部门进行管理和维护

5. 数仓设计

5-1 定义规范设计

  • 表命名

    • 分层_主题_实体+业务+维度_分区

分层 ods,dw,dwd

主题 sale(销售主题) user(用户主题)

实体+业务+维度

  • 示例:

    • store_goods_statistics_day

    • store_member_statistics_day

    • mysql中的表名+计算维度

ods_sale_store_goods_statistics_day_dt

规范不是前置要求,不同公司可能根据业务设计表名

  • 字段类型规范

    • 数量类型整数为bigint

    • 金额类型为decimal(27, 2),表示:27位有效数字,其中小数部分2位

    • 数量类型小数为decimal(27, 3),表示:27位有效数字,其中小数部分3位

    • 字符串(名字,描述信息等)类型为string

    • 日期类型为string

    • 时间类型为timestamp

5-2 数仓分层设计

数据仓库最基础分层 ,分层本质就是创建不同的数据库,

原始数据层 ODS

  • 将数据源的数据导入数仓ods层

  • 创建一个ods的数据库,然后按照数据源中的表创建ods库下的hive表

数据仓库层 DW 数据处理

数据服务层 ADS 计算结果

数据分层设计到的有什么作用?

  • 简化复杂问题。

    • 通过将复杂的数据处理过程分解为多个步骤或层次,可以使问题更加易于理解和处理。

    • select sum(age) from tb1 join tb2 on tb1.id =tb2.id where age > 20 group by gender

  • 结构更清晰。

    • 每个数据层都有其明确的作用域,这有助于在使用表时方便地定位和理解。

  • 数据血缘追踪。

    • 分层结构使得数据血缘关系更加明确,便于追踪和调试。

  • 用空间换时间。

    • 通过预处理大量数据,可以提高应用系统的用户体验(效率),虽然这可能导致数据仓库中存在冗余数据。

  • 数据重复使用,减少重复开发。

    • 规范的数据分层可以促进数据和指标的统一,减少重复开发,并提高数据复用率。

  • 数据隔离和屏蔽原始数据异常。

    • 分层结构可以帮助隔离原始数据的异常或敏感性,保护真实数据与统计数据解耦。

  • 数据安全。

    • 通过分层,可以更方便地对不同层的数据进行权限管理,屏蔽敏感数据。

  • 增强扩展性和便于后期维护。

    • 不分层可能会导致整个数据清洗过程受到源业务系统规则变化的影响,而分层可以简化数据清洗过程,提高扩展性,便于后期维护。

5-3 数仓建模设计

数仓建模本质就是在数仓中如何设计表存储计算数据

数仓一般采用维度建模方式来设计不同的表

维度模型是Ralph Kimall所倡导,他的《数据仓库工具箱》是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

在DWD层确认维度表和事实表,然后将事实表和维度表数据进行管理

在DWM层进行主题宽表关联

众多模型中最实用的是星座模型

6.DIM维度层数据处理

I-hive表的中文问题解决

首先需要把hive中要传输的表的类型进行更改 使用alter table字段变为 set utf8  因为utf8可以显示中文

II-创建DIM层表

创建原始数据表,根据mysql中的维度表字段数据创建dim层中表数据

表需要进行分区,一天为单位进行分区保存数据

III-导入dataxweb任务

需要把需要导入的字段写入dataxweb 或者自己手动进行json文件进行 mysql导入hive中的操作 (上一章节有格式以及教程)

IV-执行datax任务导入ods原始表数据

在datax 中进行执行

V-处理维度表数据

-- 开启动态分区方案
-- 开启非严格模式
set hive.exec.dynamic.partition.mode=nonstrict;
-- 开启动态分区支持(默认true)
set hive.exec.dynamic.partition=true;
-- 设置各个节点生成动态分区的最大数量: 默认为100个  (一般在生产环境中, 都需要调整更大)
set hive.exec.max.dynamic.partitions.pernode=10000;
-- 设置最大生成动态分区的数量: 默认为1000 (一般在生产环境中, 都需要调整更大)
set hive.exec.max.dynamic.partitions=100000;
-- hive一次性最大能够创建多少个文件: 默认为10w
set hive.exec.max.created.files=150000;


-- hive压缩
-- 开启中间结果压缩
set hive.exec.compress.intermediate=true;
-- 开启最终结果压缩
set hive.exec.compress.output=true;
-- 写入时压缩生效
set hive.exec.orc.compression.strategy=COMPRESSION;

  • 31
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
01_数仓项目介绍.avi4 b4 Q* Q8 Z0 Y) C6 O! w 02_数仓采集_用户行为采集课程介绍.avi8 \7 f3 O. c- {: v# W& V$ Y& b 03_数仓采集_数仓的概念.avi8 Z# X* q/ c; }3 A* [ T 04_数仓采集_项目需求.avi6 B8 n s0 h! M4 X# j! |0 ` 05_数仓采集_项目技术选型.avi8 [% N% W, U# y5 s 06_数仓采集_系统数据流程设计.avi8 N: L Y6 D6 y 07_数仓采集_框架版本选型.avi, k8 c& `! j& B 08_数仓采集_框架版本具体型号.avi1 x& Q/ D. O' l 09_数仓采集_服务器选型.avi3 _: b. H. i! a; O8 V3 A7 [1 s0 t; B 100_业务数仓_DWS层之用户行为宽表.avi* o! `2 N, _5 u& a$ W 101_业务数仓_需求九:GMV成交总额.avi; x4 H& X( _' I8 L7 r* n3 I/ y 102_业务数仓_需求十:ADS层之新增用户占日活跃用户比率.avi 103_业务数仓_需求十一:ADS层之用户行为漏斗分析.avi 104_业务数仓_用户购买商品明细表(宽表).avi 105_业务数仓_需求十二:ADS层品牌复购率.avi 106_业务数仓_需求十三:求每个等级的用户对应的复购率前十的商品排行(学生分享).avi6 e) h" C# G2 X+ z6 B 107_业务数仓_数据可视化.avi! @5 r5 g- n0 f, J3 l 108_业务数仓_Azkaban安装.avi( r9 z2 L3 \% G' k9 [: t9 K 109_业务数仓_GMV指标获取的全调度流程.avi& O, S. M2 Q# o 10_数仓采集_集群资源规划设计.avi 110_业务数仓_拉链表理论.avi 111_业务数仓_拉链表制作.avi+ k: N4 e; P4 X; ?( i' O0 {0 u. M9 Y 112_业务数仓_业务数仓项目总结.avi/ {1 S. ^* Y" b# M) | 113_业务数仓_即席数仓课程介绍.avi 114_即席数仓_Presto简介.avi+ r. E# z! Z4 t% o+ r8 }7 Q 115_即席数仓_Presto安装及使用.avi 116_即席数仓_Presto优化.avi% @4 x# m3 } G# h 117_即席数仓_Druid概念、特点、场景.avi 118_即席数仓_Druid对比其他框架.avi7 C4 m1 z" }# n% h( F 119_即席数仓_Druid框架原理.avi 11_数仓采集_测试集群服务器规划.avi* X" H5 S4 M1 C0 j" w 120_即席数仓_Druid数据结构.avi, V& D, ]# l" a0 R1 ?) n; L f 121_即席数仓_Druid安装.avi 122_面试题_总体架构.avi! c' O1 I8 T6 n Q 123_面试题_技术框架.avi 124_面试题_用户行为、业务数据、即席查询.avi4 N2 j# j6 P% O" a 125_面试题_开发经验.avi3 b$ C' k; H" B2 p# c( \ 126_CDH数仓_课程介绍.avi9 _. V/ m% J5 ^* s/ g+ f; g( s 127_CDH数仓_CM简介及架构.avi8 ]' ]* B! X' j. Z9 [ 128_CDH数仓_CM安装环境准备.avi, Q8 k8 x/ j3 v 129_CDH数仓_CM、Hadoop、Zookeeper安装.avi7 z) @! o) G0 @4 s; J 12_数仓采集_埋点数据基本格式.avi 130_CDH数仓_采集Flume的安装.avi# V L4 F& x1 t* }( Z8 F' o9 g' ` 131_CDH数仓_Kafka安装.avi" N8 o- i b/ W) o3 j8 j/ a/ g 132_CDH数仓_测试Flume和Kafka安装.avi 133_CDH数仓_消费Flume配置完成.avi6 ?$ m3 H4 m; C# ^$ j 134_CDH数仓_Hive、Oozie、Hue安装.avi# ]& Y, M2 |) A( o# Y( b& w 135_CDH数仓_用户行为数仓ODS层导数据.avi 136_CDH数仓_用户行为数仓完结.avi. F4 z* v& a; q" }% V* \ 137_CDH数仓_业务数据生成.avi7 W7 \$ ~$ n% w2 N, {( A; l! }8 K: S 138_CDH数仓_业务数仓完结.avi! N7 f. d0 U2 N( }' w) P- b" S 139_CDH数仓_Oozie执行前准备.avi 13_数仓采集_事件日志数据(上).avi2 S' ` H& ^& S3 a1 X 140_CDH数仓_Oozie任务编写及运行.avi 141_CDH数仓_即席查询数仓搭建Impala.avi 142_CDH数仓_Spark安装及总结.avi 14_数仓采集_事件日志数据(下).avi 15_数仓采集_日志生成代码编写.avi4 |* G) Z3 J4 ]/ b9 z$ @ 16_数仓采集_Logback日志打印控制.avi 17_数仓采集_服务器准备.avi 18_数仓采集_Hadoop安装.avi 19_数仓采集_项目经验之HDFS多目录配置.avi 20_数仓采集_项目经验之支持LZO压缩配置.avi j3 Q& D8 m* G9 R Q$ G 21_数仓采集_项目经验之基准测试.avi 22_数仓采集_项目经验之HDFS参数调优.avi; F" t) F) H7 W' {& L% n3 H ~7 s 23_数仓采集_Zookeeper安装.avi6 c1 v9 x4 \% K5 D. \0 M 24_数仓采集_项目经验之ZK集群启动停止脚本.avi( i1 P# ^( y1 Q- a 25_数仓采集_生成测试日志.avi 26_数仓采集_集群日志生成启动脚本.avi 27_数仓采集_集群时间同步修改脚本.avi, n2 a/ j1 @) t* d w 28_数仓采集_集群所有进程查看脚本.avi 29_数仓采集_每日回顾.avi; R" Y P2 X, E/ [+ B' j# ~& K. e 30_数仓采集_日志采集Flume安装.avi* V0 |0 U7 o- @* R; w) M 31_数仓采集_Flume组件及配置.avi 32_数仓采集_日志采集Flume配置分析.avi U6 j% Q4 F$ T6 U5 ^ 33_数仓采集_ETL拦截器.avi 34_数仓采集_分类型拦截器.avi! b5 ^. a8 ^; }$ x8 z) l2 U3 }" p 35_数仓采集_日志采集Flume启动停止脚本.avi2 ~/ r- J: h$ U, q/ e# e7 k% M 36_数仓采集_Kafka集群安装.avi3 L6 `7 F& o/ U6 F" U5 U 37_数仓采集_Kafka集群启动停止脚本.avi 38_数仓采集_Kafka Manager安装及脚本.avi& h9 z' v' g0 ^. }0 j 39_数仓采集_项目经验之Kafka压力测试.avi7 ~8 m+ w$ q/ G$ ?- _- K 40_数仓采集_项目经验之Kafka机器数量计算.avi 41_数仓采集_消费Kafka数据Flume.avi 42_数仓采集_项目经验之Flume内存优化.avi; q3 Q6 E! I, d7 n& k# {# B6 K 43_数仓采集_项目经验之Flume组件.avi- S+ J+ s/ {5 S0 d 44_数仓采集_采集通道启动停止脚本.avi! Q; X6 }4 C" g. f 45_数仓采集_调试经验.avi! P; q2 w N1 c i5 Z' c; i" i' O- x 46_数仓采集_面试题(Linux、Shell、Hadoop).avi2 R" A6 R7 D' p9 h( i. \ I" F9 w 47_数仓采集_面试题(Flume、Kafka).avi& A1 w0 W) S1 ~# i& n, } ~6 o( b& o 48_用户行为数仓_每日回顾.avi% U( @. v7 D* C* B W J 49_用户行为数仓_用户行为数仓课程介绍.avi 50_用户行为数仓_为什么要分层.avi! J- C* F* K' R* l 51_用户行为数仓_数仓分层.avi4 W _. ]: j5 U; l$ Q9 l. Q [/ u 52_用户行为数仓_数据集市与数据仓库概念.avi5 U5 c# e( Y8 B% c 53_用户行为数仓_数仓命名规范.avi 54_用户行为数仓_Hive&MySQL;安装.avi 55_用户行为数仓_Hive运行引擎Tez.avi! L# \% m0 s- F; A" q 56_用户行为数仓_项目经验之元数据备份.avi 57_用户行为数仓_ODS层启动日志和事件日志表创建.avi 58_用户行为数仓_ODS层加载数据脚本.avi' J8 ^- I/ b5 O3 Y) @9 a- h 59_用户行为数仓_DWD层启动日志建表及导入数据.avi9 h3 [. T0 F1 ~6 s! i/ J 60_ 用户行为数仓_DWD层启动表加载数据脚本.avi$ \1 Z0 Z/ m; d: F+ B5 u$ c 61_用户行为数仓_DWD层事件基础明细表创建.avi; Y& i+ U7 S6 P" X) T3 n! V 62_用户行为数仓_自定义UDF函数(解析公共字段).avi7 Q/ i) X8 O6 S0 M( V' m- ]- M 63_用户行为数仓_自定义UDTF函数(解析事件日志基础明细表).avi 64_用户行为数仓_DWD层数据解析脚本.avi 65_用户行为数仓_DWD层事件表加载数据脚本.avi 66_用户行为数仓_今日回顾.avi* e9 W+ P$ {5 ?! x9 [- e5 ]# a 67_用户行为数仓_业务术语.avi 68_用户行为数仓_日期的系统函数.avi 69_用户行为数仓_每日活跃设备明细.avi 70_用户行为数仓_每周活跃设备明细.avi 71_用户行为数仓_每月活跃设备明细.avi 72_用户行为数仓_DWS层加载数据脚本.avi- i* h$ d' Q7 M1 G0 ?% f 73_用户行为数仓_需求一:ADS层日活、周活、月活用户数.avi- I- Q* u3 n; v. n, T 74_用户行为数仓_每日新增设备明细表.avi/ B# |; {' c4 y6 y9 \2 r( i 75_用户行为数仓_需求二:ADS层每日新增设备表.avi 76_用户行为数仓_用户留存分析.avi 77_用户行为数仓_1、2、3、n日留存用户明细.avi v. ^5 Q1 \ `9 V4 Q 78_用户行为数仓_需求三:ADS层留存用户和留存比率.avi 79_用户行为数仓_新数据准备.avi 80_用户行为数仓_需求四:沉默用户.avi 81_用户行为数仓_需求五:本周回流用户数.avi 82_用户行为数仓_需求六:流失用户.avi2 x0 _( B( `, z4 j$ |5 S2 Z4 T- e% R) ] 83_用户行为数仓_需求七:最近连续3周活跃用户数.avi 84_用户行为数仓_需求八:最近七天内连续三天活跃用户数.avi- C- l" J O8 v3 x- J$ r 85_用户行为数仓_用户行为数仓业务总结.avi- V4 n, x9 B* A( P6 n/ e! E! U 86_用户行为数仓_Hive企业面试题总结.avi3 l9 J8 F2 t0 p& S! O! ^ 87_业务数仓_业务数仓课程介绍.avi 88_业务数仓_电商业务与数据结构简介.avi 89_业务数仓_表的分类.avi# X. Q* ~# f7 F P' @; i+ z 90_业务数仓_同步策略.avi; k0 r$ A: b9 E) @1 W 91_业务数仓_范式理论.avi5 ~2 z+ A' F+ N- J" S% r 92_业务数仓_雪花模型、星型模型和星座模型.avi 93_业务数仓_配置Hadoop支持Snappy压缩.avi 94_业务数仓_业务数据生成.avi 95_业务数仓_Sqoop安装及参数.avi% s/ l0 E. R( Y9 s, h3 k 96_业务数仓_Sqoop导入数据.avi4 {8 ~! a8 o4 `" y: p5 {1 ^ 97_业务数仓_ODS层建表及数据导入.avi 98_业务数仓_DWD层建表及导入数据.avi 99_业务数仓_需求讲解.avi7 X6 q, I3 Y+ F: N8 h 源码笔记资料.rar0 W

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值