我工作的公司制作了一个内容管理系统(CMS),其中包含各种各样的附加组件,用于发布,电子商务,在线打印等。我们现在正在添加“报告模块”,我需要调查应遵循哪种策略。 “报告模块”也称为商业智能或BI。
该模块应该能够跟踪项目下载,执行搜索并从中生成各种报告。实际上,正在搅拌什么样的数据并不重要,因为从长远来看,我们可能希望能够推动我们认为需要的任何数据并从中获取报告。
粗略地说,我们有两种选择。
选项1 是基于Apache Solr编写解决方案(具体来说,使用https://issues.apache.org/jira/browse/SOLR-236)。这种方法的优点:
这种方法的缺点:
选项2 是与一些免费或商业BI软件集成。到目前为止,我已经查看了 Wabit ,并将查看 QlikView ,可能还有其他人。这种方法的优点:
缺点:
我绝对不是在市场上找到最合适的整合选项的最佳人选(主要是因为缺乏BI领域的知识),但是需要快速做出决定。
是否有人处于类似情况并且可以建议采取哪条路线,甚至更好 - 建议选项#2的可能优缺点?这里最大的问题是我不知道我不知道的事情;)
答案 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。