3

这可能是一个愚蠢的问题,因为我还没有完全理解 Cognos BI 的工作原理。此外,我尝试在 Stack Exchange 上发布此内容,但徒劳无功(放置标签时出错)。

我的问题是 - 可以使用 Apache Hadoop 使 Cognos BI 工作得更快吗?或者 Cognos 是否在做与 Hadoop 相同的事情(MapReduce 功能)?

我开始工作的地方使用了基于 Sybase IQ(内容存储)的 Cognos BI 套件。Apache Tomcat 是 Web 服务器。有时会发生的情况是,如果数据集很大,Cognos 会花费大量时间(几乎死掉)来生成报告。

那么 Apache Hadoop 能否通过介于 Cognos 和 Sybase 之间的某个位置来帮助 Cognos 更好地执行?或者在这种情况下报告优化是唯一的出路吗?

多谢你们。

4

2 回答 2

5

Hadoop 作为一个平台并不针对临时查询或分析报告。
Cognos 是 IBM 产品。它只能查询它自己的 Hadoop 分布,这被称为大洞察:
InfoSphere BigInsights
Over BigInsight Cognos 使用 Hive 发出查询,最终转换为 MapReduce。

您说您正在使用 Sybase IQ(这不是内容存储,这是您的查询正在运行的报告数据库)。
虽然我对 Sybase IQ 了解不多,但我正在大量使用 Vertica,它也是列式 DB。
为了获得良好的性能,您必须调整任何可能的东西:

  • Cognos 框架模型
  • Cognos 报告
  • Sybase DB 调优和结构。Hadoop 当然可以通过以正确的粒度级别准备数据并预先计算您所需的任何计算来提供帮助。
于 2013-05-12T20:01:40.983 回答
2

简单地说,Hadoop 是一个用于处理大型数据集的分布式平台。它具有内置的容错功能,这使其对停机会影响业务流程的组织具有吸引力。Cognos 是一种商业智能工具,允许用户探索和报告数据。因此,似乎有一个合乎逻辑的契合。

然而,正如另一位发帖人所评论的那样,Hadoop 本身(还)不适合临时查询。有一个 Hadoop 项目可以做到这一点 - Hive。开发人员已经发布了 ODBC 连接器来访问 Hive 数据库(它只是 Hadoop 数据的数据仓库视图,可以使用称为 HiveQL 的类似 SQL 的语言进行查询)。由于 Cognos 可以从 ODBC 数据库中提取数据,因此 Cognos 可以通过 Hive 从 Hadoop 中提取数据。

在 Cognos 环境中使用 Hadoop 的另一种方法是使用 CSV 等文本文件传输数据。Hadoop 可以生成一个数据文件,然后可以将其导入 Cognos。这是我目前使用的方法。

然而,我还没有回答使用 Hadoop 的“原因”。我使用 Hadoop 的两个应用程序是库存预测和现金流/预算。如果您尝试对数十万个 SKU 执行常规预测,Hadoop 是一个很棒的工具。如果您尝试对一千个预算项目执行蒙特卡罗模拟,Hadoop 非常棒。只需从数据仓库导入数据,运行 Hadoop 作业,然后将生成的 CSV 文件导入 Cognos。瞧!

但请注意,Hadoop 不是万能药。有时老式 SQL 和您选择的编程语言也一样好 - 或更好。Hadoop 具有学习曲线和资源需求。我通过下载 Hortonworks 沙箱了解到;它是在 VMware、VirtualBox 等中运行的预配置虚拟机。因此您无需安装或配置任何东西!

于 2013-10-04T13:09:42.690 回答