目录
项目阶段
1.数据库与数据仓库的区别
数据库和数据仓库都是将数据转为结构化数据处理(表数据) 联机事务处理 0LTP 数据库 面向事务进行数据处理,数据的增删改查 联机分析处理 OLAP 数据仓库 面向分析进行数据处理,数据存储和查询 一次写入 多次读取
2.文件数据转化为结构化数据
(1)Kettle 读取文件数据存储到数据库,也可以将文件数据导入存储到数仓中 (2)编程代码 Python
3.结构化数据操作
使用SQL,结构化查询语言(DDL,DML,DQL,DCL(权限管理))。
4.HiveSQL
在进行表数据操作时,是将表的数据成两部份操作 表元数据(表明,字段名,字段类型,约束等),hive的metastore管理 表行数据(记录的一条条数据),hdfs管理
5.数据导入流程
(1)用户办理业务将数据传入数据库 (2)数据库数据导入数仓(工具有kettle,python等) (3)数仓的Hive操作(写sql) (4)将操作结果进行BI展示
6.项目介绍
项目名称 黑马甄选 数仓形式 离线数仓开发 业务类型 电商业务
7.电商介绍
(1)B2B B2C C2C (2)项目属于 新零售电商 (3)新零售 线(网站,app,小程序)+线下(实体体验店)+物流(自营物流) (4)项目行业:果蔬生鲜类 (5)商业模式 B2C 企业售卖商品给个人
8.项目业务介绍
门店业务:线下实体店、及时达(快递物流)、社区团购、三方平台(在第三方平台开设店铺) 线上商城:线上的B2C的网站 商品批发:app 经销商在app中下单采购 大客户团购:app 公司在app中下单采购 自营商品:商品贴牌 线下到线上: 有线下的连锁商店,为了线上购物需求,开发了网站,app,小程序 在三方平台开设店铺 线下商店 根据规模不同可以商品批方 获取企业团购 线上到线下: 现有线上网站,引入新零售场景,开始发展线下(开设店铺,发展物流)
9.数仓分层架构
(1)传统数仓架构(不考虑需求,全都获取) 数据是自上而下进行开发 ,上是上游数据。 在导入数据时,直接将所有数据导入数仓,在根据需求从数仓中筛序数据进行计算 该架构模式会造成数仓中存储大量无用数据 用户数据 订单数据 商品数据 业务需求 计算用户总量 计算每天新增用户量 计算每天留存用户量 月增用户量 月留存用户量 传统数仓架构,需求变化快 (2)离线数仓架构(先看需求,只获取需要的,缺点:易导致多个数据集市的数据混乱和不一致) 自下而上,先确认下游的计算需求,根据计算需求向上找要计算的数据,将需要计算的数据导入数仓 维度表,分组数据 事实表,计算内容 用户主题分析 用到时间维度表 年月日 商品主题分析 用到时间维度表 时分秒
10.技术架构
-- 技术架构与数仓架构区别:数仓架构描述的是数据处理流程,技术架构描述的是实现数仓用的技术组成 数据源存储 MysqL SQL Server 数据导入 ETL sqoop datax flume kettle 数据仓库 分布式存储 hdfs 分布式计算 mapreduce + hive 资源调度 yarn 数仓数据导出 dataX sqoop kettle 存储结果的数据库 mysql Oracle SQL server PostGreSQL 数据展示 fineBI fineReport superset powerBI 任务调度 DS oozie
11.项目人员及开发周期介绍
项目经理 管控整个项目的开发进度 进行部门和人员协调 产品经理 负责产品设计 网站,app产品 数据分析师或数据产品经理 负责主题需求设计 数据开发 进行数仓搭建开发 业务开发 网站,app 前端开发 后端开发 测试开发 产品测试,检查功能是否完整,计算结果是否正确 大数据运维开发 大数据软件安装,业务的上线部署,服务器维护
12.项目开发周期
产品调研:说明该项目开发原因,形成立项报告进行审批 数仓设计:设计数仓分层,技术选型,数仓表设计 数仓开发 集成测试:测试数仓开发的代码是否计算正确 上线部署
13.项目服务器选择
物理服务器还是云服务器 成本问题 项目中选择物理机 配置1286内存 ,20核物理CPU,40线程,8T HDD和 2T SSD硬盘 服务器数量 基于每天产生的数据量进行推测 当前项目每天产生 34G的数据 历史数据数量 10T 未来五年(服务器进行扩容)的数据34G*365*5 = 15T 计算时中间结果的存储34G*0.5 17G*365*5 = 7.5T 10+15+7.5=32.5T 32.5*3 = 97.5T 97.5/0.8=122T 开发需要13台服务器 预留测试服务器 2台 管理服务器(namenode resourcemanager CM的主服务) 产生订单数据人数占 日活用户 30-40% 日活用户占总用户量的10%-20%
14.CDH介绍
--(1)CDH Cloudera's Distribution Including Apache Hadoop --(2)CDH 是商业版的hadoop,由cloudera公司基于开源的hadoop进行二次开发,封装更多的功能,部分功能需要付费使用 --(3)CDH 集成了一个 CM(Cloudera Manager),使用各B(浏览器)/S(服务器)模型服务,可以在CM中通过web浏览器页面管理维护hadoop集群 --(4)CM的核心角色 --server 主服务 处理CM的各类请求 --agent 从服务 运行多台服务器上,接受servGr分配的任务
15.ClouderaManager架构
--(1)Server: Cloudera Manager的核心是Cloudera Manager Server。提供了统一的UI和API方便用户和集群上的CDH以及其它服务进行交互,能够安装配置CDH和其相关的服务软件,启动停止服务,维护集群中各个节点服务器以及上面运行的进程。 --(2)Agent: 安装在每台主机上的代理服务。它负责启动和停止进程,解压缩配置,触发安装和监控主机 --(3)Management Service: 执行各种监控、报警和报告功能的一组角色的服务 --(4)Database: CM自身使用的数据库,存储配置和监控信息 --(5)Cloudera Repository: 云端存储库,提供可供Cloudera Manager分配的软件 --(6)Client: 用于与服务器进行交互的接口 1)Admin Console:管理员可视化控制台 2)API:开发人员使用API可以创建自定义的Cloudera Manager应用程序
16.服务器
服务器说明 hadoop01 192.168.88.80 hadoop02 192.168.88.81 账户 root 密码 123456 注意:需要通过域名访问hadoop服务,就需要更改windos下域名解析文件 访问Server: http://hadoop01:7180/cmf/login 账号密码均为admin