阿里云离线数仓

第一章 数仓概念

数仓定义(Data Warehouse)

为企业所有决策制定过程,提供所有系统数据支持的战略合辑
说白了,公司所有的数据都可以汇聚到数据仓库里
公司的数据来源
- 日志采集系统
- 业务系统数据库
- 爬虫系统等 
所有业务部门的数据都可以放入数仓,数据库就无法完成这样的功能

数仓的好处

可帮助企业改进业务流程,控制成本,提高产品质量

数仓能做什么

清洗,转义,分类,重组,合并,拆分,统计等

数仓输出到哪里

报表系统 → 用户画像 → 推荐系统 → 机器学习 → 风控系统

第二章 项目需求及架构设计

项目需求分析

整个项目要做五件事儿
1. 采集埋点日志数据
	日志行为数据与业务数据如何区分?
	答:没有日志行为数据,网站可以正常工作,没有业务数据网站不能正常工作。比如,不去记录用户来到网站的
	行为,用户依然可以完成购买。但是没有价格等业务数据,用户无法支付,网站就无法工作。
	一般来说,日志数据是以文件形式存储的,业务数据是存储在Mysql数据库中的。
	
2. 采集业务数据库中的数据
	
3. 数仓的搭建(用户行为数仓、业务数仓)

4. 分析统计业务指标

5. 对结果进行可视化展示

项目框架

阿里云产品简介类比
DataHub数据总线Kafka + 各种服务接口
MaxCompute大数据计算框架Hadoop + Hive + 调度器
DataWorks可视化MaxCompute的开发管理平台目前没有
RDS关系型数据库Mysql
QuickBI可视化数据展示工具Tableau或Echarts或Kibana
ECS弹性服务器Linux服务器

技术选型

用途阿里云框架开源框架
数据采集传输Flume(日志) + DataHub + RDS(业务)Flume + Kafka(日志) + Sqoop + DataX(业务)
数据存储MaxCompute + DataWorksMysql + Hadoop(或Hbase)
数据计算MaxCompute + DataWorksHive+Spark(或Flink)
数据可视化QuickBITableau或Echarts或Kibana

系统数据流程设计
在这里插入图片描述
服务器选型

服务器选物理机还是云主机?
1. 机器成本考虑
	物理机:物理服务器本身费用,需要托管费用,一般寿命为5年
	云主机:差不多的配置,每年费用与物理机差不多
2. 运维成本考虑
	物理机:需要有专业的运维人员,平均每月15k,电费

集群资源规划设计

一、用户行为数据
1. 每天日活用户100万,每人一天平均100条:100万*100=10000万条
2. 每条日志1k左右,每天1亿条:100000000 / 1024 / 1024 ≈ 100G
3. 数仓ODS层采用LZO + parquet存储:100g压缩为10g左右
4. 数仓DWD层采用LZO + parquet存储:100g压缩为10g左右
5. 数仓DWS层轻度聚合存储(为了快速运算,不压缩)50g左右
6. 数仓ADS层数据量很小:忽略不计
7. 保存 3 副本:70g * 3 = 210g
8. 半年内不扩容:210g * 180天 ≈ 37T
9. 预留 20% ~ 30% Buf = 37T / 0.7 = 53T

二、DataHub中的数据
10. 每天约 100g * 副本2 = 200g
11. 保存 3 天 * 200g = 600g
12.预留 30%Buff = 600g / 0.7 = 857g ≈ 1T

三、Flume中默认缓存的数据比较小:暂时忽略不计

四、业务数据
1.  

购买服务器建议

第四章 数据采集模块

阿里云服务器准备

云服务器ECS(Elastic Compute Service),弹性可伸缩的计算服务(服务器的配置可以随着需求任意改变)
计费方式
① 包年包月
② 按量付费
③ 抢占式实例
生产需求一般选包年包月或者按量付费

服务器所在地域选择
尽量选里公司近的,网络传输的效率更高

配置实例名称,主机名称

配置安全组
添加安全组规则
数据库端口3306/3306
授权对象:所有外网 0.0.0.0/0  另根据需要配置,实际应添加本机IP

ECS配置升级
① 停止实例
② 更改实例规格

基础环境准备

配置主机名称
① 查看主机名称,hostname命令
② 如果感觉主机名需要修改,编辑/etc/sysconfig/nentwork文件
	NETWORKING=yes
	HOSTNAME= 
	注意:主机名称不要有“_”下划线
③ 修改主机名称后,需要重启服务器,主机名才能生效

配置主机名称映射
① 查看阿里云分配的私有IP地址
② 根据阿里云分配的私有IP地址,配置主机名称映射,打开/etc/hosts,增加另外的ECS私有ip地址

DataWorks和MaxCompute

MaxCompute(大数据计算服务)是阿里巴巴自主研发的海量数据处理平台?主要提供数据上传和下载通道,提供SQL及MapReduce等多种计算
分析服务和安全解决方案
DataWorks(数据工厂,原大数据开发套件)是基于MaxCompute计算引擎的一站式大数据工厂,可完成数据集成、开发、治理、服务、质量、
安全等全套数据研发
DataWorks和MaxCompute一起提供了ETL和数仓管理功能,以及SQL、MR、Graph等多种经典的分布式计算模型

第六章 业务数仓理论

表的分类

1. 实体表:一个现实存在的业务对象,比如用户、商品、商家、销售员等
2. 维度表:对应一些业务状态、编号的解释表。也可称之为码表,比如地区表、订单状态、支付方式、商品分类等
3. 事务型事实表:指随着业务发生不断产生的数据。特点是,一旦发生不会再变化,如,交易流水,操作日志,出库入
库记录等
4. 周期型事实表:指随着业务发生不断产生的数据,与事务型不同的是,数据会随着业务的周期性的推进而变化,如,
订单,其中订单状态会周期性变化

同步策略

1. 全量表:存储完整数据
2. 增量表:存储新增数据
3. 新增及变化表:存储新增加的数据和变化的数据

实体表同步策略
	实体表:如用户,商品,商家,销售员等
	实体表数据量较小:通常可以做每日全量,即每天存一份完整数据。即每日全量

维度表同步策略
	维度表:如订单状态、审批状态、商品分类
	维度表数据量比较小:通常可以做每日全量,即每天存一份完整数据。即每日全量
	注意:
	① 针对可能会有变化的状态数据可以存储每日全量
	② 没有变化的客观世界的维度(如,性别,地区,民族,政治成分,鞋子尺码)可以只存一分固定值

事务型事实表同步策略
	事务型事实表:如,交易流水,操作日志,出入库记录等
	因为数据不会变化,而且数据量巨大,所以每天只同步新增数据即可,所以可以做成每日增量表,即每日创建一个
	分区存储

周期型事实表同步策略
这类表从数据量的角度,存每日全量的话,数据量太大,冗余也太大。如果用每日增量的话无法反映数据变化。
每日新增及变化量,包括了当日的新增和修改

第七章 业务数仓搭建

业务数仓系统流程设计
在这里插入图片描述
业务表结构

业务数仓分层
在这里插入图片描述
RDS服务器准备

例:192.168.0.0\24 指 允许192.168.0.1到192.168.0.255的指定ip地址访问RDS

ODS层数据表创建

方式1:一张一张建表
方式2:在DataStudio临时查询中统一执行建表语句
	点击 数据开发→业务名称→表→右键导入表→选表

数据同步

目前MySQL里面的数据已经有了,ODS层表也已建好,需要创建一个脚本将MySQL中的数据同步到ODS层
1. 建立数据同步节点
数据集成→新建数据集成节点→数据同步
填写节点名称(表名+后缀,见名知义就好,例如:ods_user_info_sync)

2. 新增数据源

ODS层调度

DWD层调度

DWD层一般是对ODS层数据进行一定的清洗加工,如果是面对关系导入过来的数据表,还需要把原本的关系型表
结构,进行一定程度的维度退化,作为更易处理的明细数据
如:ODS地区 +  ODS省份 = DWD省份地区
		ODS商品信息 + ODS品牌 + ODS商品一级分类 = DWD商品信息
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值