文章目录

  • 1.数据仓库概念
  • 2. 项目需求及架构设计
    • 2.1 项目需求分析
      • 2.1.1 采集平台
      • 2.1.2 离线需求
      • 2.1.3 实时需求
      • 2.1.4 思考题
    • 2.2 项目框架
      • 2.2.1 技术选型
      • 2.2.2 系统数据流程设计
      • 2.2.3 框架版本选型
        • 2.2.3.1 Apache框架版本
      • 2.2.4 服务器选型
        • 2.2.4.1 物理机:
        • 2.2.4.2 云主机:
        • 2.2.4.3 企业选择
      • 2.2.5 集群规模
      • 2.2.6 集群资源规划设计
        • 2.2.6.1 生产集群
        • 2.2.6.2 测试集群服务器规划

1.数据仓库概念

  数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
  业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。
  用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
  爬虫数据:通常是通过技术手段获取其他公司网站的数据。不建议去做。


数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:备份、清洗、聚合、统计等。

2. 项目需求及架构设计

2.1 项目需求分析

2.1.1 采集平台

(1)用户行为数据采集平台搭建
(2)业务数据采集平台搭建

2.1.2 离线需求

2.1.3 实时需求

2.1.4 思考题

1、项目技术如何选型?
2、框架版本如何选型(Apache、CDH、HDP)
3、服务器使用物理机还是云主机?
4、如何确认集群规模?(假设每台服务器8T硬盘)

2.2 项目框架

2.2.1 技术选型

2.2.2 系统数据流程设计

2.2.3 框架版本选型

1)如何选择Apache/CDH/HDP版本?
(1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员) (建议使用)
(2)CDH:国内使用最多的版本,但CM不开源,今年开始收费,一个节点1万美金/年。
(3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少
2)云服务选择
(1)阿里云的EMR、MaxCompute、DataWorks
(2)亚马逊云EMR
(3)腾讯云EMR
(4)华为云EMR

2.2.3.1 Apache框架版本

框架 新版本
Hadoop 3.1.3
Zookeeper 3.5.7
MySQL 5.7.16
Hive 3.1.2
Flume 1.9.0
Kafka 3.0.0
Spark 3.0.0
DataX 3.0.0
Superset 1.3.2
DolphinScheduler 2.0.3
Maxwell 1.29.2
Flink 1.13.0
Redis 6.0.8
Hbase 2.0.5
ClickHouse 20.4.5.36-2

注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。

2.2.4 服务器选型

服务器选择物理机还是云主机?

2.2.4.1 物理机:

以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4W出头。一般物理机寿命5年左右。
需要有专业的运维人员,平均一个月1万。电费也是不少的开销。

2.2.4.2 云主机:

云主机:以阿里云为例,差不多相同配置,每年5W。
很多运维工作都由阿里云完成,运维相对较轻松

2.2.4.3 企业选择

金融有钱公司和阿里没有直接冲突的公司选择阿里云
中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机。
有长期打算,资金比较足,选择物理机。

2.2.5 集群规模

1)如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)

(1)每天日活跃用户100万,每人一天平均100条:100万*100条=1亿条
(2)每条日志1K左右,每天1亿条:100000000 / 1024 / 1024 = 约100G
(3)半年内不扩容服务器来算:100G*180天=约18T
(4)保存3副本:18T*3=54T
(5)预留20%~30%Buf=54T/0.7=77T
(6)算到这:约8T*10台服务器

2)如果考虑数仓分层?数据采用压缩?需要重新再计算

2.2.6 集群资源规划设计

在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。

2.2.6.1 生产集群

(1)消耗内存的分开
(2)数据传输数据比较紧密的放在一起(Kafka 、Zookeeper)
(3)客户端尽量放在一到两台服务器上,方便外部访问
(4)有依赖关系的尽量放到同一台服务器(例如:Hive和mysql)

Master Master core core core common common common
nn nn dn dn dn JournalNode JournalNode JournalNode
rm rm nm nm nm
zk zk zk
hive hive hive hive hive
kafka kafka kafka
spark spark spark spark spark
datax datax datax datax datax
Ds-master Ds-master Ds-worker Ds-worker Ds-worker
maxwell
supset
mysql
flume flume
flink flink
clickhouse
redis
hbase

2.2.6.2 测试集群服务器规划

服务名称 子服务 服务器hadoop102 服务器hadoop103 服务器hadoop104
HDFS NameNode
HDFS DataNode
HDFS SecondaryNameNode
Yarn NodeManager
Yarn Resourcemanager
Zookeeper Zookeeper Server
Flume(采集日志) Flume
Kafka Kafka
Flume(消费Kafka日志) Flume
Flume(消费Kafka业务) Flume
Hive
MySQL MySQL
DataX
Spark
DolphinScheduler ApiApplicationServer
DolphinScheduler AlertServer
DolphinScheduler MasterServer
DolphinScheduler WorkerServer
DolphinScheduler LoggerServer
Superset Superset
Flink
ClickHouse
Redis
Hbase
服务数总计 20 11 12

大数据项目之电商数仓、数据仓库概念、项目需求及架构设计相关推荐

  1. 尚硅谷大数据项目之电商数仓(4即席查询数据仓库)

    尚硅谷大数据项目之电商数仓(即席查询) (作者:尚硅谷大数据研发部) 版本:V4.0 第1章 Presto 1.1 Presto简介 1.1.1 Presto概念 1.1.2 Presto架构 1.1 ...

  2. 大数据实战项目之电商数仓(一)

    大数据实战项目之电商数仓(一) 项目介绍 数据仓库概念 ​ 数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合.通过对数据仓库中数据的分析,可以帮助企业改进业务流程,控制成本,提高产品质 ...

  3. 31 大数据项目之电商数仓(用户行为数据采集)

    文章目录 第1章 大数据项目之电商数仓(用户行为数据采集) 第2章 项目需求 2.1 项目需求分析 2.2 项目框架 2.2.1 技术选型 2.2.2 系统架构图设计 2.2.3 系统数据流程设计 2 ...

  4. 复盘离线电商数仓3.0项目–数据开发梳理

    复盘离线电商数仓项目–数据开发梳理 业务数据 数仓分层 ods层到ads层的开发 开源BI工具Superset ODS层业务数据&日志数据 ods层业务数据 使用Sqoop脚本从Mysql数据 ...

  5. 大数据项目之电商数仓、业务数据介绍、电商系统表结构

    文章目录 6. 业务数据介绍 6.1 电商系统表结构 6.1.1 活动信息表(activity_info) 6.1.2 活动规则表(activity_rule) 6.1.3 活动商品关联表(activ ...

  6. 大数据项目之电商数仓(业务数据仓库)

    第1章 电商业务与数据结构简介 1.1 电商业务流程 1.2 电商表结构 电商业务流程 1.2.1 电商常识(SKU.SPU) SKU=Stock Keeping Unit(库存量单位).即库存进出计 ...

  7. 大数据项目之电商数仓离线计算

    本次项目是基于企业大数据的电商经典案例项目(大数据日志以及网站数据分析),业务分析.技术选型.架构设计.集群规划.安装部署.整合继承与开发和web可视化交互设计. 1.系统数据流程设计 我这里主要分享 ...

  8. 大数据项目之电商数仓(3电商数据仓库系统)V6.1.3

    第1章 数仓分层1.1 为什么要分层 1.2 数据集市与数据仓库概念 1.3 数仓命名规范1.3.1 表命名ODS层命名为ods_表名DWD层命名为dwd_dim/fact_表名DWS层命名为d ...

  9. 33 大数据项目之电商数仓(电商数据仓库系统)

    文章目录 写SQL的规律 第 1 章 数仓分层 1.1 为什么要分层 1.2 数据集市与数据仓库概念 1.3 数仓命名规范 1.3.1 表命名 1.3.2 脚本命名 第 2 章 数仓理论 2.1 范式 ...

最新文章

  1. 解决 IndyFTp 乱码问题 10.6.0
  2. HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果
  3. video标签 添加视频
  4. cad lisp 两侧偏移并删除_弱电CAD不算CAD?学学操作,将手速发挥极致,让他人刮目相看...
  5. 详解DPoS共识算法
  6. 记一个鼠标略过时候的css动画
  7. 架构之:微服务和单体服务之争
  8. the first day
  9. python celery应用场景_Celery使用背景与功能概要
  10. C# ComboBox自动完成功能的例子
  11. 移动终端的应用杀掉进程后,接收消息启动应用的简要技术说明
  12. 废旧光盘手工小制作_变废为宝:废旧CD光盘制作纸巾盒
  13. Android开发-魔窗DeeplinkDemo-AndroidStudio
  14. Java 判断对象是否所有属性为空
  15. 学编程好比学游泳——欠炼
  16. 千岛湖自助游记--给力
  17. [SV]SystemVerilog学习笔记之struct union
  18. 第七届青年地学论坛女科学家论坛学习
  19. Druid源码解析之Segment
  20. 让JAVA 中Swing界面更加美观

热门文章

  1. clientHeight、offsetHeight、scrollHeight、scrollTop
  2. 小米云网站服务器错误代码,小米健康云开放平台iOS SDK使用指南
  3. 修改freeradius服务器配置
  4. Python学习笔记Day01--Day06
  5. 在Winform环境下Scottplot简单入门
  6. MySQL的多表关联查询
  7. excel服务器客户端在哪个文件夹,excel服务器客户端安装配置
  8. django的优缺点
  9. 论文阅读《Dense Relation Distillation with Context-aware Aggregation for Few-Shot Object Detection》
  10. elastic-job 有没有java 接口去触发定时任务执行