【问题标题】:Business Intelligence and NoSQL商业智能和 NoSQL
【发布时间】:2021-04-06 11:19:19
【问题描述】:
对于我正在工作的新项目,我需要将一些数据存储到数据库中。数据类型和访问模型非常适合 NoSQL 模型和文档数据库。我们正在考虑 MongoDB 之类的东西,但还没有决定。
其中一项要求是能够允许商业智能工具使用我们的一些数据。我工作的其他人表示,这些工具允许直接使用关系数据库中的数据。我不知道需要哪些类型的商业智能工具来挖掘数据。
BI 工具通常也支持非 SQL 数据库吗?他们是否有其他可能适用的标准集成选项(有些似乎支持平面文件的 Web 服务)?是否值得简单地选择关系数据库,以便更容易被第三方 BI 工具使用?
【问题讨论】:
标签:
java
mongodb
business-intelligence
document-database
nosql
【解决方案1】:
BI 工具通常也支持非 SQL 数据库吗?
没有。他们真的不能。非 SQL 数据库彼此非常不同。 NoSQL 实际上只是一组松散的“非 SQL”。
但是,您将面临的问题是一个经典问题。大多数 NoSQL 数据库都在您可以“批处理”和“输出”您计划执行的报告的概念下运行。 (通常这意味着 map-reduce)
因此,如果您想使用常见的 BI 工具,您只需“弥合差距”。
MongoDB 支持 CSV 导出,然后可以将其导入到关系数据库中进行分析。对于一些复杂的查询,您可能需要编写“map-reduce”查询,然后导出该数据。显然,您必须编写几个导出/导入脚本。
但是,提供 BI 报告并仍然使用 MongoDB 作为主要数据存储是完全可能的。您仍然需要为 BI 套件运行 RDBMS。但它不太可能需要太多硬件,因为它只是用于报告而不是用于实时数据。
【解决方案2】:
MongoDB 非常好,但不够灵活。开发人员在开发应用程序时定义实体之间的关系。然而,商业智能意味着具有领域知识的人可以寻找实体之间的新关系。当开发人员开发表/集合的结构时,数据可以获得新的含义。
【解决方案3】:
自从提出这个问题 10 年以来,BI 领域发生了很大变化。 BI 工具通过将 json 响应扁平化为行格式来从 MongoDB 数据源中读取数据。