
之前的文章——网站数据分析的一些问题(二)中主要整理了BI相关的问题,这篇文章主要想整理一些数据仓库相关的问题。因为最近重新在看一些数据仓库的资料和书籍,想把之前以及当前遇到的主要问题提出来(博客中有关数据仓库的相关内容请参阅网站数据仓库这个目录),同时自己也对数据仓库方面的知识进行下重新的整理和认识,而且很久没有在博客发新的文章了,不能让自己过于懒散了。
之前看过Inmon的《构建数据仓库》和《DW 2.0》,而另外一位数据仓库大师Kimball的《数据仓库生命周期工具箱》一直没有时间阅读,最近才有时间看完了大部分,就迫不及待想写点东西了。其实数据仓库领域普遍认为Inmon和Kimball的理论是对立的,两者在构建数据仓库上方向性的差异一直争论不休,谁也无法说服谁到底哪种方法更好。我的Evernote的笔记里面不知什么时候从哪里摘录过来了对两者观点的概括性描述,非常简洁明了而一针见血:
Inmon vs Kimball
Kimball – Let everybody build what they want when they want it, we’ll integrate it all when and if we need to. (BOTTOM-UP APPROACH)Pros: fast to build, quick ROI, nimble
Cons: harder to maintain as an enterprise resource, often redundant, often difficult to integrate data marts
Inmon – Don’t do anything until you’ve designed everything. (TOP-DOWN APPROACH)
Pros: easy to maitain, tightly integrated
Cons: takes way too long to deliver first projects, rigid
其实看了《数据仓库生命周期工具箱》之后,发现两者的观点没有那么大的本质性差异,可能随着数据仓库的不断发展,两者在整体的架构上慢慢趋同。基本上,构建统一的企业级数据仓库的方向是一致的,而Inmon偏向于从底层的数据集成出发,而Kimball则趋向于从上层的需求角度出发,这可能跟两者从事的项目和所处的位置有关。
有了上面这段高质量的概括,第一个问题——你更偏向于以何种方式搭建数据仓库(BOTTOM-UP or TOP-DOWN),分别有什么优劣势?——其实就不用问了,所以下面主要提几个在实际中可能经常遇到或者需要想清楚的问题:
Q1、数据仓库的技术解决方案有哪些,这些解决方案的优势在哪,瓶颈在哪?
随着数据仓库的不断发展和成熟,“大数据”概念的风靡,有越来越多的相关产品出来,最常见的技术解决方案包括hadoop和hive,oracle,mysql的infobright,greenplum及nosql,或者多个结合使用。
其实归纳起来就两类:一是用传统RDBMS为主导的数据库管理数据,oracle、mysql等都是基于传统的关系型数据库,优势就是有更严谨的数据结构,关系型数据库对数据的管理更加规范,数据处理过程中可能出现的非人为误差极小,而且标准的SQL接口使数据获取的成本较低,数据的查询和获取更加灵活和高效;但劣势也很明显,对海量数据的处理和存储的能力不足,当数据量达到一定程度的时候就会出现明显的瓶颈。而是基于文本的分布式处理引擎,hadoop、greenplum和nosql都是基于文本数据的处理和存储,优势是强大的数据处理能力,分布式的架构支持并行计算,并且具备超强的扩展延伸能力;劣势就是上层接口不方便,因此Hadoop上层的hive和greenplum上层的postgreSQL都是为了解决数据接口的问题,并且数据的查询和获取很难做到实时响应,灵活性不足。
Q2、数据仓库是否就应该保存聚合数据,细节数据不应该放入数据仓库?
其实这个问题基本已经达成共识,如果是构建企业级的数据仓库,那么对细节数据的集成和存储是必不可少的,但现实中还是存在很多直接从外部数据源计算聚合之后导入数据仓库的实例。如果对数据仓库只是轻量级的应用,仅存放聚合数据也无可厚非,毕竟没人规定数据仓库一定要是怎么样的,最终的目的无非就是满足对数据的支持和需求。
但对于企业的长期发展来看,数据仓库中存放细节数据有两方面的好处:一方面从技术层面,数据仓库存储细节数据可以释放前台数据库的查询压力,同时对于文本类数据和外部文档类数据入库之后管理更加规范,数据仓库保留历史和不可变更的特性可以让信息不被丢失;另一方面就是从数据的使用上,数据仓库让数据的获取和使用更加简便,集成细节数据让大量的文本型数据可查询,可关联,而面向主题的设计让数据的展现和分析更有方向性和目的性,而且细节数据是支持数据分析和数据挖掘应用所必不可少的。所以,如果数据仓库要不断地催生出更大的价值,细节数据的存储是必不可少的。
Q3、你会把数据仓库分为几层,每层的数据作用是什么?
没有标准答案,根据数据仓库中数据的复杂性和对数据使用的需求程度,数据仓库可以有不用的层级划分。
我一般会把数据仓库划成三层:最底层的细节数据,管理策略是优化存储,一般存储导入的原始数据,便于进行向上的统计汇总,因为数据量较大所以需要优化存储;中间层是多维模型,管理策略是优化结构和查询,面向主题的多维模型的设计,需要满足OLAP和数据查询的多样需求,同时保证查询的便捷性,关键在与维表的设计和维度的选择及组合,事实表需要关注存储和索引的优化;最上层是展现数据,管理策略是优化效率,一般会存放每天需要展现的汇总报表,或者根据多维模型拼装的视图,展现层的数据需要以最快的速度展现出来,一般用于BI平台的Dashboard和报表。
Q4、数据仓库搭建中最繁杂的事情是什么,最容易缺失的是哪一块?
一直觉得数据仓库的核心不在于数据集成,当然数据集成是数据仓库实现价值的前提,数据仓库真正的价值体现在数据的有效应用,数据源于业务反作用于业务。而搭建数据仓库的核心在于数据仓库的架构和数据模型的设计,怎么权衡数据的存储和数据获取效率之间的矛盾是数据仓库管理上的难点,这个难点任何数据仓库都会存在,而大数据增大了这种权衡中的难度。而数据的集成和数据质量控制是数据仓库搭建中最繁杂的事情,尤其是数据清洗的过程,我之前也写过几篇数据质量控制的文章,但现实中这个过程还要复杂得多,而且为了上层数据产出的准确性和有效性,这项工作又不得不做,而且要做得尽量细致。
搭建数据仓库中最容易缺失的就是对元数据的管理,很少有数据仓库团队具备完整的元数据,当然搭建数据仓库的工程师本身就是活的元数据,但无论是为了用数据的人还是数据仓库自身的团队着想,元数据都不可或缺。一方面元数据为数据需求方提供了完整的数据仓库使用文档,帮助他们能自主地快速获取数据,另一方面数据仓库团队成员可以从日常的数据解释中解脱出来,无论是对后期的不断迭代更新和维护还是培训新的员工,都非常有好处,元数据可以让数据仓库的应用和维护更加高效。(文章来源:CDA数据分析师)
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
R 语言:数据科学与科研领域的核心工具及优势解析 一、引言 在数据驱动决策的时代,无论是科研人员验证实验假设(如前文中的 T ...
2025-09-08T 检验在假设检验中的应用与实践 一、引言 在科研数据分析、医学实验验证、经济指标对比等领域,常常需要判断 “样本间的差异是 ...
2025-09-08在商业竞争日益激烈的当下,“用数据说话” 已从企业的 “加分项” 变为 “生存必需”。然而,零散的数据分析无法持续为业务赋能 ...
2025-09-08随机森林算法的核心特点:原理、优势与应用解析 在机器学习领域,随机森林(Random Forest)作为集成学习(Ensemble Learning) ...
2025-09-05Excel 区域名定义:从基础到进阶的高效应用指南 在 Excel 数据处理中,频繁引用单元格区域(如A2:A100、B3:D20)不仅容易出错, ...
2025-09-05CDA 数据分析师:以六大分析方法构建数据驱动业务的核心能力 在数据驱动决策成为企业共识的当下,CDA(Certified Data Analyst) ...
2025-09-05SQL 日期截取:从基础方法到业务实战的全维度解析 在数据处理与业务分析中,日期数据是连接 “业务行为” 与 “时间维度” 的核 ...
2025-09-04在卷积神经网络(CNN)的发展历程中,解决 “梯度消失”“特征复用不足”“模型参数冗余” 一直是核心命题。2017 年提出的密集连 ...
2025-09-04CDA 数据分析师:驾驭数据范式,释放数据价值 在数字化转型浪潮席卷全球的当下,数据已成为企业核心生产要素。而 CDA(Certified ...
2025-09-04K-Means 聚类:无监督学习中数据分群的核心算法 在数据分析领域,当我们面对海量无标签数据(如用户行为记录、商品属性数据、图 ...
2025-09-03特征值、特征向量与主成分:数据降维背后的线性代数逻辑 在机器学习、数据分析与信号处理领域,“降维” 是破解高维数据复杂性的 ...
2025-09-03CDA 数据分析师与数据分析:解锁数据价值的关键 在数字经济高速发展的今天,数据已成为企业核心资产与社会发展的重要驱动力。无 ...
2025-09-03解析 loss.backward ():深度学习中梯度汇总与同步的自动触发核心 在深度学习模型训练流程中,loss.backward()是连接 “前向计算 ...
2025-09-02要解答 “画 K-S 图时横轴是等距还是等频” 的问题,需先明确 K-S 图的核心用途(检验样本分布与理论分布的一致性),再结合横轴 ...
2025-09-02CDA 数据分析师:助力企业破解数据需求与数据分析需求难题 在数字化浪潮席卷全球的当下,数据已成为企业核心战略资产。无论是市 ...
2025-09-02Power BI 度量值实战:基于每月收入与税金占比计算累计税金分摊金额 在企业财务分析中,税金分摊是成本核算与利润统计的核心环节 ...
2025-09-01巧用 ALTER TABLE rent ADD INDEX:租房系统数据库性能优化实践 在租房管理系统中,rent表是核心业务表之一,通常存储租赁订单信 ...
2025-09-01CDA 数据分析师:企业数字化转型的核心引擎 —— 从能力落地到价值跃迁 当数字化转型从 “选择题” 变为企业生存的 “必答题”, ...
2025-09-01数据清洗工具全景指南:从入门到进阶的实操路径 在数据驱动决策的链条中,“数据清洗” 是决定后续分析与建模有效性的 “第一道 ...
2025-08-29机器学习中的参数优化:以预测结果为核心的闭环调优路径 在机器学习模型落地中,“参数” 是连接 “数据” 与 “预测结果” 的关 ...
2025-08-29