是一个星方案的设计至关重要的数据仓库?或者你可以做到数据仓库的另一个设计图案?

有帮助吗?

解决方案

使用 明星的架构 对于一个数据仓库系统让你多好处,和在大多数情况下是适当的利用他们的顶层。你可能还有一个业务数据存储(ODS)-一个标准化结构,保持目前的状态'和便于操作,例如数据构象。然而有合理的情况这是不可取的。我曾有机会建立系统和无ODS层,和有具体原因选择建筑在各种情况。

如果没有进入的subtlties的数据仓库建筑或开始与KimballInmon火焰战争的主要好处的一个明星的架构是:

  • 大多数数据库管理系统 有的设施,在查询的优化 做明星转变的', 使用 位图的索引 结构或 交叉索引 为快 谓项决议。这意味着,选择一个明星的架构可以做到的,没有击中的事实表(其通常是远远大于该索引),直到选择得到解决。

  • 分区 一个明星的架构是相对简单,因为只有事实表需要进行分区(除非你有一些圣经大尺寸)。 分区消除 意味着,查询的优化可以忽略patitions,不可能参加的查询结果,从而节省I/O.

  • 慢慢改变的尺寸 是很容易实现的明星的架构,比的雪花。

  • 该模式更容易理解,往往涉及较少的加入比一个 雪花 或E-R架构。你的报告的团队会喜欢你为这个

  • 明星的架构更容易使用和(更重要的是)使执行以及与临时查询工具,例如 业务的对象报表生成器.作为开发者你有很少控制SQL产生这些工具所以你需要得到查询的优化尽可能多的帮助,作为可能。明星的架构得到查询的优化相对较少有机会获得这是错误的。

通常你的报告层将使用的明星的架构,除非有特殊原因不要。如果你有多源系统,您可能想要实现一个 业务数据储存 与一个正常化或雪花模式积累的数据。这是比较容易,因为ODS通常不这样做的历史。历史状态跟踪明星的架构,这是很容易做的于与规范化的结构。标准化或雪花状业务数据存储反映"当前"国家和没有历史观和任是固有的数据。

ODS加载过程有关的数据清理和符合,这是易于做一个正规化的结构。一旦你已经干净的数据在一个消耗臭氧物质的维和事实上的荷载可以追踪记录(时间的变化)具一般或较简单的机制相对简单;这是很容易做的一个明星的架构,许多ETL工具(例如)提供的内置设施,用于缓慢变化的尺寸和实施一个通用的机制是相对直接的。

分层系统以这种方式providies分担责任的商业和数据清理逻辑处理的消耗臭氧物质和明星的架构负荷处理历史状态。

其他提示

数据仓库文学中存在一个关于 的数据仓库架构的争论 Star-Schema 设计。

简而言之, Kimball 主张在数据仓库中仅使用Star-Schema设计,而Inmon 首先要使用规范化构建企业数据软件库3NF 设计并稍后在数据集中使用Star-Schema设计。

此外,您还可以说 Snowflake架构设计是另一种方法。

第四种设计可能是数据库建模方法。

星型模式用于实现对大量数据的高速访问。通过减少对可能针对主题区域进行的任何查询进行饱和所需的连接量来实现高性能。这是通过在维度表中允许数据冗余来完成的。

您必须记住,星型模式是仓库顶层的模式。所有模型还涉及仓库堆栈底部的暂存模式,还有一些模型还包括持久转换的合并暂存区域,其中所有源系统都合并到3NF建模模式中。各个主题领域都在此之上。

顶级星型模式的替代方案包括变体,即雪花模式。 Dan Linstedt提出的数据库建模也是一种可能需要进行调查的新方法。

关于星型模式的事情是它们是大多数人想要用数据仓库做的事情的自然模型。例如,很容易生成具有不同粒度级别的报告(例如,月份或日期或年份)。将典型业务数据插入星型模式也很有效,这也是数据仓库的一个常见且重要的特性。

您当然可以使用您想要的任何类型的数据库,但除非您非常了解您的业务领域,否则您的报告可能无法像使用星型模式那样高效运行。

星型模式非常适合数据仓库的最后一层。你是如何到达那里的另一个问题。据我所知,有两个大阵营,比尔英森和拉尔夫金博尔。如果/当你决定选择明星时,你可能想看看这两个人的理论。

此外,一些报告工具非常喜欢星型模式设置。如果您被锁定在特定的报告工具中,那么这可能会推动报告市场在您的仓库中的样子。

星型模式是适合常规数据仓库需求的关系数据库的逻辑数据模型;如果给出了关系环境,那么星形或雪花模式将是一个很好的设计模式,在许多DW设计方法中都是硬连线的。

然而,除了关系数据库引擎之外,它们还可以用于高效的数据仓库。对于OLAP任务,多维存储引擎可能非常快(例如TM1);在这种情况下,我们无法应用星型模式设计。需要特殊逻辑模型的其他示例包括XML数据库或面向列的数据库(例如,实验性的 C-store ))。

有可能没有。但是,你将为自己的生活变得艰难 - 你的组织将希望使用生活在DW之上的标准工具,而这些工具将需要一个星型模式 - 在圆形中安装方形钉需要花费很多精力。孔。

许多数据库级优化都假设您有一个星型模式;你将花费大量时间进行优化和重组,以使DB能够做“正确的事情”。与你不太明星的布局。

确保优点胜过缺点..

(听起来我以前去过那里吗?)

-D

我们需要解决三个问题。

1)如何将数据从操作源系统中取出而不会对它们施加不必要的压力,方法是在它们之间和之间连接表,在我们提取时清理数据,创建派生等。

2)如何将来自不同来源的数据 - 一些遗留的,一些基于文件的,来自不同部门的数据合并为一个整体的,准确的,有效存储的整体,为业务建模,而不反映源系统的结构。请记住,系统更换/更换相对较快,但业务的基本模型变化缓慢。

3)如何快速准确地构建数据以满足业务中特定人员/部门的特定分析和报告要求。

解决这三个非常不同的问题需要不同的架构层来解决它们

分段图层 我们复制了源的结构,但每晚只加载来自源的更改数据。一旦数据从暂存层进入下一层,数据就会被丢弃。查询是具有简单data_time过滤器的单表查询。对来源的影响很小。

企业层 这是面向业务的第三范式数据库。数据从暂存层提取(然后丢弃)到企业层,在那里进行清理,集成和规范化。

演示文稿(星型模式)图层 在这里,我们通过尺寸模型来满足特定要求。故意将数据去标准化以减少连接数。可能占用企业层中多个表的层次结构将折叠为单个维度表,并且可以将多个事务表合并为单个事实表。

你总是面临这三个问题。如果您选择取消企业层,您仍然需要解决第二个问题,但您必须在星型模式层中执行此操作,而在我看来,这是一个错误的地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top