Cassandra 中的单数据列与多列

ndu*_*eck 3 java cassandra

我正在使用现有的 cassandra 数据库开展一个项目。架构如下所示:

分区键(大整数) 聚类 key1(时间戳) 数据(文本)
1 2021-03-10 11:54:00.000 {a:"somedata", b:2, ...}

我的问题是:将数据存储在 json 字符串中是否有任何优势?它会节省一些空间吗?

到目前为止,我只发现了缺点:

  • 您不能(轻松)在运行时添加/删除列,因为应用程序可能会覆盖 json 字符串列。
  • 解析 json 字符串是目前性能的瓶颈。

Eri*_*rez 5

不,在 Cassandra 中将 JSON 存储为字符串并没有真正的优势,除非 JSON 中的底层数据确实是无模式的。它也不会节省空间,但实际上会使用更多,因为每个项目都必须有一个键+值,而不仅仅是存储值。

如果可以,我建议将键映射到 CQL 列,以便您可以在本机存储值并更灵活地访问数据。干杯!