从0-1建设数仓遇到什么问题?怎么解决的?
这个应该算是比较高频的高级的面试题了,第一次听到这个面试题是几个月以前,朋友面试华为阿里滴滴啥的都有问到,近期老徐面微店蚂蚁美团都问到了,所以还是应该引起重视
在交流群发起这个话题的时候,有响应但是没啥答案,可能是因为大家都不是从0-1搭建数仓的,或者不是数仓方向的,所以大家都在等待有经验的人来讨论一下这个问题,等啊等,硬是没等到。
非常遗憾,我也没从0-1搭建过数仓,但是刚好遇到公司模型优化迁移以及数仓内部建设,所以就勉为其难来说说我的看法,仅供参考
一 复杂业务梳理
数仓建设初期,需要了解各种业务,有些业务比较复杂,对数据开发人员的要求比较高,这个时候,需要和业务开发多交流沟通,可以看看他们的详细设计文档,ER图和时序图,多方位去了解,最终落成文档共享
二 技术选型困难
技术选型也是需要在数仓建设前就需要考虑的,从数据抽取同步到数据处理再入供需求方使用,需要选择比较合理的技术栈。根据实际需求去选择。
数据同步:sqoop datax
日志采集:flume logstash filebeat
资源调度:yarn
分布式存储:hdfs
数据处理:mr hive sparkcore sparksql flink
数据存储;hbase mysql es
OLAP:kylin clickhouse
接口开发:springboot
三 机器配置
根据数据量及表数量,预估任务数去选机器配置及数量
四 指标定义及指标体系建设
原子指标,派生指标的定义及命名,指标评审,指标体系建设
五 统一维度管理
维度管理,一致性维度的构建
六 口径梳理
开发之前一定要需求评审,需求方提供明确的口径,防止后续频繁返工
七 开发规范(文档)
模型规范
-
项目命名规范
-
表规范
-
测试表规范
-
字段规范
-
时间分区规范
-
任务规范
-
注释规范
-
指标一致性管理
-
词根管理
-
字典管理
任务上线流程
-
模式说明
-
任务开发
-
任务发布
运维
-
关键指标预警
-
报错处理
-
数据补录
八 缓慢变化维处理
九 数仓分层
十 主题划分
十一 模型建设
ER模型
维度模型
Data Vault模型
Anchor模型
其中,维度模型是数据仓库工程领域最流行的数据仓库建模的经典
十二 数据质量管理
十三 元数据管理
十四 统一用户识别
十五 hive调优
十六 数据漂移
我也还没整明白,可以参考《阿里巴巴大数据之路》
大家有更好的理解可以直接加我微信交流
深入探究order by,sort by,distribute by,cluster by