【问题标题】:When to use NoSQL vs SQL for BI data何时将 NoSQL 与 SQL 用于 BI 数据
【发布时间】:2017-08-13 04:56:11
【问题描述】:

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

小部件具有与其关联的元数据和一些关联的关系数据。就像构建团队、构建者和图像一样。构建者可以在任意数量的团队中,并且任何团队都可以构建任何小部件。目前,这些数据被规范化为单独的表和映射映射/关联表。

产品也有元数据;描述、用途、交付时间等。

产品和小部件表似乎非常适合 NoSQL 解决方案。也许不得不去规范化建设者和建立团队。

数据似乎不太适合 NoSQL 的地方是产品和小部件之间的关系。小部件可以关联/映射到 0 个或更多产品。映射到产品的每个小部件都为该产品提供了一种能力(小部件 A 可以提供网络服务,小部件 B 可以提供运动等)。

每隔一段时间,产品套件就会发生变化,然后小部件会重新映射到新产品集。这些数据与商业智能 (BI) 软件 (Jaspersoft Studio) 一起用于生成报告。

数据不大。它供我们的内部团队使用,并根据其他团队的要求为他们生成报告。所以我不担心 ACID 合规性或写锁、垂直或水平扩展、24x7 可用性以及诸如此类的事情。我主要关心的是数据变化时的灵活性(捕获的关于小部件的元数据和小部件应用到的产品集)。

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

【问题讨论】:

    标签: sql database business-intelligence nosql


    【解决方案1】:

    SQL 在集合操作和关系方面效果更好,它在过滤您正在使用的集合方面也会更快。 NoSQL 具有更大的功能灵活性,可以更快地完成一些单行操作。

    如果您需要使用 NoSQL,我建议您使用两种环境,一种是用于容纳所有数据的 SQL,另一种是用于为您进行计算的 NoSQL。将数据输入 NoSQL 最佳实践是创建表值函数或视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 2015-03-09
      • 2016-05-27
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多