【发布时间】:2022-07-17 17:25:45
【问题描述】:
我们公司出现了一种新的业务需求,其中需要通过在线流程访问相对“大”的数据集(典型延迟高达 1 秒)。只有一个键具有高粒度/数以千万计的行数,并且预期的列/字段/值列数可能会超过数十万。
键列在所有值列之间共享,因此键值存储虽然可扩展,但在这里似乎相当浪费。对如此广泛的数据集使用 Cassandra / ScyllaDB(我们逐渐缩小搜索范围),同时理想地减少一半的数据存储需求(通过只存储一次公共密钥)是否有希望?
-
重新设计数据库,拆分表,在许多理想情况下遵循一些规则将它们连接起来
-
我不能重新设计它 - 商业用户可以但宁愿不......但我确实将问题缩小到 Cassandra/ScyllaDB(以解决最终选民对民意调查的担忧)。
-
每个数据库都有限制,因为表的宽度使处理变得更加复杂和资源消耗。至于人类在大多数情况下无法处理那么多列,要弄清楚逻辑。因此,请使用 uuid 或您拥有的任何内容作为新表的连接列,以扩展第一个太大的表。
-
我同意,它可能可以在关系数据库中实现,但想象一下复杂性......出于效率原因,每个这样的小表必须保持在 500 列以下,这要求数据维护人员将这 100k 字典分成至少 200表...
标签: database cassandra nosql storage scylla