9

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

[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”这样的值。

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

4

1 回答 1

20

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

如果您不想要这种实际的数据类型,您可以使用该命令告诉 CLI 假定列名或值是某种数据类型assume。键从不具有数据类型,因此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 开始,您可以为密钥指定验证类,CLI 会自动使用此信息。

于 2011-01-12T05:17:03.927 回答