这就是 CQL3 在内部表示数据的方式。它为列创建分区。您需要了解 CQL3 的存储模型。在 DataStax 博客上有很好的阅读资料。看看这些:
http://www.datastax.com/dev/blog/thrift-to-cql3
http://www.datastax.com/dev/blog/cql3-for-cassandra-experts
编辑:
这里我们处理的是 CQL3 而不是节俭。如果您阅读了我的答案中的第二个链接(cql3-for-cassandra-experts),您将了解使用 CQL3 创建表时数据是如何存储在存储引擎中的。假设我们创建了下表:
CREATE TABLE song_tags (
id uuid,
tag_name text,
PRIMARY KEY (id, tag_name)
);
并假设我们有以下由单个存储引擎表示的行:
f665cfc469eb | blues | 1973
f665cfc469ea | covers | 2003
这些由 CQL3 存储如下:
|id | tag_name |
-----------------------------
|f665cfc469eb blues |
|f665cfc469eb | 1973 |
| |
|f665cfc469ea covers |
|f665cfc469ea | 2003 |
现在,如果您执行 SELECT * FROM song_tags; 这将是输出:
id | column1 | value
--------------------------------------+---------+-------
8a172618-b121-4136-bb10-f665cfc469ea | 2003 |
8a172618-b121-4136-bb10-f665cfc469ea | covers |
a3e64f8f-bd44-4f28-b8d9-f665cfc469eb | 1973 |
a3e64f8f-bd44-4f28-b8d9-f665cfc469eb | blues |
PS实现你想要的;您可以尝试使用集合和地图。他们可能会解决您的问题。