我只有一周的时间来到C *世界。我使用copy命令从大约23 GB的csv文件上传数据。
我需要获取列系列的rowcount以确保成功插入行。我读到了两种执行此操作的方法:
从限制2000000中选择计数(*); 使用nodestats工具woth cfstas命令并检查结果中的“键数(估计值)” 我尝试了选项(1),但我一直等待很长时间没有任何结果。然后我尝试了选项(2)。但是我发现密钥数(估计值)随着时间的推移而减少。这是我的节点工具输出的一部分 命令:
nodetool --host 54.225.108.245 cfstats
O / P:
Keyspace: cookie_udp_ja_meta
Read Count: 0
Read Latency: NaN ms.
Write Count: 215724
Write Latency: 1.1088440368248316 ms.
Pending Tasks: 0
Column Family: rpt_true_metric
SSTable count: 7
Space used (live): 741159354
Space used (total): 741160083
Number of Keys (estimate): 896
Memtable Columns Count: 437886
Memtable Data Size: 61865984
Memtable Switch Count: 9
Read Count: 0
Read Latency: NaN ms.
Write Count: 215725
Write Latency: 1.074 ms.
Pending Tasks: 0
Bloom Filter False Positives: 0
Bloom Filter False Ratio: 0.00000
Bloom Filter Space Used: 7792
在我运行命令前5分钟,密钥数(估计值)为896,在此之前3分钟为1024。但是我注意到密钥空间的'Write Count:324654'值正在增加。
如果我的复制命令正确导入数据,因为即使在大约30分钟后操作仍未完成,我感到很困惑。请建议..
答案 0 :(得分:0)
您需要等到加载完成,此外部线程中描述了获取行计数的其他方法:http://www.datastax.com/support-forums/topic/row-count-for-a-given-column-family
在我的情况下,SELECT COUNT(*)cqlsh命令即使在加载完成后也会产生RPC命令超时。这是因为Cassandra中的一个非常昂贵的操作,它的成功主要取决于你的机器有多强大以及cassandra.yaml中的RPC超时值。