1、为什么要建设数据仓库?
为了更快更好的响应业务上的分析需求。
传统数据库是操作型数据库,数据仓库是分析型数据库
1.1、数据仓库建设方法?
建设流程:梳理业务主题--》ER图(ER模型)--》逻辑建模(关系模型)。其中,数据仓库建设过程即ER图到关系模型的实现过程,数仓模型也属于关系模型中的一种,只是在此基础上需要考虑几个问题:
1)哪些维度对分析主题有用?
2)如何使用当前数据建设维表?
3)用什么指标度量主题?
4)如何使用当前数据建设事实表?
1.2、什么要设计数据分层?
1)数据结构更清晰
2)开发过程更明了
3)级联关系更明确、口径更统一
4)复杂问题标准化
1.3、数据层级有哪些?
数据源--》数据缓冲层--》数据明细层--》数据中间层--》数据分析层--》数据应用层,越往上层,聚合程度越高。
1)数据缓冲层:从数据源中接入并ETL抽取出来的数据
2)数据明细层:将数据缓冲层按照维度抽离、主题抽取形成的事实表,粒度一般在秒级以下
3)数据中间层:常用维度的轻度汇总表,保留了通用维度
4)数据分析层:为主题服务的主题宽表,仅保留1~2个能反映主题的维度
5)数据应用层:制作报表的上层汇总表,粒度一般在天级以上
1.4、数据仓库建设时,如何设计数据体系?
设计流程:梳理业务--》提炼主题--》提炼维度--》提炼事件、提炼度量--》思考公共维表设计--》思考主题事实表设计--》思考多维分析表设计
2、为什么要做元数据管理?
为了更好的管理不同层级数据表的属性,以及其间的关联关系、父子关系,以实现快速追溯、核查。
3、为什么要做数据质量管理?
为了保证数据的完整性、准确性、一致性、及时性。一旦数据质量出现问题,任何用数据作支撑的业务分析都是无价值的。
3.1、数据质量管理哪些方面?
1)完整性:缺失值,记录的缺失或者字段值的缺失,通常在数据接入层。
2)准确性:异常值,数据记录中是否存在异常值或错误值,通常在数据清洗层。
3)一致性:口径统一,各个指标在不同层不同表的统计口径是否保持一致,通常在数据清洗层。
4)及时性:响应时间,数据结果能否及时输出给到服务方,通常在数据结果层。
3.2、数据质量管理办法?
异常监测规则--》异常告警--》反馈处理
异常监测:完整性 - 一般监测表的数据量波动情况;准确性 - 一般监测通用维度下的数据量波动情况;一致性 - 比较不同表出处的指标大小;及时性 - 统计各表输出结果的运行时间(算法监控设计)
异常告警:设定告警的可用规则,配置相应的告警。
反馈处理:可以对告警进行标记,可以对告警进行处理