数据库和数据仓库有什么区别?
它们不是同一个东西,或者至少是用同一个东西编写的(即Oracle RDBMS)?
在阅读业务对象的书籍时,我遇到了术语 - 事实表和维度表.
我想了解Dimension表和Fact表之间有什么不同?
我在互联网上阅读了几篇文章,但我无法理解.
任何简单的例子都会帮助我更好地理解?
Star-Schema设计对数据仓库至关重要吗?或者您可以使用其他设计模式进行数据仓库吗?
database design-patterns data-warehouse star-schema dimensional-modeling
我一直认为数据库应该针对读取性能进行非规范化,因为它是为OLAP数据库设计完成的,而不是为OLTP设计进一步夸大3NF.
PerformanceDBA在各种帖子中,例如,在基于时间的数据的不同方法的表现中,捍卫了数据库应该总是通过归一化到5NF和6NF(正规形式)来精心设计的范例.
我是否理解正确(以及我理解的是什么)?
OLAP数据库(低于3NF)的传统非规范化方法/范例设计有什么问题,以及3NF足以满足大多数OLTP数据库实际情况的建议?
例如:
我应该承认,我永远无法理解非规范化有助于读取性能的理论.任何人都可以给我参考,对这个和相反的信念有很好的逻辑解释吗?
在试图说服我的利益相关者说OLAP/Data Warehousing数据库应该规范化时,我可以参考哪些来源?
为了提高可见度,我从评论中复制了这里
"如果参与者在他们看到或参与过的6NF中添加(披露)有多少现实生活(没有包含科学项目)的数据仓库实施,那将是一件好事.快速集合.Me = 0." - Damir Sudarevic
维基百科的数据仓库文章告诉我们:
"标准化的方法[与Ralph Kimball的维度相比],也称为3NF模型(第三范式),其支持者被称为"Inmonites",相信Bill Inmon的方法,其中声明数据仓库应该是使用ER模型/标准化模型建模."
看起来规范化的数据仓库方法(Bill Inmon)被认为不超过3NF(?)
我只是想了解数据仓库/ OLAP是非规范化的同义词的神话(或无处不在的公理信念)的起源是什么?
达米尔苏达雷维奇回答说他们铺好了道路.让我回到这个问题:为什么反规范化被认为有助于阅读?
任何人都可以解释数据仓库和OLAP多维数据集之间的真正区别吗?
他们对同样的事情有不同的看法吗?
其中一个与其他人相比是否被弃用?
其中一个是否有任何性能问题?
欢迎任何解释
这里有一点背景:
我知道数据仓库是什么,或多或少.我已经阅读了数十个关于数据仓库的指南,我玩过SSAS,我知道什么是星型模式,维度表和事实表,我知道ETL是什么以及如何做. 这不是"如何"问题或教程请求.
我的问题是,我读过的关于数据仓库的所有材料似乎都掩盖了构建数据仓库的基本原理.它们都具有象征性,或者在某些情况下字面上以" 所以你决定建立一个数据仓库...... " 这句话开头.除了我还没有做出那个决定.
因此,我希望SO成员可以指出或帮助提出某种半客观测试.我可以适应特定系统并最终得到"是的,我们需要一个数据仓库"或"不,今天的收益太小了".我认为我应该能够回答的具体问题是:
在什么时候构建数据仓库是一个值得考虑的选择?换句话说,我应该注意哪些标志,指标或其他标准可能表明标准的交易环境不再足够?
全面数据仓库有哪些替代方案?事务数据库中的非规范化和沼泽标准复制的"报告服务器"是我想到的两个; 在进入DW之前,还有其他我应该探索的吗?
为什么数据仓库比上述备选方案更好?如果答案是"它取决于",那么它依赖于什么?
什么时候不应该尝试构建数据仓库?无论背景如何,我都对所谓的"最佳实践"持怀疑态度.肯定有一些情况下DW是错误的选择 - 它们是什么?
是否有任何实际的例子我可以看一下通过引入数据仓库而改进的系统?可以向我解释的东西,端到端,他们需要仓库的决策或分析,他们如何决定放入什么,以及仓库最终如何适应更大的环境?我不想要一个人为的"让我们从AdventureWorks数据库中创建一个多维数据集" - 实现与我无关,我对所涉及的规范和设计以及整体思考过程感兴趣.
我一般不会问多方,但我认为这些都是非常密切相关的.我愿意接受至少解决前4个问题的任何答案,尽管最后一个问题确实有助于在我的脑海中明白这一点.如果有人已经写过关于这一点的链接很好,只要它们相当简洁和具体(链接到Ralph Kimball的主页=无用).
希望我已经明确了问题 - 提前感谢你的答案!
我即将开始一个应该有一个相当大的数据库的新项目.
表的数量不会很大(<15),大多数数据(99%)将包含在一个大表中,这几乎只是插入/读取(没有更新).
该表中的估计数据量将以每天500,000条记录的速度增长,我们应该保留至少1年的时间来进行各种报告.
需要(只读)复制数据库作为备份/故障转移,并且可能用于在高峰时间卸载报告.
我没有那些大型数据库的第一手经验,所以我问的是那些DB在这种情况下最好的选择.我知道Oracle是安全的赌注,但如果有人有类似设置的Postgresql或Mysql的经验,我会更感兴趣.
NoSql和数据仓库技术/理论之间有什么关系?
他们分享了什么概念?
它们之间有什么基本区别?
您如何看待每一个可以从另一个中获益/丰富?
我认为您的想法应该有助于两种技术的未来.
更新:
一些有用的链接:
第二次更新:
我正在寻找可能免费或免费试用版的这些开源工具来建立完整的数据仓库堆栈.
我知道很少像Pentaho开源Mondrian服务器,但无法获得任何google结果来设置完整的平台.我不确定这些组件是否相互兼容?有人可以列出他们在链中的位置吗?
我想用你的智慧为数据仓库系统找到合适的解决方案.以下是一些可以更好地理解问题的细节:
数据以星型模式结构组织,具有一个BIG事实和~15个维度.
每月20B个事实行
10个维度有100行(有些层次结构)
5个维度有数千行
2个维度有~200K行
2个大尺寸有50M-100M行
针对此DB运行两个典型查询
dimq的热门成员:
select top X dimq, count(id)
from fact
where dim1 = x and dim2 = y and dim3 = z
group by dimq
order by count(id) desc
Run Code Online (Sandbox Code Playgroud)
针对元组的措施:
select count(distinct dis1), count (distinct dis2), count(dim1), count(dim2),...
from fact
where dim1 = x and dim2 = y and dim3 = z
Run Code Online (Sandbox Code Playgroud)
问题:
哪里可以托管(EC2?)
(请忽略此刻的导入和加载问题)
Tnx,
Haggai.
data-warehouse ×10
database ×7
olap ×2
evaluation ×1
fact-table ×1
greenplum ×1
mapreduce ×1
nosql ×1
olap-cube ×1
open-source ×1
star-schema ×1
vldb ×1