day01 新零售课程笔记

今日内容:

  • 1- 新零售行业背景
  • 2- 零售行业的相关业务讲解
  • 3- 项目的架构介绍
  • 4- cloudera manager 工具介绍
  • 5- 项目环境的部署
  • 6- 数仓的基本概念
  • 7- 维度分析 和 数仓建模相关知识
  • 8- 数仓分层

1. 新零售的行业背景

早期基本都是一些线下店铺:

  1. 阶段一: 百货商店
  2. 阶段二: 超级市场(超市)
  3. 阶段三: 连锁商店
  4. -----以上为线下的店铺------
  5. 阶段四: 电子商务(网络销售 --- 网店) ---纯线上的销售方案
  6. 阶段五: 新零售 (线上 + 线下 + 物流)

项目真实来源: 永辉超市

2. 业务模块介绍 (流程理解)

  • 商品发布流程:

image-20220424093504669.png

  • 单店铺订单流程图

image-20220424094432333.png

  • 购物车流程

image-20220424100758447.png

  • 配送流程图

image-20220424101412509.png

  • 退货业务流程

image-20220424102451505.png

3. 项目的架构介绍

image-20220424114958869.png

    基于cloudera manager构建的大数据分析平台, 在此平台基础上, 构建有 HDFS, YARN, zookeeper, sqoop, oozie, HUE, HIVE 等相关的大数据组件, 同时为了提升分析的效率. 引入presto来进行分析处理操作, 使用FineBi实现图表展示操作, 整个分析工作是一个周而复始, 不断的干, 采用oozie完成任务的调度工作


数据流转的流程: 
    整个项目的数据源都是集中在MySQL中的, 通过sqoop完成数据的导入操作, 将数据导入到HDFS中, 使用HIVE构建相关的表, 建立数仓体系, 在HIVE进行分层处理, 在进行统计分析的时候, 采用presto提升分析的效率, 将分析的结果导出到Mysql中, 最后使用fineBi完成报表展示操作, 整个项目基于cloudera manager进行监控管理, 使用oozie完成工作流的调度操作

4. clouderamanager工具介绍

    cloudera manager 是一款大数据的统一监控管理平台, 此平台主要是对cloudera公司旗下CDH版本软件进行管理工作, 提供的服务: 统一的监控, 自动化部署, 对CDH软件进行相关管理

产生原因:

apache版本软件所存在弊端: 
    部署过程极其复杂,超过20个节点的时候,手动部署已经超级累 
    各个组件部署完成后,各个为政,没有统一化管理界面 
    组件和组件之间的依赖关系很复杂,一环扣一环,部署过程心累 
    各个组件之间没有统一的metric可视化界面,比如说hdfs总共占用的磁盘空间、IO、运行状况等 
    优化等需要用户自己根据业务场景进行调整(需要手工的对每个节点添加更改配置,效率极低,我们希望的是一个配置能够自动的分发到所有的节点上)

    市场需要有一款统一软件, 对大数据中各个组件进行统一化管理操作, 由此产生cloudera manager
    另一个原因: cloudera 公司希望能够有更多客户使用CDH版本, 降低客户使用难度

5. 项目环境部署操作

    1. 将资料中提供虚拟机压缩包, 解压到一个没有中文没有空格, 以及磁盘空间相对充足的磁盘中(大于100GB)

image.png

  1. 修改VMware的网卡设置: 统一修改为 88网段, 网关为192.168.88.2

image.png
image.png
修改windows网络适配器:
image.png
image.png
image.png
image.png

  1. 将两台项目虚拟机挂载到VMware上:

挂载第一台:
image.png
image.png
如果通过这种方式, 死活加载不进来, 建议将VMware关闭, 然后在重新双击即可
第二台与第一台类似, 也挂载中VMware上

  1. 启动两台centos节点:
  • 在启动的时候, 如果弹出一个选项, 让选择我已复制此虚拟机 和 我已移动此虚拟机, 这里一定一定一定要选择我已移动此虚拟机

image.png

  1. 通过CRT连接虚拟机即可: ```properties hadoop01: 192.168.88.80 hadoop02: 192.168.88.81

用户名: root 密码: 123456

注意: 记得修改CRT的编码和 控制台的模式为linux


![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352073314-7d629109-31c1-4ce1-80fc-ec39675e1f24.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=329&id=u77ec2b6e&name=image.png&originHeight=411&originWidth=526&originalType=binary&ratio=1&rotation=0&showTitle=false&size=63759&status=done&style=none&taskId=u4e088488-2d9c-4a24-ba14-312b0c8d415&title=&width=420.8)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352075321-6d41cccc-6864-4a50-9659-e72cd910dacb.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=510&id=u3e0e79ec&name=image.png&originHeight=637&originWidth=663&originalType=binary&ratio=1&rotation=0&showTitle=false&size=108031&status=done&style=none&taskId=u763bfbd4-bde9-4bc8-ad8d-f2e1d81517e&title=&width=530.4)

![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352084992-d316a75f-c690-4f9a-a9da-8fc32e1e0977.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=492&id=u8bdbf090&name=image.png&originHeight=615&originWidth=644&originalType=binary&ratio=1&rotation=0&showTitle=false&size=117714&status=done&style=none&taskId=u58586f3c-f792-4b47-8fad-95f9d5c34a6&title=&width=515.2)

   6. 在windows的hosts文件中, 添加映射信息: C:\Windows\System32\drivers\etc

```properties
添加以下内容:
192.168.88.80 hadoop01 hadoop01.itcast.cn
192.168.88.81 hadoop02 hadoop02.itcast.cn

更改方式: 将hosts文件拉到桌面上, 添加后, 将其拖回去即可

  1. 连接cloudera manager ``` http://hadoop01:7180

用户名: admin 密码: admin

注意: 后续关闭虚拟机: 务必使用shutdown -h now | init 0 万万不可直接强制关机 重启虚拟机: 使用reboot命令 长时间不使用虚拟机, 建议将其关机(尤其是使用机械硬盘的) 比如中午的时候

启动服务器后, 并不能立即访问, 需要等待大约 5~15分钟的时候后, 才可以正常访问 7180

![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352118300-d2ad55cb-524e-49a9-8f82-5fb855a85a20.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=493&id=ub01dcdb6&name=image.png&originHeight=616&originWidth=1121&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32691&status=done&style=none&taskId=ubc2994e3-3ffc-4137-a223-d5912e436bb&title=&width=896.8)<br />内存不足的同学, 看到以下界面, 即可认为环境安装完成

![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352144051-5bd50d51-7aff-459b-a691-0067614ce3b5.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=712&id=ue35843a5&name=image.png&originHeight=890&originWidth=1208&originalType=binary&ratio=1&rotation=0&showTitle=false&size=167088&status=done&style=none&taskId=ub9f58275-40f0-464e-838d-c4f0a19c14d&title=&width=966.4)<br />对于内存, 比较OK的同学, 可以将cloudera manager 所有服务全部开启:<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352156908-85f507ad-82d5-426d-ac9d-74039101c6ff.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=635&id=uc9b9638f&name=image.png&originHeight=794&originWidth=949&originalType=binary&ratio=1&rotation=0&showTitle=false&size=124680&status=done&style=none&taskId=ufd9072b4-5cc1-47ce-a3de-aa1c742a544&title=&width=759.2)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352164573-16c81e97-615c-4d19-95da-87f0961ec53c.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=640&id=ud8f3d477&name=image.png&originHeight=800&originWidth=1181&originalType=binary&ratio=1&rotation=0&showTitle=false&size=125092&status=done&style=none&taskId=ua1e4e8ac-628c-40e7-bd15-750e97de397&title=&width=944.8)

如果内存完全不足, 比如内存只有 8GB, 或者 12GB同学

8GB: 后续程序运行的时候, 可能出现内存溢出问题, 后续所有SQL都需要分批次执行 node1内存配置: 5.5GB node2内存配置: 2GB

12GB:
node1: 内存配置 7GB node2: 内存配置 5GB

然后, 需要关闭CM的所有监控服务, 不允许开启<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352181864-cd749d75-2f90-48fa-bcd9-b0814d57e532.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=617&id=u7ee07062&name=image.png&originHeight=771&originWidth=859&originalType=binary&ratio=1&rotation=0&showTitle=false&size=133743&status=done&style=none&taskId=ua53058f3-fee2-40a5-ae68-1a5d09e72e6&title=&width=687.2)<br />最后界面:<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352194541-e42df562-2fb3-4e07-8fdd-fd698344a6e5.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=501&id=ua449b441&name=image.png&originHeight=626&originWidth=1126&originalType=binary&ratio=1&rotation=0&showTitle=false&size=112608&status=done&style=none&taskId=u28bc102e-73c4-4aaf-a90c-c2d83a44aea&title=&width=900.8)<br />如果内存不足, 又想看监控状态, 可以只开启cloudera manager监控操作: (默认) 

![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352205040-36c85de4-5dfd-4a18-8f3e-e8db5ab7ab25.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=601&id=ue1bd66d9&name=image.png&originHeight=751&originWidth=1021&originalType=binary&ratio=1&rotation=0&showTitle=false&size=113947&status=done&style=none&taskId=u345eeae4-eb4b-4065-afa7-a64a6091f1d&title=&width=816.8)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352219708-97087a92-4de9-4c96-ad9e-7934578932a7.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=602&id=u08d3ce5d&name=image.png&originHeight=753&originWidth=977&originalType=binary&ratio=1&rotation=0&showTitle=false&size=115179&status=done&style=none&taskId=u96ce8c64-e6ee-45e6-b286-573aca23a99&title=&width=781.6)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352230385-b9863b05-ebed-4b65-8aa6-6d4cb6d4e709.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=410&id=u7ffc313a&name=image.png&originHeight=513&originWidth=724&originalType=binary&ratio=1&rotation=0&showTitle=false&size=94869&status=done&style=none&taskId=ue7f568dd-7417-4b76-b701-54602c9e07f&title=&width=579.2)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/22609247/1654352239216-9b28f31a-5096-4c1e-a9c2-077d076091bf.png#clientId=ub41e7668-b6e3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=498&id=u395e1b65&name=image.png&originHeight=623&originWidth=945&originalType=binary&ratio=1&rotation=0&showTitle=false&size=76484&status=done&style=none&taskId=u643e3d92-5e2e-4463-b3dd-f07cb6918d1&title=&width=756)

注意:

```properties
后续不使用虚拟机的时候, 一定要关闭, 不允许挂起, 否则可能导致服务器出现崩溃, 需要重新解压

在关闭的时候, 建议使用 shutdown -h now 或者 init 0 命令, 不要强关, 否则可能导致服务器出现崩溃, 需要重新解压

长时间不用的时候, 建议将服务器关闭....

6. 数据仓库的基本概念

  • 1- 什么是数据仓库呢?
    存储数据的仓库, 主要用于存储过去历史发生过的数据,面向主题, 对数据进行统计分析的操作, 从而能够对未来提供决策支持
  • 2- 数据仓库最大的特点是什么呢?
    数据仓库既不生产数据, 也不消耗数据, 数据来源于各个数据源
  • 3- 数据仓库的四大特征:
1- 面向主题:  分析什么  什么就是我们的主题
2- 集成性: 数据从各个数据源汇聚而来, 数据的结构都不一定一样
3- 非易失性(稳定性): 存储都是过去历史的数据, 不会发送变更, 甚至某些数据仓库都不支持修改操作
4- 时变性: 随着时间推移, 将最近发生的数据也需要放置到数据仓库中, 同时分析的方案也无法满足当前需求, 需要变更分析的手段
  • 4- OLAP 和 OLTP区别:

image.png

  • 5- 什么是ETL:
ETL: 抽取 转换  加载

狭义上ETL:
    指的数据从ODS层抽取出来, 对ODS层的数据进行清洗转换处理的操作, 将清洗转换后的数据加载到DW层过程

宽泛的ETL:
    指的是数仓的全过程
  • 6- 什么是数据仓库 和 数据集市
    数据仓库是包含数据集市的, 在一个数据仓库中可以有多个数据集市

    数据仓库: 一般指的构建集团数据中心, 基于业务形成各种业务的宽表或者统计宽表

    数据集市: 基于部门或者基于主题, 形成主题或者部门相关的统计宽表

7. 维度分析的基本介绍

  • 维度:
什么是维度?  
    看待问题角度, 当我们对一个主题进行分析的时候, 可以从不同的角度来分析, 这些角度就是维度
    比如说: 对订单进行分析 可以从 用户, 时间, 地区, 商家, 商圈....

维度的分类:  
    定性维度: 一般指的统计 每个  各个 这种维度, 比如 统计每天 每小时 各个用户...
        这种维度在编写SQL, 一般是放置在 group by
    定量维度:  一般指的统计某个范围, 或者某个具体值的, 比如 统计年龄在18~60岁, 时间为2021年度
        这种维度在编写 SQL, 一般是放置在 where条件

上卷 和 下钻:   
    比如说 我们以天作为标准,  上卷统计 周  月 年 下钻统计: 小时

分层或者分级:  
    比如说: 以地区为例, 将地区划分为 省份 市  县/区


从数仓分析的角度来看待, 指的多了分析的维度而已
  • 指标:
什么是指标?
    衡量事务发展的标准,也叫度量, 简单来说: 在根据维度进行分析的时候, 必然要分析出一些结果, 这个结果就是度量
    常见的度量值有那些: 
        count(), sum(), min(),max(),avg()

指标的分类: 
    绝对指标: 指的统计计算一个具体的值, 比如说 销售额, 订单量
        必须要对全部的数据进行统计处理
        count(), sum(), min(),max(),avg()
    相对指标: 指的统计相对的结果, 比如说 同比增长 环比增长  流失率  增长率...
        这些指标在计算的时候, 是可以不需要对全部数据进行统计
        可以通过抽样的方式来计算即可

例子:

需求:
    请统计在2021年度, 来自于北京 女性 未婚, 年龄在 18 ~28 之间的每天的销售总额是多少?

分析: 
    涉及到维度:  时间维度, 地区维度, 性别, 婚姻状态, 年龄
        定性维度:  每天
        定量维度:  2021, 北京 女性 未婚 年龄

    涉及指标:  销售额(绝对指标)
        sum()
    SQL: 
        select day, sum(price)   from  where  时间 = 2021 and address = '北京' and sex = '女性' and status = '未婚' and age between 18 and 28 group by day;