1
我想从我的项目(这将让我们升级cassandra的版本)使用pycassa本地协议。我的架构使用pycassa定义,因此它使用紧凑的存储创建的列家族,它有3列其不是复合主键的一部分(我知道这不是由CQL协议允许的。)
架构没有完全从Thrift协议转换到CQL协议
的版本我目前的Cassandra集群是2.0.17。当我做“显示模式”使用节俭协议的模式来为:
create column family store
with column_type = 'Standard'
and comparator = 'CompositeType(org.apache.cassandra.db.marshal.ReversedType(org.apache.cassandra.db.marshal.LongType),org.apache.cassandra.db.marshal.AsciiType,org.apache.cassandra.db.marshal.AsciiType)'
and default_validation_class = 'DoubleType'
and key_validation_class = 'AsciiType'
and column_metadata = [
{column_name : 'something1',
validation_class : AsciiType},
{column_name : 'something2',
validation_class : AsciiType}]
但是,当我检查了本地协议的架构,它缺少“栏3”和“价值”栏。它出来,如下所示:现在
CREATE TABLE store (
key ascii,
column1 bigint,
column2 ascii,
something1 ascii,
something2 ascii,
PRIMARY KEY ((key), column1, column2)
) WITH COMPACT STORAGE AND
CLUSTERING ORDER BY (column1 DESC, column2 ASC)
,因为这种差异,我无法从pycassa在客户端本地协议转换。我一直无法找到任何解决此问题的方法,并确保本机协议能够看到正确的模式。有什么可以建议我解决这个问题吗?
我已经在商店里有很多数据。我怀疑那些数据会回到这个新的模式,如果我只是改变表格,因为数据实际上已经存在于Thrift协议中。此外,Thrift协议已在_comparator_和_default_validation_class_下具有_value_和_column3_详细信息 – Nitin