【问题标题】:Cassandra: copy entire rowCassandra:复制整行
【发布时间】:2012-12-27 12:16:00
【问题描述】:

有没有推荐的方法,使用 Java 客户端,复制/克隆 Cassandra 列族中的一行?

我目前正在使用带有 Cassandra 1.1.8 的 Hector (1.0-2),但切换到另一个客户端库应该不成问题。

【问题讨论】:

  • 为什么要复制一行?你要复制到哪里?由于与任何客户争吵都很简单,我不确定您的问题是什么。
  • 我必须复制同一列族中的一行,但使用不同的行键。是的,我知道任何客户端都可以让您检索给定行键的所有单元格。我想知道是否有更“外观”的方法来做到这一点,而不是手动获取所有行并在循环中重新创建行。

标签: nosql cassandra thrift hector pelops


【解决方案1】:

不,通过发送键列表来获取所有行(在磁盘上并行发生,因此 i/o 更快)。循环遍历内存中的所有行(无论如何这真的很快)并执行一次写入操作,将所有行写回磁盘。(同样,写入是在所有磁盘上并行完成的,因此磁盘写入速度很快)。

i/o 是您无论如何都需要担心的,因为内存中的操作通常很快。如果您要进行大量复制,则需要改用 map/reduce。

如果您在 cassandra 上使用 PlayOrm,只需在要复制的实体上编写一个复制方法以保持代码干净。

【讨论】:

  • 谢谢,我每次只复制一行,所以整体流程应该很快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 2019-08-10
  • 2019-01-14
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多