我有大约20到30个列,我需要存储在我的列族中。但是,我的数据有不同的变化。我有不同的对象逻辑上属于一起但没有相同的字段(字段与键名称)。有时提供5个字段,有时提供7个字段,依此类推。所有这些都共享一部分始终提供的字段。
我在此列系列中插入的行永远不会填充所有列。使用Map时,我可以根据对象类型添加键/值,并且不会有我的其他模型引入的可能开销。
我担心每一行都有很多空列。
使用地图的一个可能的缺点是you can't have an index for map keys and map values coexist。
收集的问题:
map<text,text>
并在我的应用程序中转换值? 我正在使用Cassandra 3.0.8 | CQL规范3.4.0 |原生协议v4
谢谢
答案 0 :(得分:2)
我认为具有稀疏列值是完全正常的,因为这是创建BigTable和实现相同稀疏地图数据模型的所有相关解决方案的原因之一。
我将更关注使用cql集合的限制,正如另一个S.O.所指出的那样。回答bounding box。
关于您的具体问题:
无论如何,您可以找到有关Cassandra限制here的一些信息。它是一个旧页面,但我假设您可以将它们用作更新值的下限。
希望它有所帮助。
答案 1 :(得分:1)
实际上,Map,Set,List只是旧Cassndra数据结构的CQL sintax,以及存储为通常宽行的映射。
这里有几个关于映射cql类型的Slides