数据仓库建设前期准备
一、数仓概念
- 数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
- 数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
- 业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。
- 用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
- 爬虫数据:通常事通过技术手段获取其他公司网站的数据。
二、项目需求及架构设计
1. 项目需求分析
- 用户行为数据采集平台
- 业务数据采集平台
- 数据传输平台
- 数据仓库维度建模
- 分析电商核心主题、统计相关报表
- 即席查询平台
- 监控告警平台
- 元数据管理平台
- 数据质量平台
- 权限管理平台
2. 项目框架
- 技术选型
- 考虑因素:
- 数据量大小
- 业务需求:准确性、时效性等
- 行业内经验:技术在行业内是否普及,相关文章文档是否比较齐全
- 技术成熟度
- 开发维护成本
- 成本预算
- 数据传输:Flume、Kafka、Sqoop、DataX、Seatunnel(Waterdrop)、Spark、Flink、Logstash、Filebeat、Scribe
- 数据存储:MySQL、HDFS、HBase、Redis、MongoDB、Doris/StarRocks
- 数据计算:Hive、Tez、Spark、Flink、Strom
- 数据查询:Presto、Kylin、Impala、Druid、ClickHouse、Doris/StarRocks
- 数据可视化:Echarts、Superset、QuickBI、DataV
- 任务调度:Azkaban、Oozie、DolphinScheduler、Airflow
- 集群监控:Zabbix、Prometheux
- 元数据管理:Atlas
- 权限管理:Ranger、Sentry
-
数据流程规划
-
版本选型
- 框架版本一般选择半年前左右的稳定版
二、机器规划
个人学习使用,就用VMare安装虚拟机,模拟集群。(之前买过阿里云ecs,用了一段时间,感觉长期用的话,自己买主机更合算,淘了台洋垃圾) ^ . ^
三、准备数据
以电商行业为例,要收集和分析的数据主要包括页面数据、事件数据、曝光数据、启动数据和错误数据。
1. 页面数据
页面数据主要记录在一个页面内,用户的访问情况,包括访问时间、停留时间、页面路径等信息。
- page_id:页面id
home("首页"),
category("分类页"),
discovery("发现页"),
top_n("热门排行"),
favor("收藏页"),
search("搜索页"),
good_list("商品列表页"),
good_detail("商品详情"),
good_spec("商品规格"),
comment("评价"),
comment_done("评价完成"),
comment_list("评价列表"),
cart("购物车"),
trade("下单结算"),
payment("支付页面"),
payment_done("支付完成"),
orders_all("全部订单"),
orders_unpaid("订单待支付"),
orders_undelivered("订单待发货"),
orders_unreceipted("订单待收货"),
orders_wait_comment("订单待评价"),
mine("我的"),
activity("活动"),
login("登录"),
register(