Cassandra cli:将十六进制值转换为人类可读的格式

Edm*_*mhs 9 cassandra nosql 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.
Run Code Online (Sandbox Code Playgroud)

我看不懂它,我只看到像'6e616d65'这样的值.

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

Tyl*_*bbs 20

默认情况下,列名和列值在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;
Run Code Online (Sandbox Code Playgroud)

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