我有一个表有一个由五个大字段组成的复合分区键 .
我注意到由于这五个字段的大小,该表的SSTable索引文件非常大 .
我实际上不需要从我的表中检索这些字段的值,所以为了节省空间我想在客户端中将它们散列为单个值,然后使用该单个值作为分区键,就像Cassandra一样将复合分区键映射到单个标记值时执行的操作 .
所以我想知道java驱动程序中是否有函数或者我可以在客户端使用的一些java库函数来生成这个单值 .
我想我想要使用的类型是uuid,所以我正在寻找一个函数,我可以传递N值并获取一个uuid,然后用作我的分区键值 . 有人知道这样做的好方法吗?
1 回答
您是否尝试过启用压缩功能,看看它如何与您当前的数据模型一起使用?
使用哈希值作为分区键将容易发生哈希冲突 . 散列碰撞的实际机会取决于使用的算法 . 固定算法(如128位murmur3)将大大降低机会,但它们可能仍会发生,在这种情况下,您可能会在应用程序中看到数据交换 .