我工作的公司生产一个内容管理系统 (CMS),其中包含用于出版、电子商务、在线打印等的各种附加组件。我们现在正在添加“报告模块”,我需要调查应该采用哪种策略被关注。“报告模块”也称为商业智能或 BI。
该模块应该能够跟踪项目下载、执行的搜索并从中生成各种报告。实际上,搅动什么样的数据并不重要,因为从长远来看,我们可能希望能够推送我们认为需要的任何内容并从中获取报告。
粗略地说,我们有两种选择。
选项 1是基于 Apache Solr 编写解决方案(特别是使用https://issues.apache.org/jira/browse/SOLR-236)。这种方法的优点:
- 免费/开源/优质
- 我们在其他地方使用 Solr/Lucene,所以我们非常了解这个领域
- 由于我们可以获取传入数据(以 XML 格式),通过 XSLT 推送并将其提供给 Solr,因此对索引的内容具有完全的灵活性
- 如何显示搜索结果的完全灵活性。与上述步骤类似,我们可以自定义 XSLT 搜索模板并以我们认为必要的任何格式显示结果
- 我们的前端开发人员精通 XSLT,因此为不同的客户安装这种机制应该相对容易
- Solr 提供对我们来说绝对必要的实时/全文/分面搜索。一个快速原型(基于 Solr,1M 记录)能够在 55 毫秒内提供搜索结果。我们估计的最大记录数约为 10 亿行(这对于典型的 BI 应用程序来说并不算多),如果情况变得更糟,我们可以随时查看 SolrCloud 等。
- 有些公司使用 Solr 做非常相似的事情(例如,Honeycomb Lexicon)
这种方法的缺点:
- SOLR-236 可能稳定也可能不稳定,此外,尚不清楚何时/是否将其作为官方发布的一部分发布
- 我们可能需要编写一些东西才能使某些特定于 BI 的功能正常工作。这听起来有点像重新发明轮子
- 最大的问题是我们不知道将来可能需要什么(例如与某些 BI 软件集成,导出到 Excel 等)
选项 2是与一些免费或商业的 BI 软件集成。到目前为止,我已经查看了Wabit并将查看QlikView,可能还有其他人。这种方法的优点:
- 无需重新发明轮子,软件(希望)经过尝试和测试
- 将节省我们的时间,我们可以花在解决我们擅长的问题上
缺点:
- 因为我们是一家 Java 商店,而且我们的解决方案是跨平台的,所以我们必须消除市场上的很多选择
- 我不确定 BI 软件能有多灵活。一些 BI 产品需要时间来查看它们是否可以进行灵活的索引、实时/全文搜索、完全可定制的结果等。
- 有人告诉我,开源 BI 产品还不够成熟,而商业 BI(SAP 等)成本很高,它们的许可证从数万英镑/美元开始。虽然我本身并不反对商业选择,但它会增加整体价格,很容易变得太大
- 不确定 BI 处理无模式数据的效果如何
我绝对不是在市场上找到最合适的集成选项的最佳人选(主要是因为缺乏 BI 领域的知识),但是需要快速做出决定。
有没有人遇到过类似的情况,可以建议采取哪条路线,甚至更好 - 就选项#2的可能利弊提供建议?这里最大的问题是我不知道我不知道什么;)