2013-09-25 70 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()