有没有数据仓库框架?

时间:2008-10-01 17:34:17

标签: frameworks reporting data-warehouse anchor-modeling

我有很多需要从中生成报告的mysql数据。它主要是历史数据,因此它不会发生太大变化,但它的重量很容易达到20-30千兆字节,预计会增长。我目前有一些PHP脚本集合,可以执行一些复杂的查询并输出csv和excel文件。我还使用带有书签查询的phpMyAdmin。我手动编辑它们来更改参数。数据量不断增长,需要访问数据的人数也在不断增加,因此我正在花时间改善这种情况。

前几天我开始阅读有关数据仓库的内容,似乎这个区域与我需要做的事情有关。我看过some good articles,甚至在等一本书。我想我已经掌握了这些系统的功能和可能性。

为我的数据创建一个报告系统一直在todo列表中,但直到最近我才认为这将是一个非常小众的计划冒险。由于我现在知道数据仓库是常见的事情,我认为必须有一些报告/仓库框架可以轻松开发。我很乐意跳过编写接口和脚本来安排和发送电子邮件报告等,并坚持编写查询和建立关系。

我大部分时间都是一个灯泡家伙,但我不会高于转换语言或平台。我只需要一个更强大的解决方案,因为我的一次性脚本不能很好地扩展。

那么哪里是开始的好地方?

7 个答案:

答案 0 :(得分:8)

我将在{预算,业务效用函数,时间范围}频谱上讨论几点。为方便起见,让我们按照您在

链接的架构概念化进行操作

WikipediaDataWarehouseArticle

  • 运营数据库层
    数据仓库的源数据 - 在一个地方进行标准化数据维护

  • 数据访问层
    将源数据转换为信息访问层。用于提取,转换,加载数据到仓库的ETL工具属于此层。

  • 信息访问层
    •促进报告的数据结构
    此处未维护数据。它只是您的源数据的反映
    因此,非规范化结构(包含重复但系统导出的数据)
    这里通常最有效
    •报告工具
    您如何实际允许用户访问数据
    •预先报告(简单)
    •更多动态切片和骰子访问方法

为报告和分析而访问的数据以及用于报告和分析数据的工具
落入这一层。和Inmon-Kimball在设计方法上的差异, 后面在维基百科文章中讨论过,与这一层有关。

  • 元数据层(便于自动化,组织等)

自己动手(低端)
对于非常少的自付费用,只要认识到非规范化结构的需要就可以购买那些没有使用它的效率

参加球赛(需要一些支出)
您无需立即使用平台的所有功能。 然而,IMO,你想要在一个你知道会成长的平台上,并且在竞争激烈且整合的BI环境中,这似乎是四大企业大型供应商之一(我的观点)

  • Microsoft(我们110家员工公司的平台)
  • SAP
  • 甲骨文
  • IBM

BiMarketStateArticle

我的公司正处于这个阶段,使用SQL Server Integration Services(SSIS)提供的一些ETL功能和开源的一些替代用法,但实际上需要在“数据访问层”中使用Talend产品,非规范化报告结构(完全在基本SQL Server数据库中实现)和SQL Server Reporting Services(SSRS),可以在很大程度上自动化(根据您的技能)生成预先指定的报告。请注意,SSRS“报告”仅仅是一种(可伸缩的)XML配置/规范,它通过SSRS引擎在运行时呈现。导出到excel文件的选择是简单的选项。

认真承诺(需要一些重要的人类承诺)
上面注意到我们还没有利用数据挖掘/动态切片/切割 SQL Server Analysis Services的功能。我们正在努力, 但现在专注于提高“数据访问层”中数据清理的质量。

我希望这可以帮助您了解从哪里开始寻找。

答案 1 :(得分:4)

Pentaho已经整合了一套非常全面的产品。这些产品是“免费的”,但是一旦您提供了识别信息,就要为通常的大量销售做好准备。

我没有机会真正伸展它们,因为我们是一家微软的商店,从一个悲伤的一端到另一个。

答案 2 :(得分:4)

我认为您应首先查看Kimball和Inmon,看看您是否希望以特定方式接近数据仓库。特别是Kimball为仓库的建模和构建提供了一个非常好的框架。

答案 3 :(得分:4)

有许多工具试图设计,实施和管理/运营数据仓库,他们各自都有自己的优势和劣势,而且价格点往往差别很大。如果您对Kimball和/或Inmon难民营的warsehousing原则有很好的了解,那么你将永远处于最佳状态。

除了像Kalido和Wherescape RED这样的工具(它们以非常不同的方式做类似的事情),许多ETL平台现在都具有良好的内置支持,可用于实施的驴工作 - SCD组件等和谱系跟踪。 / p>

最好尽管将所有这些视为工具的使用者,工匠,他们使某些简单的事情变得更容易(甚至是微不足道),一些困难的事情更容易,但有些事情他们只是通过他们的方式恕我直言;)首先学习方法和原则,并对它们有一个很好的理解,然后你就会知道从你的kitbag中应用哪些工具以及何时......

答案 4 :(得分:2)

它有一段时间没有更新,但有一个很好的Data Warehousing / ETL Ruby包名为ActiveWarehouse

但我会查看另一个答案中提到的像Pentaho products一样的尼克。它应该可以轻松处理您拥有的大量数据,并且可能为您提供更多方法来对数据进行切片和切块,而不是您想象的那样。

答案 5 :(得分:2)

您目前可以获得的最佳框架是Anchor Modeling 它可能看起来相当复杂,因为它具有通用结构和内置的数据历史记录功能 建模技术与ERD完全不同 但最终使用sql代码生成所有数据库对象,包括3NF视图和:

  • 由触发器处理的插入/更新
  • 查询历史记录中的任何点/范围
  • 您的应用程序开发人员将看不到底层的6NF锚模型。

该技术是开源的,目前是无与伦比的。

如果你有AM问题,你可能想问一下这个标签

答案 6 :(得分:1)

Kimball是一种更简单的数据仓库方法。

我们使用Informatica来移动数据,但它不会像默认情况下那样执行DW这样的事情 我喜欢Wherescape RED的概念,作为DW工具并使用MS SQL的链接服务器来消除对ETL工具的需求。