如何在Perl和Cassandra 1.0中为batch_mutate构建mutation_map

时间:2012-03-15 02:44:17

标签: perl insert cassandra thrift batch-processing

Cassandra Thrift example site仍然引用“batch_insert”命令,该命令显然已被弃用。使用Cassandra 1.0,应该使用batch_mutate,它需要传递$ mutation_map。有没有人有关于如何建立地图的工作示例?根据{{​​3}},它必须如下所示:

batch_mutate(map<binary, map<string, list<Mutation>>> mutation_map, ConsistencyLevel consistency_level)

然而,我似乎无法弄清楚如何正确地构建地图,我找不到任何描述如何在没有任何包装模块的情况下在Perl中执行此操作的内容,例如净::卡桑德拉。

任何帮助,例如,链接都非常感谢。

1 个答案:

答案 0 :(得分:0)

正如您所知,地图有几个层次:

  • 外层,其中行键作为地图的键
  • 中间层,其列名称作为地图的键
  • 内层,即Mutation对象列表

基本上,行键=&gt; column family =&gt;突变列表。

内层中的每个Mutation对象都应设置其中两个属性之一:

  • 对于插入:column_or_supercolumn(ColumnOrSuperColumn对象)
  • 删除:删除(删除对象)

如果要在同一行/ cf中插入多个列,则需要为每个列添加一个Mutation对象。

Cassandra::Simple似乎use batch_mutate in several places。我建议尝试使用它并改进它,而不是构建一个新的客户端。维护者对项目非常积极。