什么是从关系OLTP数据库到OLAP多维数据集,以获得最佳的方法呢?(What is the bes

2019-07-29 03:13发布

我有一个相当标准的OLTP规范化的数据库,我已经意识到我需要做一些复杂的查询,平均值,标准在不同尺寸偏差的数据。

所以我已经转向SSAS和OLAP多维数据集的创建。

然而,为了创建多维数据集,我相信我的数据源结构需要在一个“明星”或“雪花”配置(我不认为它是现在)。

是使用SSIS做某种ETL过程对我的主要OLTP数据库到另一个关系数据库是与事实和尺寸合适的“明星”配置,然后使用这个数据库作为数据源为OLAP多维数据集的正常程序?

谢谢

Answer 1:

是的,这是基本的想法。 你把你的高度规范化的OLTP数据库,并将其反规范化切块用于切片和切块数据的目的,并在其上,然后提交报告。 逻辑设计技术被称为三维建模。 有一吨的约伟大信息三维建模在过金博尔集团 。 拉尔夫·金博尔的关于这一主题的书籍也是极好的。 如果您想了解更多关于BI工具本身,检查出的虚拟实验室的SSIS,分析服务以及更多。



Answer 2:

答案是:是的,但是。

在SSAS的尺寸具有可使用的AA一系列字段通过过滤片的属性之间的关系。 这些关系可以是分层的(超过一层深 - 一个属性可以有一个家长和孩子还可以建立深入作用类似的属性,但有一个引导下钻路径(SSAS称为层级)。

为了做到这一点,你需要有一个生活在一个严格的等级关系数据库中的可用密钥(即钥匙不能有模糊的关系,其中一个孩子能有一个以上的父母)。 请注意,这并不是故事的全部,但它很贴近现实的时刻。

这些层次结构可以从系统的扁平数据结构来构造或呈现通过与底层数据源视图标记的关系的雪花(DSV进行立方体元数据的一部分,并且可以用来以类似于数据库的方式来按摩数据视图)。

雪花是3NF十岁上下的模式(它不严格必须3NF - 您可以拼合的某些部分在实践中)仅具有1:M的关系。 SSAS可以支持一些其他维度的结构,如父子(与亲子关系的递归自连接)和M:M尺寸(M:M的关系 - 正是他们的声音等)。 这种类型的尺寸都比较繁琐,但可能对你有用。

如果你在你的源数据的密钥,可以有相当的数据语义一片雪花,那么你可能能够通过一系列的源系统上呈现底层数据中充分雪花般的格式使用数据库视图来填充你的立方体对多维数据集维度(其实我已经在几个场合这样做)。 架构,使大量使用人工键的更可能好这项工作。

如果您的供应商或其他方不会让你添加视图源数据库您可以使用数据源视图来代替。 DSV的可以称为是从数据库中查询填充“命名查询”虚表。

事实表加盟尺寸。 在SSAS2005 +,你可以加入在维度内不同晶粒不同的事实表。 通常我不会在一个数据仓库为此多大用处,但如果你要使用的源数据,而不必按摩它过于依赖这个功能可能是有用的。

如果不工作,那么你很可能需要编写一个ETL过程填充星形或雪花架构。

几个附加条件:

  1. 可制成立方体在实时模式,他们只是发出一个查询到底层数据运行。 这具有对源数据的查询效率低下的一些风险,所以不推荐它,除非你真的相信你知道自己在做什么。

  2. (I)的中肯,你可能将无法使用多维数据集在您的应用程序屏幕的数据源。 如果您需要计算该用户希望看到屏幕上的内容平均数,你可能要计算它在屏幕后面的存储过程。

  3. 如果你这样做,建立一个复制的数据库和填充立方体关闭该。 有这个数据库定期更新,让您的ETL过程可以从内部一致的数据集运行。 如果从活动数据库上运行,你的风险某些项目被填充以后依赖于相应过程运行后所创建的记录。

    您可以对运行维度负载情况,然后新的数据输入到系统中。 当事实表加载运行,它现在包含的数据是依赖于尚未加载的尺寸数据。 这将打破多维数据集并导致负载过程失败。 批量刷新复制的数据库来运行ETL或立方体负载过会缓解这一问题。

    如果你没有复制的数据库的选项,您可以设置为丢失的数据更松弛的政策。

  4. 如果你的潜在生产数据有显著的数据质量问题,他们将反映在多维数据集。 GIGO。



文章来源: What is the best approach to get from relational OLTP database to OLAP cube?