Java 在Cassandra中使用映射数据类型(或不使用)

Java 在Cassandra中使用映射数据类型(或不使用),java,cassandra,Java,Cassandra,我将把一个扁平的JSON实体类型保存到Cassandra中。对于数据模型,我有两个选项: ((entityType, entityId), jsonPath), value 或 (entityType,entityId),映射键值 我的用例是,当为每个entityId插入时,删除所有映射并插入。并按entityType、entityId和jsonPath进行查询 从流式摄取和UI查询系统的角度来看,上述哪一项应具有更好的性能/可扩展性 扁平JSON将有大约100个字段。实体的数量将不到100

我将把一个扁平的JSON实体类型保存到Cassandra中。对于数据模型,我有两个选项:

((entityType, entityId), jsonPath), value

(entityType,entityId),映射键值
我的用例是,当为每个entityId插入时,删除所有映射并插入。并按entityType、entityId和jsonPath进行查询

从流式摄取和UI查询系统的角度来看,上述哪一项应具有更好的性能/可扩展性


扁平JSON将有大约100个字段。实体的数量将不到100万-在几十万中。

如果可能,最好将字段映射到CQL列,而不是映射到
集合


使用CQL列等同于更简单的CRUD操作。干杯

再补充一下埃里克所说的,卡桑德拉的大量收藏可能导致其他问题。DataStax提供了一些关于如何使用“”集合的文档,以帮助使用不同的访问模式。折衷是,在各种高写入吞吐量场景中,非冻结的集合可能会生成大量墓碑,而冻结的集合必须在就地写入时重新写入整个集合

tl;博士

映射到各个列是一个更好的选择

(entityType, entityId), map<text, text> keyValue