我们在Cassandra 1.2.0中有一张桌子。那有一个VarInt键。当我们搜索密钥时,我们可以看到它们存在。
表格描述:
CREATE TABLE u (
key varint PRIMARY KEY,
) WITH COMPACT STORAGE AND
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.000000 AND
gc_grace_seconds=864000 AND
read_repair_chance=1.000000 AND
replicate_on_write='true' AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'SnappyCompressor'};
Select key from u limit 10;
键
12040911
60619595
3220132
4602232
3997404
6312372
1128185
1507755
1778092
4701841
当我尝试获取密钥60619595的行时,它可以正常工作。
cqlsh:用户>从中选择键,其中key = 60619595;
键
60619595
cqlsh:users> select key from u where key = 3997404;
当我使用pycassa获取整个表格时,我可以访问该行。
import pycassa
from struct import *
from pycassa.types import *
from urlparse import urlparse
import operator
userspool = pycassa.ConnectionPool('users');
userscf = pycassa.ColumnFamily(userspool, 'u');
users = {}
u = list(userscf.get_range())
for r in u:
users[r[0]] = r[1]
print users[3997404]
返回正确的结果。
我做错了什么?我看不出错误是什么。
任何帮助将不胜感激,
此致
迈克尔。
PS: 当我尝试时,我应该在pycassa中说:
userscf.get(3997404)
文件“test.py”,第10行,in userscf.get(3997404) 文件“/usr/local/lib/python2.7/dist-packages/pycassa/columnfamily.py”,第655行,获取 提出NotFoundException() pycassa.cassandra.ttypes.NotFoundException:NotFoundException(_message = None)
似乎在Ints中小于平均值。
答案 0 :(得分:0)
您正在混合基于CQL和基于Thrift的查询,这些查询并不总是很好地混合。 CQL抽象底层存储行,而Thrift直接处理它们。
答案 1 :(得分:0)
这是我们在项目中遇到的问题。我应该补充一点
从中选择键,其中key = 3997404; cqlsh:用户>
返回0结果,即使在cqlsh中select * from u,或者在pycassa中获取整个表时,我们会看到带有键3997404的行。
很抱歉这个混乱。
此致
d