数仓进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控。数仓分层主要有以下优点:
1、划清层次结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
2、数据血缘的追踪:简单来讲理解为我们最终给下游是直接能使用的业务表,但是它的来源表有很多,如果有一张来源表出问题了,我们希望能够快速地定位到问题,并清除它的危害范围。
3.减少重复开发:规范数据的分层,开发一些通用的中间层数据,能够减少极大的重复计算。
4.把复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解,而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
5.屏蔽原始数据的异常:屏蔽业务的影响,不必改一次业务就需要重新接入数据。
2、数据仓库分为哪几层ODS 层:Operation Data Store ,数据准备区,贴源层。直接接入源数据的:业务库、埋点日志、消息队列等。
DWD 层:Data Warehouse Details ,数据明细层,属于业务层和数据仓库层的隔离层,把持和 ODS 层相同的粒度。进行数据清洗和规范化操作,去空值/脏数据、离群值等。
DWM层:Data Warehouse milddle,数据中间层,在 DWD 的基础上进行轻微的聚合操作,算出相应的统计指标。
DWS 层:Data warehouse service,数据服务层,在 DWM 的基础上,整合汇总一个主题的数据服务层。汇总结果一般为宽表,用于 OLAP 、数据分发等。
ADS 层:Application data service ,数据应用层,存放在 ES、Redis、PostgreSql 等系统中,供数据分析和挖掘使用。
3、离线批处理离线批处理是指对海量历史数据进行处理和分析,供下一步数据应用使用的过程。
4、函数分类1.聚合函数:聚合函数是一种基本的SQL函数,它对一组值执行计算,返回单个值。
2.窗口函数:是指既可以显示原始基础数据也可以显示聚合数据的函数。
5、什么是数据仓库数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
1)数据仓库是用于支持决策、面向分析型数据处理。
2)对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
6、数据仓库和数据库的区别1.数据库是面向事务处理的,数据是由日常的业务产生的,并且是频繁更新的;数据仓库是面向主题的,数据来源多样化,经过一定的规则转换得到的,用于分析和决策。
2.数据库一般用来存储当前事务性数据,如交易数据;数据仓库一般存储的是历史数据。
3.数据库设计一般符合三范式,有最大的精确度和最小的冗余度,有利于数据的插入;数据仓库设计一般不符合三范式,有利于查询。
7、如何构建数据仓库数据仓库模型的选择是灵活的,不局限与某种模型的方法;数据仓库数据是灵活的,以实际需求场景为导向;数仓设计要兼顾灵活性、可扩展性、要考虑技术可靠性和实现成本。
1、调研:业务调研、需求调研、数据调研。
2、划分主题域:通过业务调研、需求调研、数据调研最终确认主题域。
3、构建总线矩阵、维度建模:
总线矩阵:把总线架构列表形成矩形形式,行表示业务处理过程,即事实,列表示一致性的维度,在交叉点上打上标记表示该业务处理过程与该维度相关(交叉探查)。
4、设计数仓分层架构。
5、模型落地。
6.数据治理。
8、数据质量最关键的六个维度数据质量规则是数据质量最核心的内容,数据质量规则和指标设计的全与不全,是否合理,决定了数据的质量好坏。
1、完整性:指数据在录入、传递过程中无缺失和遗漏,包括实体完整、属性完整、记录完整和字段值完整四个方面。
2、及时性:指及时记录和传递相关数据,满足业务对信息获取时间的要求。
3、有效性:指数据的值、格式和展现形式符合数据定义和业务定义的要求。
4、一致性:指遵循统一的数据标准记录和传递数据和信息,主要体现在数据记录是否规范、数据是否否和逻辑。
5、唯一性:指同一数据只能有唯一的标识。
6、准确性:指真实的、准确得记录原始数据,无虚假数据及信息。
7、表分区的优缺点优点:
1)改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。
2)增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用。
3)维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可。
4)均衡 I/O :可以把不同的分区映射到不同磁盘以平衡 I/O,改善整个系统性能。
缺点:已经存在的表没有方法可以直接转化为分区表。
8、建模原则1、高内聚、低耦合:将业务相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型;将高概率同时访问的数据分开存储。
2.核心模型与扩展模型分离:建立核心模型与扩展模型体系,核心模型包括的字段支持常用的核心业务,扩展模型包括的字段支持个性化或少量应用的需要,不能让扩展模型的字段过度侵入核心模型,以免破坏核心模型的架构简洁性与可维护性。
3、公共处理逻辑下沉及单一:越是底层公用的处理逻辑越应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑多处同时存在。
4、成本与性能平衡:适当的数据冗余可换取查询和刷新性能,不宜过度冗余与数据复制。
5、数据可回滚:处理逻辑不变,在不同时间多次运行数据结果确定不变。
6、一致性:具有相同含义的字段在不同的表中的命名必须相同,必须使用规范定义中的名称。
7、命名清晰、可理解:表命名需清晰、一致、表名需易于消费者理解和使用。