选择BI模块的策略

时间:2010-11-30 18:33:53

标签: reporting solr olap business-intelligence oltp

我工作的公司制作了一个内容管理系统(CMS),其中包含各种各样的附加组件,用于发布,电子商务,在线打印等。我们现在正在添加“报告模块”,我需要调查应遵循哪种策略。 “报告模块”也称为商业智能或BI。

该模块应该能够跟踪项目下载,执行搜索并从中生成各种报告。实际上,正在搅拌什么样的数据并不重要,因为从长远来看,我们可能希望能够推动我们认为需要的任何数据并从中获取报告。

粗略地说,我们有两种选择。

选项1 是基于Apache Solr编写解决方案(具体来说,使用https://issues.apache.org/jira/browse/SOLR-236)。这种方法的优点:

  • 免费/开源/优质
  • 我们在其他地方使用Solr / Lucene,因此我们非常了解域名
  • 对索引内容的完全灵活性,因为我们可以获取传入数据(以XML格式),通过XSLT推送并将其提供给Solr
  • 如何显示搜索结果的完全灵活性。与上面的步骤类似,我们可以使用自定义XSLT搜索模板,并以我们认为必要的任何格式显示结果
  • 我们的前端开发人员精通XSLT,因此为不同的客户安装这种机制应该相对容易
  • Solr提供实时/全文/分面搜索,这对我们来说是绝对必要的。快速原型(基于Solr,1M记录)能够在55ms内提供搜索结果。我们估计的最大记录数约为10亿行(对于典型的BI应用程序来说这并不是很多),如果情况变得更糟,我们可以随时查看SolrCloud等。
  • 有些公司使用Solr(例如Honeycomb Lexicon)进行非常相似的事情

这种方法的缺点:

  • SOLR-236可能会或可能不会稳定,此外,目前尚不清楚何时/是否将作为官方发布的一部分发布
  • 可能会有一些我们必须编写的东西,以使某些BI特定功能正常工作。这听起来有点像重新发明轮子
  • 最大的问题是我们不知道将来可能需要什么(例如与某些BI软件集成,导出到Excel等)。

选项2 是与一些免费或商业BI软件集成。到目前为止,我已经查看了 Wabit ,并将查看 QlikView ,可能还有其他人。这种方法的优点:

  • 无需重新发明轮子,软件(希望)尝试并经过测试
  • 可以节省我们花时间解决我们专门研究的问题

缺点:

  • 由于我们是一家Java商店,我们的解决方案是跨平台的,我们必须消除市场上的很多选择。
  • 我不确定BI软件有多灵活。需要花费一些时间来浏览一些BI产品,看看他们是否可以进行灵活的索引,实时/全文搜索,完全可定制的结果等。
  • 有人告诉我,开源商业智能产品不够成熟,而商业智能商品(SAP,其他商品)需要花钱,他们的许可证起价为数万英镑/美元。虽然我本身并不反对商业选择,但它会加起来很容易变得太大的整体价格
  • 不确定BI如何使用无架构数据

我绝对不是在市场上找到最合适的整合选项的最佳人选(主要是因为缺乏BI领域的知识),但是需要快速做出决定。

是否有人处于类似情况并且可以建议采取哪条路线,甚至更好 - 建议选项#2的可能优缺点?这里最大的问题是我不知道我不知道的事情;)

3 个答案:

答案 0 :(得分:3)

我花了一些时间玩 QlikView Wabit ,不得不说,我很失望。

我期望整个BI行业实际上都有一些科学,但从我发现这只是一个流行语。 This MSDN article实际上让人大开眼界。 BI的整个业务包括从规范良好的模式中获取数据(他们称之为 OLTP ),将其放入规范化程度较低的模式( OLAP 雪花 - 星型)并为您想要的每个方面创建索引(行业术语是数据立方体)。其余的只是一些脚本来获得漂亮的图形。

好的,我知道我在这里过于简单化了。我知道我可能错过了许多不同的方面(很好的报告?导出到Excel?预测?),但从计算机科学的角度来看,我在这里看不到任何超出数据库索引的内容。

我被告知有些BI工具支持压缩。 Lucene也支持这一点。有人告诉我,一些BI工具能够将所有索引保留在内存中。为此,有一个Lucene缓存。

说到两个候选人(Wabit和QlikView) - 第一个是不成熟的(我试图超越他们的演示中的建议时我有几十个例外)而另一个只能在Windows下工作(不是很好)很好,但我可以忍受这一点)并且集成可能需要我写一些VBScript(哎呀!)。我不得不花费几个小时在QlikView论坛上,只是为了让一个简单的日期范围控制工作和失败,因为个人版我不支持他们网站上可用的可下载的演示项目。不要误解我的意思,它们都是构建它们的好工具,但我根本没有看到与它们集成的任何意义,因为我不会获得太多。

为了解决(可论证的)Solr的不成熟,我将定义一个抽象API,以便我可以将所有数据移动到支持全文查询的数据库(如果出现任何问题)。如果情况变得更糟,我可以随时在Solr / Lucene之上写东西。

答案 1 :(得分:1)

如果你真的处在一个你不是确定你不知道的东西的情况下,我认为最好先探索一个开源工具并评估它的实用性,然后才能深入了解自己的工作实现。使用开源解决方案很可能会帮助您进一步明确自己的理解和所需的功能 我曾经使用过一个名为Pentaho的开源解决方案。通过学习使用Pentaho的功能,我认真地感受到了更多的东西。当然,就像使用大多数开源解决方案一样,Pentaho起初似乎有点令人生畏,但我在一个月的时间内成功抓住了它。我们还使用了Kettle ETL工具和Mondrian多维数据集 - 我认为现在大多数严肃的商务智能工具都建立在其之上。
早些时候,所有这些组件都是独立的,但是我认为Pentaho是所有这些项目的所有权。

但是一旦你确信你需要什么和不需要什么,我建议你在mondrian实施的基础上建立一些自己的基本报告工具。定制复杂的开源工具确实是一个大问题。此外,有许可证需要警惕。我相信Pentaho是GPL,不过你可能想检查一下。

答案 2 :(得分:1)

首先,您应该明确您的报告应该显示的内容。您需要哪种报告功能?您想要哪种输出格式?您想要在浏览器(HTML)中显示它还是以PDF格式或使用交互式查看器(Java / Flash)显示它。数据在哪里(数据库,Java等)?您需要Ad-Hoc报告还是仅需要一些硬编码报告?这只是一些问题。

如果没有这个问题的答案,很难给出真正的推荐,但我的一般建议是 i-net Clear Reports (以前称为i-net Crystal-Clear)。它是一个Java工具。它是一种商业工具,但成本较低,如SAP和co。

相关问题