2017-03-21 54 views
2

我正在使用存储在SQL数据库(mariadDB)中的数据来存储有关“小部件”和“产品”的信息。何时使用NoSQL vs SQL BI数据

小部件具有与它们关联的元数据和一些关联的关系数据。像建立团队,建设者和图像。建设者可以在任何数量的团队中,任何团队都可以构建任何构件。目前这些数据被标准化为单独的表格和映射映射/关联表格。

产品也有元数据;说明,它是用来干什么的,当它被投放等

产品和部件表似乎是一个不错的选择了NoSQL的解决方案。也许不得不解除建设者的规范并建立团队。

哪里的数据似乎不适合NoSQL是产品和小部件之间的关系。小部件可以关联/映射到0个或更多产品。映射到产品的每个小部件都提供了该产品的功能(Widget A可以提供Web服务,Widget B可以提供移动等)。

每过一段时间的产品变化和小部件套件,然后重新映射到新的产品组合。这些数据正在与商业智能(BI)软件(Jaspersoft Studio)一起使用来生成报告。

数据不大。这是为了让我们的内部团队使用,并为他们提出请求时为其他团队生成报告。所以我不担心ACID合规性或写入锁定,垂直或水平缩放,24x7可用性以及这些类型的事情。我主要关注的是数据变化时的灵活性(捕获有关小部件和小部件所应用的一组产品的元数据)。

  1. 根据我的研究,如果您的数据完全相关,则应避免使用NoSQL。这些文章相当古老,我想知道这是否仍然如此?
  2. 当产品套件发生变化时,将小部件重新映射到新套件是很痛苦的。从理论上讲,NoSQL解决方案似乎可以帮助缓解这种痛苦。但我不知道如何。

回答

0

对于设置操作和关系,SQL更好,它对您正在使用的集合进行过滤也会更快。 NoSQL具有更大的功能灵活性,并且可以更快地完成一些单行操作。

我建议有两个环境,如果你需要使用NoSQL的,在SQL房屋所有数据和NoSQL为你做计算。要将数据提供给NoSQL,最佳做法是创建表值函数或视图。