无法在cassandra cli中插入数据
得到 模式:无法在cassandra cli中插入数据,cassandra,cassandra-cli,Cassandra,Cassandra Cli,得到 模式: cassandra error: cannot parse uuid as hex bytes` java.sql.SQLSyntaxErrorException: cannot parse '8768c481-a118-48b7-aed2-2903b917d045' as hex bytes at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.doExecute(CassandraPrepared
cassandra error: cannot parse uuid as hex bytes`
java.sql.SQLSyntaxErrorException: cannot parse '8768c481-a118-48b7-aed2-2903b917d045' as hex bytes
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.doExecute(CassandraPreparedStatement.java:155)
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.execute(CassandraPreparedStatement.java:191)
at CassClass.main(CassClass.java:55)
CLI命令:
{
column_name: key,
validation_class: UTF8Type,
index_type: KEYS
} where key is UUID generated
as UUID key = UUIDGenerator.getInstance().generateRandomBasedUUID();
如果您使用的是CQL,最好也使用CQL创建列族。您似乎发现了一个bug,因为生成的CQL模式无效(有两列称为key): 但是,如果只需要一个索引字段,则可能需要以下架构:
CREATE TABLE newdata (
key blob PRIMARY KEY,
key text
);
这里,主键的类型为UUID,因此会检查您的键是否是有效的UUID。然后,您可以插入以下内容:
CREATE TABLE newdata (
key uuid PRIMARY KEY
);
然后您可以进行如下查找:
INSERT INTO newdata (key) VALUES (8768c481-a118-48b7-aed2-2903b917d045);
这将告诉您UUID是否存在。您可以稍后添加其他列并使用上面的SELECT查询检索它们。您可以粘贴整个cassandra cli输出吗?您的模式是什么?{column_name:key,validation_class:UTF8Type,index_type:KEYS}其中key是UUID生成的,作为UUID key=UUIDGenerator.getInstance().GeneratorDomainBasedUID();您使用的是什么cassandra cli命令?使用create column family newdata创建列族,使用comparator=UTF8Type;然后,使用column_metadata=[{column_name:key,validation_class:UTF8Type,index_type:KEYS}]更新column family newdata;使用cqlsh命令插入数据至新数据(键)值('8768c481-a118-48b7-aed2-2903b917d045');
INSERT INTO newdata (key) VALUES (8768c481-a118-48b7-aed2-2903b917d045);
SELECT * FROM newdata1 where key = 8768c481-a118-48b7-aed2-2903b917d045;