例如,如果我创建简单的用户CF和我尝试插入新行,我如何可以在MysqL中增加一个增量键?
我看到很多例子,您只需将用户名替换为唯一的ID即可,但如果我希望用户拥有重复的用户名,该怎么办?
另外我怎么可以从我所理解的cassandra不支持>操作符,所以有些东西像select *来自用户那里的东西> something2不行.
可能最重要的问题是分组呢?我需要检索所有数据,然后使用我使用的任何语言进行过滤吗?我认为这会减慢我的系统.
所以基本上我需要一些简短的说明如何开始Cassanda.
关键:
>它们用于Cassandra作为分配环的单位.所以你的钥匙会被弄清楚,并在环中分配一个“所有者”.使用RandomPartitioner来保证均匀分配
>假设你使用RandomPartitioner(你应该),键没有排序.这意味着你不能要求一系列的钥匙.但是,您可以在单个查询中请求一个键列表.
>键在某些型号中是相关的,而不在其他型号中.如果您的模型需要逐个查询,则可以使用应用程序知道的任何唯一值(例如UUID).有时键是前哨值,例如表示一天开始的Unix纪元.这可以让Cassandra把一堆已知的密钥交给一些已知的密钥,然后通过列排列一系列数据(见下文).
关于查询谓词:
>您可以获得正确建模的数据范围,以回答您的查询.
>由于列按排序顺序编写,您可以使用切片查询(这非常快)来查询从列A到列n的范围.您还可以使用复合列抽象此机制.
>您可以在基数较低的列上使用辅助索引 – 这将提供逐个值查询功能.
>您可以创建自己的索引,其中数据按您需要的方式进行排序.
关于分组:
我认为你是指创建聚合.如果您需要实时的数据,您将需要使用一些外部机制(如Storm)来跟踪数据并不断更新相关的聚合成CF.如果您正在创建汇总作为批处理过程的一部分,Cassandra与Hadoop具有出色的集成功能,可以让您在Pig,Hive中直接使用您的语言编写地图/缩减作业.