15

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

前几天我开始阅读有关数据仓库的信息,这似乎与我需要做的事情有关。我读过一些 文章,甚至在等一本书。我想我已经掌握了这些系统的功能和可能性。

为我的数据创建报告系统一直在待办事项列表上,但直到最近我才认为这将是一个高度利基的编程冒险。由于我现在知道数据仓库是很常见的事情,我认为必须有某种报告/仓库框架可用于简化开发。我很乐意跳过编写界面和脚本来安排和通过电子邮件发送报告等,而是坚持编写查询和建立关系。

我大部分时间都是一个灯人,但我并没有超越切换语言或平台。我只需要一个更强大的解决方案,因为我的一次性脚本不能很好地扩展。

那么从哪里开始呢?

4

7 回答 7

8

我将讨论关于{预算、业务效用函数、时间框架}范围的几点。为方便起见,让我们按照您链接到的架构概念化

    维基百科数据仓库文章

  • 操作数据库层
    数据仓库的源数据 - 规范化,仅在一处进行数据维护

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

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

        用于报告和分析的数据以及用于报告和分析数据的工具
        属于这一层。Inmon-Kimball 关于设计方法的差异(
        稍后将在 Wikipedia 文章中讨论)与这一层有关。

  • 元数据层(促进自动化、组织等)

自己动手(低端)
只需很少的自付费用,只需认识到对非规范化结构的需求就可以为那些不使用它的结构购买一些效率

参与其中(需要一些支出)
您不需要立即使用平台的所有功能。
然而,IMO,你想在一个你知道会成长的平台上,在竞争激烈和整合的 BI 环境中,这似乎是四大企业超级供应商之一(我认为)

  • 微软(我们拥有 110 名员工的公司的平台)
  • 树液
  • 甲骨文
  • IBM

    双市场状态文章

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

认真的承诺(需要一些重要的人工承诺)
请注意,我们尚未利用 SQL Server Analysis Services 的数据挖掘/动态切片/切片功能。我们正在朝着这个方向努力,但现在专注于提高“数据访问层”中数据清理的质量。

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

于 2008-10-01T19:47:21.957 回答
4

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

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

于 2008-10-01T19:43:32.403 回答
4

我认为您应该首先查看 Kimball 和 Inmon,看看您是否想以特定方式处理您的数据仓库。尤其是 Kimball,为仓库的建模和构建奠定了非常好的框架。

于 2008-10-01T19:48:18.507 回答
4

有许多工具试图完成设计、实施和管理/操作数据仓库的过程,它们各有优缺点,而且价格往往相差很大。如果您对 Kimball 和/或 Inmon 营地的仓储原则有很好的了解,那么在幕后您总是会做得最好。

除了 Kalido 和 Wherescape RED 之类的工具(它们以非常不同的方式做类似的事情),许多 ETL 平台现在都对实现的驴式工作(SCD 组件等和沿袭跟踪)提供了良好的内置支持。

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

于 2010-09-20T12:50:38.330 回答
2

它已经有一段时间没有更新了,但是有一个不错的 Data Warehousing/ETL Ruby 包,叫做ActiveWarehouse

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

于 2008-10-01T19:52:01.010 回答
2

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

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

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

如果你有 AM 问题,你可能想问那个标签

于 2015-05-08T23:55:46.033 回答
1

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

我们使用 Informatica 来移动数据,但默认情况下它不做 DW 之类的事情,比如索引。
我喜欢 Wherescape RED 的想法,作为 DW 工具并使用 MS SQL 的链接服务器来消除对 ETL 工具的需求。

于 2008-10-22T23:08:41.403 回答