2013-09-25 69 views
0

下面是我需要在我的Cassandra Column Family中表示的数据。不同数据类型的Cassandra列族

rowKey   e1_name     e1_schemaname     e1_last_modified_date 
123    (ByteArray value)   abc (some string)    some_date 

userId是这里的rowKey。并且e1_name,e1_schemanamee1_last_modified_date是专门用于e1的列。所有这三列均包含专门用于e1列的值。以同样的方式,我将有另一个列如下。

e2_name     e2_schemaname     e2_last_modified_date 
(ByteArray value)   abc (some string)    some_date 

e3_name     e3_schemaname     e3_last_modified_date 
(ByteArray value)   abc (some string)    some_date 

现在我在想,我应该怎么继续和我的上述使用情况创建一个动态柱族。我面临的问题是,每个colums都会有自己的数据类型。对于e1,我将有e1_name这是ByteArray,e1_schemaname这将是UTF8,e1_last_modified_date这是DateType。同样适用于e2系列和e3系列。

这是我有,但我不认为这会工作。

create column family USER_DATA 
with key_validation_class = 'UTF8Type' 
and comparator = 'UTF8Type' 
and default_validation_class = 'UTF8Type' 
and gc_grace = 86400 

任何人都可以帮助我设计上述用例的列族吗?

+2

为什么不CQL3您的架构模型很容易地转换“BytesType”到/从你所需的数据类型? –

+0

因为我们在其他一些keysapce中使用Column Family,所以我们已经准备好了DAO代码,并且它正在生产中。因此,我们现在不需要在CQL3上进行实验... – ferhan

+0

您是否使用Hector-client? –

回答

0

您可以使用“BytesType”。

可以使用AbstractSerializer.toByteBuffer()和AbstractSerializer.fromByteBuffer()