我正在尝试连接到 Cassandra 以进行批量插入。但是,当我尝试连接时,出现错误。
我正在使用的代码:
from pycassa import columnfamily
from pycassa import pool
cassandra_ips = ['<an ip addr>']
conpool = pool.ConnectionPool('my_keyspace', cassandra_ips)
colfam = columnfamily.ColumnFamily(conpool, 'my_table')
然而,这在最后一行失败了:
pycassa.cassandra.ttypes.NotFoundException: NotFoundException(_message=None, why='Column family my_table not found.')
列族肯定存在:
cqlsh> use my_keyspace
... ;
cqlsh:my_keyspace> desc tables;
my_table
cqlsh:my_keyspace>
而且我认为这不是表名上的简单错字,因为我已经检查了十几次,但也因为这个:
In [3]: sys_mgr = pycassa.system_manager.SystemManager(cassandra_ips[0])
In [4]: sys_mgr.get_keyspace_column_families('my_keyspace')
Out[4]: {}
为什么会这样{}
?
如果重要的话:
- 表/列族是使用 CQL 创建的。
- 该表目前是空的。
该表大致是使用以下方法创建的:
CREATE TABLE my_table ( user_id int, year_month int, t timestamp, <tons of other attributes> PRIMARY KEY ((user_id, year_month), t) ) WITH compaction = { 'class' : 'LeveledCompactionStrategy', 'sstable_size_in_mb' : 160 };