1. 项目需求分析

  1. 采集埋点的日志数据(文件形式
  2. 采集业务数据库中数据(结构化数据
  3. 数据仓库的搭建(用户行为数仓、业务数仓
  4. 分析统计业务指标
  5. 对结果进行可视化展示

    2. 项目框架

    2.1 阿里云技术框架

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

2.2 技术选型

需求 阿里云框架 开源框架
数据采集传输 采集文件日志: Flume、DataHub
业务数据(mysql):RDS
采集文件日志:Flume、Kafka
业务数据(mysql):Sqoop、DataX 定时导离线数据
数据存储 MaxCompute、DataWorks MySQL、Hadoop、HBase
数据计算 MaxCompute、DataWorks Hive(MapReduce引擎)、Spark、Flink
数据可视化 QuickBI Tableau、Echarts、Kibana

2.3 系统数据流程设计

第二章:项目需求及架构设计 - 图1

2.4 服务器购买

物理机 or 云主机

  • 机器成本
    • 物理机:主流:128G内存, 20核物理CPU, 40线程,8THDD(机械硬盘)和2TSSD(固态硬盘),价格4W+。服务器托管费用,寿命5年
    • 云主机:相同配置,每年5W
  • 运维成本
    • 物理机:专业运维人员,每月15000;电费
    • 云主机:很多运维工作由阿里云完成,运维相对较轻松

主流:中小型公司一般都采用云主机

集群规模计算

  1. 用户行为数据
    • 日活用户100万,每人一天平均100条: 100万 * 100条 = 1亿条
    • 每条日志1K左右,1亿 * 1K / 1024 / 1024 = 100G
    • 数仓ODS层采用LZO压缩 + parque链式存储: 100G压缩为10G左右
    • 数仓DWD层采用LZO压缩 + parque链式存储: 10G左右
    • 数仓DWS层轻度聚合存储(为了快速计算,不压缩):50G左右
    • 数仓ADS层:结果数据,数据量忽略不计
    • 保存3副本: 70G * 3 = 210G
    • 半年内不扩容服务器:210G * 180天 = 37T
    • 预留20%~30%Buf: 37T / 0.7 = 53T
  2. DataHub中数据
    • 每天100G * 副本(2) = 200G
    • 保存3天:200G * 3天 = 600G
    • 预留30%Buf = 600G / 0.7 =1T
  3. Flume中的缓存数据:忽略不计
  4. 业务数据
    • 日活100万、下单用户10万,每人每天产生的业务数据10条,每条日志1K左右: 10万 10条 1K = 1G左右
    • 数仓四层存储: 1G * 3 = 3G
    • 保存3副本: 3G * 3 = 9G
    • 半年内不扩容服务器:9G * 180天 = 1.6T
    • 预留20%~30%Buf: 1.6T / 0.7 = 2T

集群总规模: 53T + 1T + 2T = 56T
约 8T * 7 台服务器

购买建议

购买服务 建议配置 年成本 备注
DataHub medium 免费
MaxCompute 32CU * 7 35w 1CU = 1cpu + 4G内存
RDS 4核8G 1w 存放离线统计结果
QuickBI 高级版 4w+
年总成本 40w