2 大数据电商数仓项目——项目需求及架构设计

2.1 项目需求分析

  1. 用户行为数据采集平台搭建。
  2. 业务数据采集平台搭建。
  3. 数据仓库维度建模(核心):主要设计ODS、DWD、DWS、AWT、ADS等各个层的具体功能与实现方法。
  4. 分析设备、会员、商品、地区 、活动等电商核心主题,统计的报表指标近100个。
  5. 采用即席查询工具,随时进行指标分析。
  6. 对集群性能进行监控,发生异常需要报警。
  7. 元数据管理:最常用的是hive元数据以及存于MySQL中的,能够帮助实现任务调度中的可视化实现。
  8. 数据质量监控:主要是监控数据的变化与以及质量分析。
  9. 权限管理。

2.2 项目架构

2.2.1 技术选型

那么根据以上需求我们提出的思考问题:

  1. 项目技术如何选型?
    技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算

数据采集传输: Flume(用户行为数据)、Kafka(较大数据量时可以先缓冲数据)、Sqoop(业务数据)、Logstash(简单的日志数据)、DataX(业务数据)。
数据存储: MySQL(小量数据存储,如ADS查看报表)、HDFS(海量数据存储,如DWD)、HBase(存储kylin多维分析)、Redis(主要用于实时计算)、MongoDB(如存储爬虫数据,需要同步到数仓里)。
数据计算: Hive、Tez、Spark、Flink、Storm。放在不同的引擎中,计算速度等会有所不同。
数据查询: Presto(快速离线查询)、Kylin(离线查询)、Impala、Druid(快速实时查询)、ClickHouse(实时查询)、Doris。
数据可视化: Echarts(开源免费)、Superset、QuickBI(离线)、DataV(实时快速)。
任务调度: Azkaban(中小企业适用,易上手)、Oozie、DolphinScheduler(国内开源)、Airflow(Python)。
元数据管理: Atlas。
权限管理: Ranger、Sentry。

  • 框架版本如何选型(Apache、CDH、HDP)?
  • 服务器使用物理机还是云主机?
  • 如何确认集群规模?(确认服务器的大小以及数量)

2.2.2 项目流程设计

  • 项目需求
  • 集群规模
  • 服务器选型
  • 框架版本选型
  • 技术选型

系统数据流程设计

思考问题:

  • flume采集日志: flume组成、put事务、take事务、flume三个器、flume优化
  • kafka消息缓存: kafka基本信息、kafka挂了、kafka丢了、kafka重复、kafka积压、kafka优化、kafka高效读写原因。
  • zookeeper分布式协调: 部署多少台、内部选举机制。
  • HDFS: Har归档、CombineTextInputformat、JVM重用。
  • sqoop数据同步: 需要考虑常出现的空值、一致性、数据倾斜问题,以及每天导入的数据量、执行时间。
  • hive on spark: 数仓分层。
  • klyin多维分析: 其处理后的数据存储在HBase中。

2.2.3 框架版本选型

见下图所示:
其中,EMR框架只需要直接选择相应框架的数量等即可一键搭建与部署;MaCcomputer、DataWorks提供独立于EMR之外的一个数据分析框架。

具体版本型号:(以Apache为例)

2.2.4 服务器选型

服务器选物理机还是云主机?
物理机:
一般物理机寿命5年左右,需要专业的运维人员以及考虑电费、放置环境等,一般有长期打算且资金充足的企业会选择物理机。
云主机:
几乎不需要考虑运维工作等因素,直接付费就可以使用,十分适合短期使用,可以即使释放资源。

2.2.5 集群规模

  1. 如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)
    (1)每天日活跃用户100万,每人一天平均100条:100万100条=1亿条
    (2)每条日志1K左右,每天1亿条:100000000/1024/1021=约100G
    (3)半年内不扩容服务器来算:100G
    180天=约18T
    (4)保存3个副本:18T3=54T
    (5)预留20%~30%Buf=54T/0.7=77T
    (6)算到这:约8T
    10台服务器
    2.如果考虑数仓分层?数据采用压缩?需要重新再计算

集群资源规划设计

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

生产集群规划原则:

  1. 消耗内存的分开,如Hadoop的nn和rm
  2. 数据传输数据比较紧密的放在一起(如kafka、zookeeper)
  3. 客户端尽量放在一到两台服务器上,方便外部访问(如hive和spark)
  4. 有依赖关系的尽量放到同一台服务器(例如Hive和Azkaban Executor)
    测试集群服务器规划:

一般测试集群三台服务器即可。
下一章,我们将开始介绍数据生成模块的实现。

2 大数据电商数仓项目——项目需求及架构设计相关推荐

  1. 大数据电商数仓分析项目

  2. 大数据电商数仓实战v5.0 (尚硅谷)

    电商数仓实战 环境搭建快速回忆 这次详细写!------阿里云ECS云服务器抢占式 1.进入环境先创建wts用户 1.useradd wts 2.passwd wts 去/home/下查看有没有wts ...

  3. 大数据电商数仓--记录各种奇奇怪怪的issue

    目录 hive on spark报错:Failed to create Spark client for Spark session hive格式化报错Error hive执行sql语句报错:org. ...

  4. 大数据---离线数仓实战项目(四)

    离线数仓实战---网站流量日志分析系统 一.模块开发---数据生成模块 1.1.目标数据 1.1.1.页面数据 1.1.2.事件数据 1.1.3.曝光数据 1.1.4.启动数据 1.1.5.错误数据 ...

  5. 大数据Flink电商数仓实战项目流程全解(一)

    项目整体思路和架构 项目最终成果展示: 本项目主要参考尚硅谷的Flink实时数仓项目完成,最近又重新跑了一遍,项目整体我会在后续上传到码云中, 也会逐步同步更新到博客中来,里面不仅包含了整体代码和整个 ...

  6. 百分点大数据技术团队:可插拔OSS架构设计和实战经验

    编者按:随着互联网.大数据和人工智能等技术的发展,信息资源得到最大程度的共享,但随之而来的海量文件存取的功能和性能问题也日渐突出.在政务领域解决方案中,对象存储往往扮演着非常重要的角色,如全国各地的健 ...

  7. 大数据之电商数仓(2) | 项目经验之Hadoop

    目录 Hadoop项目经验 HDFS存储多目录 支持LZO压缩配置 LZO 创建索引 基准测试 Hadoop参数调优 Hadoop项目经验 HDFS存储多目录 1.确认HDFS的存储目录,保证存储在空 ...

  8. 计算机毕业设计之SpringBoot+Vue.js+WebMagic电商数据分析 电商大数据 电商数据采集系统 电商大屏 大数据毕业设计 电商知识图谱

    需求 近5年电商企业社会责任数据,数据可视化 (1) 社会责任数据 (2) 电商企业:(30家左右的数据即可) 1-10名:阿里巴巴.美团点评.拼多多.京东.小米集团.滴滴.贝壳找房.京东健康.阿里健 ...

  9. 大数据电商数据仓库系统搭建 附离线安装包

    一.数仓理论 1.数据仓库概念 数据仓库(Data Warehouse),是为企业所有决策制定过程,提供所有系统数据支持的战略集合.通过对数据仓库中数据的分析,可以帮助企业,改进业务流程.控制成本.提 ...

最新文章

  1. webView用法小结
  2. Spark详解(九):Spark存储原理分析
  3. 《编程原本 》一第2章 变换及其轨道
  4. 恒生证券期货行业用户维稳工作指引(一)
  5. 准程序员必看!该怎么规划自己的职业人生,看看前辈们给的建议!
  6. C语言:求矩阵对角线元素的和
  7. xkcd目录_12条展示AI真相的XKCD片段
  8. LupoScan | 实景化点云数据处理软件
  9. 晒晒那些我在云栖社区获得的奖品
  10. Fiddler出现“The system proxy was changed. Click to reenable capturing.”,代理排查
  11. 微信扫码下载APK解决方案
  12. 【安洵杯 2019】easy-web
  13. android画面传输到电视,想把手机画面投屏到电视上,这个方法最简单!(收藏)...
  14. DOTA2攻速计算公式研究
  15. PyCharm中光标变粗的解决方法
  16. error C2872: 'ULONG_PTR' : ambiguous symbol
  17. 键盘上F1~F12各个功能键的作用
  18. “有些时候,想要赢得天才的尊重,就只能违抗他” |【经纬低调分享】
  19. 网站建设(3)——CDN及CDN加速原理
  20. php5.3升级到php5.6

热门文章

  1. cnpm安装 指定版本_vue npm install安装某个指定版本的方法
  2. BufferedReader读文件
  3. 奈学 AI架构师 p6,p7,p8
  4. 【安卓学习笔记】安卓的事件处理
  5. KeyShot宝石效果材质
  6. Python:实现newton raphson牛顿-拉夫森算法(附完整源码)
  7. NFT游戏开发元宇宙游戏开发游戏源码+搭建
  8. 微信小程序按钮实现点击复制功能的步骤
  9. 项目管理从需求管理开始--不懂需求管理还敢带项目?
  10. LPR车牌识别-pytorch上分之路