将多个表平整为一个大表

时间:2019-03-20 10:15:25

标签: database database-design bigdata analytics scalability

我们计划为我们的平台提供分析服务。到目前为止,数据位于关系数据库中,并且当前的小规模分析正在此关系数据之上运行。大部分分析数据都是经过预先计算的,以减少延迟。

随着我们的成长,我们看到数据量呈指数级增长,并且分析也变得更加动态(使预计算变得困难)。

我们面临的问题是如何在不进行架构修改的情况下有效地进行扩展。要添加更多上下文,我们有〜30个表,其中10个表具有〜50M行和〜50列的行,其余的列和行数较小。我们的分析查询在这些较大的表上运行,并在情况下连接2-3个表。当前,由于数据量小,一切都在限制之内,但无法继续扩展。

我们解决问题的想法

  1. 将10个较大的表中的数据平铺到1-2个表中,这将避免我们的联接

    • 这将导致展平表的行数和列数爆炸,查询延迟也将很高
    • 将生成不必要的数据
    • 对这些表的更新将非常慢
  2. 使用方法1的分片

    • 可以帮助缩短查询延迟时间
    • 我们的数据分发甚至还没有使某些分区/分片变得沉重,大约占整个数据量的40%。
  3. 将数据放入NoSQL / Columnar解决方案,并依靠其高效的列级搜索优势

我知道,没有上下文和更多信息,这听起来可能是模糊或笼统的问题,但是我提供了我们问题的要点。我希望能从社区中获得指导或指示,这些社区是数据库管理方面的专家或曾经遇到过类似情况。

0 个答案:

没有答案