Cassandra ColumnFamily に CompositeColumns を作成する必要があります。
各列の値には、次のようなものが保存されます-
user-id column1
123 (Column1-Value Column1-SchemaName LastModifiedDate)
column2 も他の列も同様です。だから私はこのようなもので行くことにしました-
以下は、列の説明です-
ByteType for Column-Value
UTF8Type for Column-SchemaName
DateType for LastModifiedDate
このような以下の列ファミリを作成しました-
create column family USER_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'CompositeType(ByteType,UTF8Type,DateType)'
and default_validation_class = 'UTF8Type'
and gc_grace = 86400
and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
これが上記の列ファミリーを作成する正しい方法であるかどうか教えてください。
しかし、上記の列を実行しようとするとすぐに、常に以下のエラーが発生します。
[default@userks] create column family USER_DATA
... with key_validation_class = 'UTF8Type'
... and comparator = 'CompositeType(ByteType,UTF8Type,DateType)'
... and default_validation_class = 'UTF8Type'
... and gc_grace = 86400
... and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
java.lang.RuntimeException: Unknown comparator 'CompositeType(ByteType,UTF8Type,DateType)'. Available functions: bytes, integer, long, int, lexicaluui
d, timeuuid, utf8, ascii, double, countercolumn.
誰でもこれで私を助けることができますか?
アップデート:-
私はちょうどそのエラーについてs
知りました.ByteTypeにエクストラを追加するのを忘れていました.
以下はColumnFamilyです-
create column family USER_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'CompositeType(BytesType,UTF8Type,DateType)'
and default_validation_class = 'UTF8Type'
and gc_grace = 86400
and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
以下は私が得たエラーです..
[default@beprofileks] create column family USER_DATA
... with key_validation_class = 'UTF8Type'
... and comparator = 'CompositeType(BytesType,UTF8Type,DateType)'
... and default_validation_class = 'UTF8Type'
... and gc_grace = 86400
... and column_metadata = [ {column_name : 'lmd', validation_class : DateType}];
java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: cannot parse 'lmd' as hex bytes