大数据开发,数仓阶段

本文探讨了数据库与数据仓库的区别,如何通过SQL和工具如Kettle、Python进行文件数据转换和结构化数据操作,涉及Hive在数仓中的角色,以及电商项目的业务场景、数仓分层架构、技术选型,包括CDH和ClouderaManager在大数据管理中的应用。
摘要由CSDN通过智能技术生成

项目阶段

 1.数据库与数据仓库的区别

sql
数据库和数据仓库都是将数据转为结构化数据处理(表数据)
联机事务处理 0LTP 数据库 面向事务进行数据处理,数据的增删改查
联机分析处理 OLAP 数据仓库 面向分析进行数据处理,数据存储和查询 一次写入 多次读取
```

 2.文件数据转化为结构化数据

sql
(1)Kettle 读取文件数据存储到数据库,也可以将文件数据导入存储到数仓中
(2)编程代码 Python
```

3.结构化数据操作

sql
使用SQL,结构化查询语言(DDL,DML,DQL,DCL(权限管理))。
```

4.HiveSQL

```sql
在进行表数据操作时,是将表的数据成两部份操作
表元数据(表明,字段名,字段类型,约束等),hive的metastore管理
表行数据(记录的一条条数据),hdfs管理
```

 5.数据导入流程

```sql
(1)用户办理业务将数据传入数据库
(2)数据库数据导入数仓(工具有kettle,python等)
(3)数仓的Hive操作(写sql)
(4)将操作结果进行BI展示
```

 6.项目介绍

```sql
数仓形式 离线数仓开发
```

7.电商介绍

```sql
(1)B2B B2C C2C
(2)项目属于 新零售电商
(3)新零售 线(网站,app,小程序)+线下(实体体验店)+物流(自营物流)
(4)项目行业:果蔬生鲜类
(5)商业模式 B2C 企业售卖商品给个人
```

 8.项目业务介绍

```sql
门店业务:线下实体店、及时达(快递物流)、社区团购、三方平台(在第三方平台开设店铺)
线上商城:线上的B2C的网站
商品批发:app 经销商在app中下单采购
大客户团购:app 公司在app中下单采购
自营商品:商品贴牌

线下到线上:
    有线下的连锁商店,为了线上购物需求,开发了网站,app,小程序
    在三方平台开设店铺
    线下商店 根据规模不同可以商品批方 获取企业团购
线上到线下:
    现有线上网站,引入新零售场景,开始发展线下(开设店铺,发展物流)
```

 9.数仓分层架构

```sql
(1)传统数仓架构(不考虑需求,全都获取)
    数据是自上而下进行开发 ,上是上游数据。
    在导入数据时,直接将所有数据导入数仓,在根据需求从数仓中筛序数据进行计算
    该架构模式会造成数仓中存储大量无用数据
        用户数据
        订单数据
        商品数据
        业务需求
            计算用户总量
            计算每天新增用户量
            计算每天留存用户量
            月增用户量
            月留存用户量
    传统数仓架构,需求变化快
(2)离线数仓架构(先看需求,只获取需要的,缺点:易导致多个数据集市的数据混乱和不一致)
    自下而上,先确认下游的计算需求,根据计算需求向上找要计算的数据,将需要计算的数据导入数仓
    维度表,分组数据
    事实表,计算内容
        用户主题分析 用到时间维度表 年月日
        商品主题分析 用到时间维度表 时分秒
```

 10.技术架构

```sql
-- 技术架构与数仓架构区别:数仓架构描述的是数据处理流程,技术架构描述的是实现数仓用的技术组成
数据源存储
    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.项目人员及开发周期介绍

```sql
项目经理
    管控整个项目的开发进度
    进行部门和人员协调
产品经理
    负责产品设计
        网站,app产品
数据分析师或数据产品经理
    负责主题需求设计
数据开发
    进行数仓搭建开发
业务开发
    网站,app
    前端开发
    后端开发
测试开发
    产品测试,检查功能是否完整,计算结果是否正确
大数据运维开发
    大数据软件安装,业务的上线部署,服务器维护
```

12.项目开发周期

```sql
产品调研:说明该项目开发原因,形成立项报告进行审批
数仓设计:设计数仓分层,技术选型,数仓表设计
数仓开发
集成测试:测试数仓开发的代码是否计算正确
上线部署
```

13.项目服务器选择

```sql
物理服务器还是云服务器
    成本问题
    项目中选择物理机 配置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%
```

4.CDH介绍

```sql
--(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架构

```sql
--(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.

```sql
服务器说明
hadoop01 192.168.88.80
hadoop02 192.168.88.81
账户 root
密码 123456
注意:需要通过域名访问hadoop服务,就需要更改windos下域名解析文件
访问Server: http://hadoop01:7180/cmf/login
账号密码均为admin
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值