数仓实战(一)

1. 架构说明

项目架构:

​ 基于cloudera manager大数据统一管理平台, 在此平台之上构建大数据相关的软件(zookeeper,HDFS,YARN,HIV

各个软件相关作用:

zookeeper: 集群管理工具, 主要服务于hadoop高可用以及其他基于zookeeper管理的大数据软件
HDFS: 主要负责最终数据的存储
YARN: 主要提供资源的分配
HIVE: 用于编写SQL, 进行数据分析
oozie: 主要是用来做自动化定时调度
sqoop: 主要是用于数据的导入导出
HUE: 提升操作hadoop用户体验, 可以基于HUE操作HDFS, HIVE …
FineBI: 由帆软公司提供的一款进行数据报表展示工具
项目架构中,数据流转的流程
首先业务是存储在MySQL数据库中,通过sqoop对MySQL的数据进行数据的导入操作,将数据导入到HIVE的ODS层中, 对数据进行清洗转换处理工作, 处理之后对数据进行统计分析, 将统计分析的结果基于sqoop在导出到MySQL中, 最后使用FineBI实现图表展示操作;

​ 由于分析工作是需要周期性干活, 采用ooize进行自动化的调度工作, 整个项目是基于cloudera manager进行统一监控管理。

面试题:

​请介绍一下最近做了一个什么项目? 为什么要做, 以及项目的架构和数据流转流程

​请介绍项目的架构是什么方案? 项目的架构和 数据流转的流程

​整个项目各个软件是如何交互的? 数据流转的流程

2. cloudera manager基本介绍
​ 大数据的发行版本, 主要有三个发行版本: Apache 官方社区版本, cloudera 推出CDH商业版本, Hortworks推出的HDP商业免费版本, 目前HDP版本已经被cloudera收购了

Apache版本Hadoop生态圈组件的优点和弊端:

优点
完全开源,更新速度很快
大数据组件在部署过程中可以深刻了解其底层原理
可以了解各个组件的依赖关系
缺点
部署过程极其复杂,超过20个节点的时候,手动部署已经超级累
各个组件部署完成后,各个为政,没有统一化管理界面
组件和组件之间的依赖关系很复杂,一环扣一环,部署过程心累
各个组件之间没有统一的metric可视化界面,比如说hdfs总共占用的磁盘空间、IO、运行状况等
优化等需要用户自己根据业务场景进行调整(需要手工的对每个节点添加更改配置,效率极低,我们希望的是一个配置能够自动的分发到所有的节点上)
为了解决上述apache产生问题, 出现了一些商业化大数据组件, 其中以 cloudera 公司推出 CDH版本为主要代表

CDH是Apache Hadoop和相关项目中最完整、最稳定的、经过测试和最流行的发行版。
CDH出现帮助解决了各个软件之间的兼容问题, 同时内置大量的常规企业优化方案;为了提供用户体验, 专门推出一款用于监控管理自家产品的大数据软件: cloudera manager
Cloudera Manager是用于管理CDH群集的B/S应用程序
使用Cloudera Manager,可以轻松部署和集中操作完整的CDH堆栈和其他托管服务(Hadoop、Hive、Spark、Kudu)
其特点:应用程序的安装过程自动化,将部署时间从几周缩短到几分钟; 并提供运行主机和服务的集群范围的实时监控视图
提供单个中央控制台,以在整个群集中实施配置更改
并集成了全套的报告和诊断工具,可帮助优化性能和利用率
3. 环境搭建
二台机子ip地址:
   hadoop01 : 192.168.52.150
   hadoop02 : 192.168.52.151

网关指定统一为: 192.168.52.1

windows的 System32\drivers\etc\hosts中,加入以下语句:
192.168.52.150    hadoop01    hadoop01.itcast.cn
192.168.52.151    hadoop02    hadoop02.itcast.cn

修改VMware的虚拟网卡配置: 虚拟网络编辑器

修改windows的VMware8的网卡信息通过浏览器连接即可 http://hadoop01:7180 或者 http://hadoop01.itcast.cn:7180打开后, 可能会出现 yarn中存在问题, 点击yarn进行解决接口决点击进入JobHistory后,再点击启动即可

成功则如下所示

注意: CDH软件开机后, 整个所有服务恢复正常, 大约需要耗时10~20分钟左右, 所以如果一开机就访问hadoop01:7180 可能是无法访问

如果等到 10~20分钟以后, 依然有大量的都是红色感叹号, 重启试一下

4. 数据仓库的基本概念
什么是数据仓库

存储数据的仓库, 主要是用于存储过去既定发生的历史数据, 对这些数据进行数据分析的操作, 从而对未来提供决策支持
1
数据仓库最大的特点:

既不生产数据, 也不消耗数据, 数据来源于各个数据源
1
数据仓库的四大特征:

1) 面向于主题的: 面向于分析, 分析的内容是什么 什么就是我们的主题
2) 集成性: 数据是来源于各个数据源, 将各个数据源数据汇总在一起
3) 非易失性(稳定性): 存储在数据仓库中数据都是过去既定发生数据, 这些数据都是相对比较稳定的数据, 不会发生改变
4) 时变性:  随着时间的推移, 原有的分析手段以及原有数据可能都会出现变化(分析手动更换, 以及数据新增)
1
2
3
4
ETL是什么

ETL: 抽取 转换 加载

指的是: 数据从数据源将数据灌入到ODS层, 以及从ODS层将数据抽取出来, 对数据进行转换处理工作, 最终将数据加载到DW层, 然后DW层对数据进行统计分析, 将统计分析后的数据灌入到DA层, 整个全过程都是属于ETL范畴

狭义上ETL: 从ODS层到DW层的过程
1
2
3
4
5
数据仓库和 数据库的区别

数据库(OLTP):  面向于事务(业务)的 , 主要是用于捕获数据 , 主要是存储的最近一段时间的业务数据, 交互性强 一般不允许出现数据冗余

数据仓库(OLAP): 面向于分析(主题)的 , 主要是用于分析数据, 主要是存储的过去历史数据 , 交互性较弱 可以允许出现一定的冗余

数据仓库和数据集市:

数据仓库其实指的集团数据中心: 主要是将公司中所有的数据全部都聚集在一起进行相关的处理操作(ODS层); 用于企业整体分析的数据集合
此操作一般和主题基本没有什么太大的关系

数据集市(小型数据仓库): 在数据仓库基础之上, 基于主题对数据进行抽取处理分析工作, 形成最终分析的结果; 用于部门分析的数据集合,从范围上来讲它属于数据仓库的子集,比如:销售部门的数据集市只有销售主题
    
一个数据仓库下, 可以有多个数据集市

数据仓库和数据集市具有什么区别?

1、范围的区别
数据仓库: 是针对企业整体分析数据的集合。
数据集市: 是针对部门级别分析的数据集合。

2、数据粒度不同
数据仓库: 通常包括粒度较细的数据明细。
数据集市: 则会在数据仓库的基础上进行数据聚合,这些聚合后的数据就会直接用于部门业务分析。

5. 维度分析
维度分析: 针对某一个主题, 可以从不同的维度的进行统计分析, 从而得出各种指标的过程

什么是维度?

维度一般指的的分析的角度,看待一个问题的时候,可以从多个角度来看待,而这些角度就是维度
维度是事务的特征,如颜色、区域、时间等,可以根据不同的维度来对指标进行分析对比。
比如: 有一份2020年订单数据, 请尝试分析
    可以从时间, 地域 , 商品, 来源 , 用户....

维度的分类:
    定性维度: 字符类型的特征,比如区域维度包括全国各省份; 指的是计算每天 每月 各个的维度; 一般放置在group by中
    定量维度: 数值类型的特征,如价格区间、销量区间等; 指的是统计某一个具体的维度或者某一个范围下信息, 如价格区间维度分为0--100、100-1000两个区间,可以按价格区间维度来对指标进行分析; 一般来说放置在where中
    
维度的分层和分级:  本质上对维度进行细分的过程
    按年统计:
        按季度
        按照月份
        按照天
        按照每个小时
    按省份统计:
        按市
        按县

从实际分析中, 统计的层级越多, 意味统计的越细化, 涉及的维度内容越多

维度的下钻和上卷: 以某一个维度为基准, 往细化统计的过程称为下钻, 往粗粒度称为上卷
    比如: 按照 天 统计, 如果需要统计出 小时, 指的就是下钻; 如果需要统计、季度、月、年, 称为上卷统计
        
从实际分析中, 下钻和上卷, 意味统计的维度变得更多了

什么是指标?

指标指的衡量事务发展的标准,    就是度量值

常见的度量值: count() sum() max() min() avg()  还有一些 比例指标(转化率, 流失率, 同比..)

指标的分类:
    绝对指标: 计算具体的值指标,如:count() sum() max() min() avg()
    相对指标: 计算比率问题的指标,如:转化率, 流失率, 同比
案例

需求: 请求出在2020年度, 女性 未婚 年龄在18~25岁区间的用户每一天的订单量?

维度:  时间维度 , 性别, 婚姻状态, 年龄
    定性维度:  每一天
    定量维度: 2020年度,18~25岁,女性,未婚

指标: 订单量(绝对指标) --> count()

select day,count(订单)
from 表  
where year ='2020' 
    and age between 18 and 25 
    and 婚姻 = '未婚' 
    and sex = '女性' 
group by day;

6. 数仓建模
​ 数仓建模指的规定如何在hive中构建表, 数仓建模中主要提供两种理论来进行数仓建模操作: 三范式建模和维度建模理论

​ 三范式建模: 主要是存在关系型数据库建模方案上, 主要规定了比如建表的每一个表都应该有一个主键, 数据要经历的避免冗余发生等等;主要是应用于传统的企业级数据仓库

​ 维度建模: 简称DM(Dimensional modeling);主要是存在分析性数据库建模方案上, 主要一切以分析为目标, 只要是利于分析的建模, 都是OK的, 允许出现一定的冗余, 表也可以没有主键;

《doris实时数仓实战》是一本介绍"实时数仓"的实战技术书籍。实时数仓是指将数据仓库(Data Warehouse)与实时流计算技术相结合,实现数据的快速处理和实时分析的系统。 这本书主要从实战的角度,以Doris(原名Palo)作为实时数仓的核心技术,介绍了实时数仓的建设与应用。Doris是一种分布式、高性能、高可用的列式存储分析系统,适用于大规模数据分析和实时查询。 书中首先介绍了实时数仓的背景和概念,以及Doris的基本原理和架构。接着对Doris的安装和配置进行了详细的讲解,包括数据模型设计、表定义和索引创建等。 然后,书中详细介绍了如何通过Doris进行数据的导入和处理。包括了数据导入的几种方式,如使用Doris自带的ETL工具和使用第三方工具,以及如何进行实时数据的计算和分析。 书中还介绍了Doris的高级功能和应用,例如多集群部署、数据备份和恢复、高可用性配置等。同时也提到了一些在实际应用中的常见问题和解决方案。 通过这本书,读者可以了解到实时数仓的基本概念和原理,学习到如何使用Doris构建实时数仓,并能够应用到实际的数据分析和查询中。 总的来说,《doris实时数仓实战》是一本实用性很强的技术书籍,适合对实时数仓感兴趣的技术人员阅读,对于提高数据分析和查询的效率和准确性有很大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值