本文主要是介绍数据分析特辑 - 数仓初入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
完全没想到在工作中也会有接触到数仓的一天,这里仅仅记录下在学习过程中一些特别入门的知识点,也帮自己总结总结~
为什么要建设数仓
- 方便沟通交流
- 提高排查问题的效率
- 提高数据开发的效率
代码复用、表复用等
复杂任务解耦(分散到各层或层内的不同表) - 提高数据质量,避免数据口径不一致等问题
- 减少存储成本和计算成本
数据库与数据仓库的区别
- 数据库是面向事务的设计,数据仓库是面向主题的设计
- 数据库一般服务于业务系统,数据仓库一般是服务于分析系统
- 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据
- 数据库设计是尽量避免冗余,数据仓库设计是有意引入冗余
- 数据库是为了捕获数据而设计,数据仓库是为分析数据而设计
实现轻量级数据仓库的考虑点
- 明确数据分层
- 确定可执行的表和字段命名规范
- 定期抽象出常用的中间表
- 建设元数据管理系统,或者建设文档库,提供中间表的文档说明
为什么要数据分层
- 清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解
- 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够极大减少重复计算
- 统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径
- 复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题
数仓分层设计
这一部分其实是需要结合自身所需进行设计的,不过在前期可以参考下大公司的设计方式,然后以业务所需为主做适当的删减,其中部分的层次如图所示:
- ODS
ODS层不建议做过多的数据清洗工作,主要是为了便于后面追溯数据问题 - DW
最重要的一层,需要按照主题建立各种数据模型,还可以细分不同的层次【主题上的设计也是很有讲究】 - DM
- APP
参考资料:木东居士的《数据随想录》
这篇关于数据分析特辑 - 数仓初入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!