我正在使用DSE4.5,我有一个带有5个复合主键(行键)和10个列的cassandra表。 阅读时我会使用solr和hive。
如果我使用所有五个复合键的组合创建具有单列rowkey的相同表并将其用作主键,那么我观察读取(来自solr和hive)并且写入(在cassandra上)性能将增加读取i的cos我在每列上通过solr创建索引。
当我在复合主键表中通过复制命令插入1000万条记录时,花了20分钟 与单列行键一样,花了4分钟。(这个时差是由于聚类键)? Ans也从hive中读到了响应时间的巨大差异。
=============================================== ===================================== 我当前的表结构如下:复合主键(年份,季度,月份,用户ID,日期时间)和其他10个列。我的读取查询将过滤用户ID和日期时间或按年份和用户ID(实际上它不是固定的)由solr和hive 。因此,在这种情况下,分区列是年份和其他方法我连接所有5列并在单独的列中使其成为单个主键。通过这样做,我获得了良好的插入性能以及从solr和hive的良好读取。
通过对每行完成此分区。
现在我的问题是:这是一个好习惯吗?
由于我的阅读请求未得到修复,可能是从分区键开始过滤,也可能不是 1.这些cassandra表中的数据分区是否会影响solr索引,或者如果我使用single(串联5列)列并通过solr创建索引对我来说更好?
如果我们只讨论插入,这两种方法(复合键和单列主键)之间的性能是否存在差异?
具有两个数据中心的节点数量 1,DC 1 solr,1cassandra 2,DC 1 solr,1cassandra,1 hadoop
RF-3
请建议.. 感谢