使用copy命令将数据导入cassandra

时间:2013-06-24 17:45:47

标签: cassandra nodetool

我只有一周的时间来到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分钟后操作仍未完成,我感到很困惑。请建议..

1 个答案:

答案 0 :(得分:0)

您需要等到加载完成,此外部线程中描述了获取行计数的其他方法:http://www.datastax.com/support-forums/topic/row-count-for-a-given-column-family

在我的情况下,SELECT COUNT(*)cqlsh命令即使在加载完成后也会产生RPC命令超时。这是因为Cassandra中的一个非常昂贵的操作,它的成功主要取决于你的机器有多强大以及cassandra.yaml中的RPC超时值。