将所谓的COMPANY表成功加载到Cassandra中。 (company.csv) 加载后,我收到消息“在1.999秒内导入394行”。
当我使用“SELECT COUNT(*)FROM COMPANY”计算它们时我只得到2排。
我试过放下桌子和放大器再次创造。甚至放弃了整个Keyspace&再次创建,但问题仍然存在。 对此有何解决方案?
答案 0 :(得分:2)
Cassandra中的插入和更新是相同的,因此如果您的密钥有重复记录,它们将覆盖以前插入的数据。
实施例
Given Key (x)
x,y,z
1,1,1
1,2,2
1,3,3
Cassandra的唯一记录是
1,3,3
因为其他记录会被覆盖。
答案 1 :(得分:1)
您的复制因素是什么?您指定的读取一致性是什么?如果您的复制因子是RF,则写入一致性为W且读取一致性为R,则R + W> RF将为您提供即时一致性。如果你的复制因子是3,W是1而R是1,那么很可能你正在写一个副本并从另一个副本中读取。
另一方面,您的主键是什么?它只是CompanyId(或类似的)然后SELECT COUNT(*)将是一个可怕的查询。如果您只有394家公司,那么为所有公司创建一个分区并将所有公司作为行可能会更好。在这种情况下,您的主键可能是:
Primary key (CompanyDummySameForAll int, CompanyId int)
这意味着所有公司都将存储在一个分区(ID为CompanyDummySameForAll的分区)中,所有其他公司数据都存储在该分区中的行中。然后,您可以通过以下方式查询:
SELECT COUNT(*) from TableName where CompanyDummySameForAll = 1;
它仍然不是一个好的查询(SELECT COUNT(*)并非一般),但它会更好。并且有394个参赛作品,应该没问题。