java - 从 cassandra 导出 key 的最快方法

标签 java cassandra

使用 Java API 或其他工具从 cassandra(0.7.x 及更高版本)中的列族导出所有行键的最快方法是什么?

目前我正在使用Java Pelops API,并对所有记录进行分页,但我想知道是否有更好的机制。

我对仅导出行键(无列/子列)特别感兴趣,因此我想知道是否有 cassandra 直接存储 API 的一部分可用于尽快执行此操作(绕过 thrift)。

最佳答案

使用 Java 怎么样 客户。样本取自 https://github.com/rantav/hector/wiki/User-Guide

RangeSlicesQuery<String, String, String> rangeSlicesQuery = 
HFactory.createRangeSlicesQuery(keyspace, stringSerializer, 
     stringSerializer, stringSerializer);
rangeSlicesQuery.setColumnFamily("Standard1");
rangeSlicesQuery.setKeys("fake_key_", "");
rangeSlicesQuery.setReturnKeysOnly(); // use this
rangeSlicesQuery.setRowCount(5);
Result<OrderedRows<String, String, String>> result = rangeSlicesQuery.execute();
  • 的API接口(interface)。直接访问存储需要您读取二进制数据文件。上面的代码应该会给您带来良好的性能。
  • 如果您需要一次性导出,那么我会说没问题。如果您需要在生产中使用它,您应该重新考虑您的数据模型 - 您可能做错了什么。
  • 如果您需要扫描多行,您可能需要使用多个键范围拆分查询。

关于java - 从 cassandra 导出 key 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461047/

相关文章:

Java 数字总和错误

java - 已编辑!未调用的 getter 函数导致 JPanel 在错误的位置重新打印

cassandra - 只需在一行上设置 TTL

java - Cassandra 使用 thrift 在 CQL3 中准备语句

search - 无法使用带有通配符的 solr 查询来搜索电子邮件 ID 字段

java - 在 Linux 上安装最新的 Java 版本

java - 了解跨多个域的 JSessionId

java - 获取正确的正则表达式——Java

java - Cassandra :java.lang.UnsupportedClassVersionError

sql - 微不足道的任务 - 复杂的解决方案?