我想使用 CQL3 查询在 Cassandra 中创建一个表,其结构类似于:
myTable
myTable_uuid
<key_1|second_key_1> : <value_1>,
<key_1|second_key_2> : <value_2>,
<key_1|second_key_3> : <value_3>,
<key_2|second_key_4> : <value_4>,
<key_2|second_key_5> : <value_5>,
<key_2|second_key_6> : <value_6>
PRIMARY KEY(myTable_uuid, first_key_1, first_key_2, second_key_1)
表/CF 名称是“myTable”,myTable_uuid 是行键。此外,我想使用 CQL3 创建复合列键,以便能够对数据进行分组(key_1 和 key_2 形成组)。这支持吗?如果是的话,有人可以帮助我提供一个示例 CQL3 查询或语法。
目的:我正在尝试设计 CF,以便对数据/值进行逻辑分组,类似于 ebay 博客 ( http://www.ebaytechblog.com/2012/07/16/cassandra-data-modeling ) 中 Cassandra 中解释的数据模型-best-practices-part-1/ )。
更新
我在设计时要牢记我的应用程序和我需要的查询。我应该使用现实生活中的查询而不是虚拟查询,但这是我想要实现的目标:
myTable
myTable_uuid
<email|fname> : <value_1>,
<email|lname> : <value_2>,
<email|age> : <value_3>,
<email|timestamp> : <value_4>,
<shool_id|school_name> : <value_5>,
<shool_id|zip_code> : <value_6>
PRIMARY KEY(myTable_uuid, email, school_id, school_name)
它将表现为“<email|fname> , <email|lname>, <email|age>, <shool_id|school_name> and <shool_id|zip_code>
复合列键”而不是行键,该表具有“myTable_uuid”,因为它是行键。这种方法将帮助我将我的数据分组为“电子邮件”和“学校 ID”。如何创建“复合列键”,是否支持仅基于 1 个复合 CK 进行查询?例如:
SELECT fname, age WHERE email = 'xyz@gmail.com'
我正在使用 Cassandra 1.2.6 和 CQL3。任何帮助表示赞赏。