以下是我需要在Cassandra Column Family中表示的数据。
rowKey e1_name e1_schemaname e1_last_modified_date
123 (ByteArray value) abc (some string) some_date
userId
在这里是rowKey
。 e1_name
,e1_schemaname
和e1_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
现在我在思考,我应该如何继续为我的上述用例创建一个动态列族。我面临的问题是,每个列都有自己的数据类型。对于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
任何人都可以帮我设计上述用例的列族吗?
答案 0 :(得分:0)
您可以使用“BytesType”。
您可以使用AbstractSerializer.toByteBuffer()和AbstractSerializer.fromByteBuffer()
轻松地将“BytesType”转换为您想要的数据类型