数据仓库概念

数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。

输入数据形式

数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等。

  • 业务数据(通过Sqoop框架
    各行业在处理事务过程中产生的数据。通常存储在MySQL、Oracle等数据库中。
  • 用户行为数据(用文件形式存储,采用Flume框架,存储在hive中)
    用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
    <流量采集也更像是用户行为数据的采集,重点在于分析用户使用的协议、流量的页面等等>
  • 爬虫数据
    通过技术手段获取其他公司网站的数据。
    <无载体项目中涉及该部分>

数据仓库对数据的处理

备份(ODS)、清洗(DWD)、聚合(DWS,DWT)、统计(ADS)

数据仓库存储 mysql 数据仓库存储什么数据_服务器

数据输出

报表系统、用户画像、推荐系统、机器学习

任务调度工具

Azkaban/Oozie

项目需求

数据仓库存储 mysql 数据仓库存储什么数据_数据_02

技术选型

Kafka 遇到双十一等数据量很大的时候,可以先将数据缓存到Kafka中,然后慢慢往数仓中写,起到缓冲的作用。

数据仓库存储 mysql 数据仓库存储什么数据_数据仓库存储 mysql_03

系统数据流程设计

1.项目需求
2.集群规模 - 先假设每台服务器的配置,确定日活跃用户100万,每人每天产生100条日志:100万100=1亿条;每条日志1K左右,每条1亿条;100000000/1024/1024=约100G;半年内不扩容服务器 100G180天=18T;副本数:18*3=54T;预留20%-30%Buf:54/0.7=77T; 如果考虑数仓分层和 压缩,要重新再计算。
3.服务器选型 -选择云主机可以省去运维成本,快速上手;物理机 数据安全、保密,长期打算、资金充足的选物理机。
4.框架版本选型
5.技术选型

数据仓库存储 mysql 数据仓库存储什么数据_数据仓库_04

  • Nginx起到负载均衡的作用,将业务来的数据均衡地分配到各服务器中
  • 日志服务器的数据保存30天,数据是最重要的,磁盘是最廉价的
  • ZooKeeper是一个分布式协调服务,它的主要作用是为分布式系统提供一致性服务,提供的功能包括:配置维护、命名服务、分布式同步、组服务等。Kafka的运行依赖ZooKeeper。
  • HDFS小文件:Har归档、CombineTextInputformat、JVM重用

Apache框架版本

数据仓库存储 mysql 数据仓库存储什么数据_数据_05

测试集群的搭建

数据仓库存储 mysql 数据仓库存储什么数据_数据仓库存储 mysql_06

主流埋点方式

目前主流的埋点方式,有代码埋点(前端/后端)、可视化埋点、全埋点三种。

  • 代码埋点是通过调用埋点SDK函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。例如,我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮对应的 OnClick 函数里面调用SDK提供的数据发送接口,来发送数据。
  • 可视化埋点只需要研发人员集成采集 SDK,不需要写埋点代码,业务人员就可以通过访问分析平台的“圈选”功能,来“圈”出需要对用户行为进行捕捉的控件,并对该事件进行命名。圈选完毕后,这些配置会同步到各个用户的终端上,由采集 SDK 按照圈选的配置自动进行用户行为数据的采集和发送。
  • 全埋点是通过在产品中嵌入SDK,前端自动采集页面上的全部用户行为事件,上报埋点数据,相当于做了一个统一的埋点。然后再通过界面配置哪些数据需要在系统里面进行分析。

埋点数据上报机制

埋点数据上报时机包括两种方式。

  • 方式一,在离开该页面时,上传在这个页面产生的所有数据(页面、事件、曝光、错误等)。优点,批处理,减少了服务器接收数据压力,网络IO少了。缺点,不是特别及时。
  • 方式二,每个事件、动作、错误等,产生后,立即发送。优点,响应及时。缺点,对服务器接收数据压力比较大。
    本次项目采用方式一埋点。