nosql - Cassandra CLI : Convert hex values into a human-readable format

标签 nosql cassandra cassandra-cli

我从 开始,当我在 中运行 listget 命令时,我得到如下结果:

[default@usersdatabase] list users;
Using default limit of 100
-------------------
RowKey: boby
=> (column=6e616d65, value=426f62, timestamp=1294780856414000)
-------------------
RowKey: edzuksm
=> (column=656d61696c, value=6d617268656c697340696e626f782e6c76, timestamp=1294780533705000)
=> (column=6e616d65, value=45647561726473, timestamp=1294780488155000)
=> (column=7375726e616d65, value=4d617268656c6973, timestamp=1294780515429000)

2 Rows Returned.

我无法读取它,我只看到像“6e616d65”这样的值。

如何以人类可读的格式显示值?

最佳答案

默认情况下,列名和列值在 Cassandra 中没有类型,它们只是字节数组。如果您设置比较器类(列名称类型)或验证类(列值类型),CLI 将识别这一点并以合理的方式向您显示数据类型格式而不是字节数组的十六进制版本。

如果您不希望这种实际的数据类型,您可以使用 assume 命令告诉 CLI 假定列名称或值是某种数据类型。键从来没有数据类型,因此如果您想使用某些数据类型,则必须在此处使用 assume

以下是假设的帮助信息供引用:

[default@Keyspace1] help assume;    
assume <column_family> comparator as <type>;
assume <column_family> sub_comparator as <type>;
assume <column_family> validator as <type>;
assume <column_family> keys as <type>;

Assume one of the attributes (comparator, sub_comparator, validator or keys)
of the given column family to match specified type. Available types: bytes, integer,
long, lexicaluuid, timeuuid, utf8, ascii.
example:
assume Users comparator as lexicaluuid;

编辑:从 Cassandra 0.8 开始,您可以为 key 指定验证类,CLI 会自动使用此信息。

关于nosql - Cassandra CLI : Convert hex values into a human-readable format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662940/

相关文章:

java - 找不到请求的操作的编解码器 : [date <-> java. util.Date]

cassandra - 如何配置cassandra进行远程连接

cassandra - 更改键空间以更改策略类在 cassandra-cli 中不起作用

java - MongoDb 通过 jndi

mysql - 配置/设置 Rails 应用程序以同时使用 Mongodb 和 Mysql

nosql - 如何在 DynamoDB 中处理多对多

java - Cassandra java.lang.IllegalArgumentException : text while getMetaData

java - 哪个用Java编写的嵌入式数据库可用于简单的键/值存储?

docker - 使用 docker-compose 从单独的 docker 容器访问 Cassandra

java - MapReduce 上 Cassandra 执行错误