-1

我刚到 C* 世界一周大。我正在使用复制命令从大约(23 GB)的 csv 文件上传数据。

我需要获取列族的行数以确保成功插入行。我读到了两种执行此操作的方法:

从限制 2000000 中选择计数(*);使用 nodestats 工具 woth cfstas 命令并检查结果中的“键数(估计)”,我尝试了选项(1),但我一直等待很长时间没有任何结果。然后我尝试了选项(2)。但是我发现键的数量(估计)随着时间的推移而减少。这是我的节点工具命令输出的一部分:

nodetool --host 54.225.108.245 cfstats

开/关:

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。但是我注意到键空间的“写入计数:324654”值正在增加。

如果我的复制命令正确导入数据,我会感到困惑,因为即使在大约 30 分钟后操作仍未完成。好心提醒..

4

1 回答 1

0

您需要等到加载完成,在此外部线程中描述了获取行数的替代方法:http ://www.datastax.com/support-forums/topic/row-count-for-a-给定列族

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

于 2013-06-24T18:57:23.377 回答