为星形模式设计必不可少的数据仓库? 或者你也可以做数据仓库与其他设计模式?
Answer 1:
使用星型模式的数据仓库系统让你几个好处,而且在大多数情况下是恰当的使用它们的顶层。 你还可以具有操作数据存储(ODS) - 保存“当前状态”,并促进诸如数据结构的操作的归一化的结构。 但是有合理的情况下,这是不可取的。 我有机会与不消耗臭氧物质层建设系统,并有用于建筑在每种情况下选择的具体原因。
如果没有进入数据仓库架构的subtlties或开始博尔与Inmon火焰战争星型模式的主要好处是:
大多数数据库管理系统在查询优化器设施做“星转换”使用位图索引结构或指数路口快速谓词的决议。 这意味着,从一个星型模式的选择可以没有击中事实表(通常是比指数更大),直到选择解决来完成。
分区星型模式是唯一的事实表需要进行分区相对简单(除非你有一些圣经大尺寸)。 分区消除意味着查询优化器可以忽略不可能参加在查询结果中,从而节省了I / O patitions。
渐变维度上星型架构比雪花来实现要容易得多。
该模式比较容易理解,而且往往涉及比较不加入雪花或ER模式。 你的报道团队会爱你这
星型模式更容易使用和(更重要的)让与即席查询工具,如表现良好的Business Objects或报表生成器 。 作为一名开发人员,你有过这些工具所产生的,所以你需要给查询优化器尽可能多的帮助尽可能SQL很难控制。 星模式给查询优化器相对很少有机会得到它错了。
通常,除非你有特殊原因不能到您的报告层将使用星型模式。 如果你有多个源系统,你可能要实现的业务数据存储与标准化或雪花模式积累的数据。 因为ODS通常不做历史这种情况很容易。 历史状态在星型模式跟踪,其中这比用标准化的结构很容易做的。 归一化的或snowflaked操作数据存储反映“当前”状态和之上的任何那就是在数据固有不成立的历史视图。
ODS负载过程涉及数据清理以及符合,这是容易做到与归一化的结构。 一旦你在ODS,维度和事实负荷干净的数据可以跟踪历史与一般的或比较简单的机制相对简单(随时间的变化); 这是很容易与星型模式做,很多ETL工具(例如)为缓慢变化维和实施的通用机制提供了内置的设施相对简单。
以这种方式分层系统providies职责的分离 - 业务和数据清理逻辑在ODS处理和星型模型的负载处理历史状态。
Answer 2:
有在哪里的数据仓库架构的的datawarehousing litterature正在进行的辩论星型模式应当应用的设计。
总之金博尔主张非常高度在数据仓库仅使用星型模式设计,同时Inmon首先要通过构建企业数据仓库规范化3NF设计和更高版本使用星型模式设计的数据集市。
除了这里,你也可以说, 雪花模式设计是另一种方法。
第四设计可能是数据保险库建模方法。
Answer 3:
星模式用来启用对大容量数据的高速访问。 高性能是通过减少联接需要satsify可能对学科领域进行任何查询量启用。 这是通过允许在维度表中的数据冗余来完成。
你必须记住,星型模式是对的仓库顶层模式。 所有型号也是在仓库堆栈底部涉及分期模式,有的还包括持续性转化,所有源系统合并为一个3NF建模架构合并中转区。 各个学科领域坐在上面这一点。
替代星型模式在顶层有一个变化,这是一个雪花模式。 可能承受了一些调查,以及一种新的方法是数据建模库丹Linstedt建议。
Answer 4:
关于星型模式的事情是,他们是这样的东西大多数人都希望有一个数据仓库做一个自然的模型。 举例来说很容易产生具有不同的粒度级别(月,日或年为例)的报告。 这也是有效的典型业务数据插入到星型模式,又一个数据仓库的普遍和重要的特征。
你当然可以用任何一种你想要的数据库,但除非你知道你的业务领域非常好,很可能您的报表将不能有效,因为他们可以,如果你用了一个星型模式运行。
Answer 5:
星型模式是天然地适合于数据仓库的最后一层。 你如何到达那里是另一个问题。 据我所知,有两大阵营,那些比尔·因蒙和拉尔夫·金博尔。 你可能想看看这两个家伙的理论,如果/当你决定去一个明星。
此外,一些报告工具真的很喜欢星型模式设置。 如果你被锁定到一个特定的报表工具,这可能推动市场报告的样子在你的仓库。
Answer 6:
星型模式是适合的常规数据仓库的需求关系型数据库的逻辑数据模型; 如果关系环境,给出一星或雪花架构将是一个很好的设计模式,在很多DW设计方法的硬连线。
然而有比关系型数据库引擎等过了,他们可用于高效的数据仓库。 多维存储引擎可能是非常快的OLAP任务(例如TM1); 我们不能在这种情况下适用星型架构设计。 需要特殊的逻辑模型的其它例子包括XML数据库或面向列的数据库(例如,实验C-STORE) )。
Answer 7:
这是可能的,而不做。 但是,您将让生活困难的自己 - 你的组织将要使用的是住在个DW的顶级标准的工具,这些工具将期待星型模式 - 大量精力将花费在一个圆形配件方钉洞。
很多数据库级别的优化假设你有一个星型模式; 你会花很多时间优化和重组,以获得DB做“正确的事”你不是-相当星级布局。
确保利大于弊..
(听起来是不是像我以前去过那里?)
-D
Answer 8:
还有,我们需要解决三个问题。
1)如何获得数据输出的操作源系统的不施压,它们由内和它们之间的连接表,清洗数据作为我们提取,创建派生等
2)如何从不同来源的数据合并 - 一些旧的,基于一些文件,从不同部门为一体,准确,高效地存储整个建模的业务,并不能反映源系统的结构。 请记住,系统变更/相对快速更换,但对业务变化的基本模型慢。
3)如何组织数据以最快的速度和准确地满足企业特定的人/部门具体的分析和报告要求。
这三个非常不同的问题的解决需要不同的体系结构层加以解决
临时层复制,我们的来源结构,但每个晚上只有从源头上改变了数据加载。 一旦数据被从分段层取入下一层,该数据将被丢弃。 查询是一个简单的过滤器data_time单表查询。 来源收效甚微。
企业级这是一个面向业务的第三范式的数据库。 数据被提取(和之后丢弃)从分段层到企业层,在那里它被清洁,集成和归一化。
演示(星型模式)层在这里,我们的模型尺寸,以满足特定要求。 数据是故意反规范化以减少连接的数量。 可能占据企业级几个表层次结构折叠到一个单一的维度表,和多个事务表可以合并为单一的事实表。
你总是面对这三个问题。 如果你选择做掉与企业层,你还是要解决的第二个问题,但你必须这样做,在星型架构层,而在我看来,这是错误的地方这样做。