将大量数据从Cassandra导出到CSV

Krz*_*asa 20 csv bigdata cassandra cassandra-2.0

我正在使用Cassandra 2.0.9存储相当大的数据,比如100Gb,在一个列族中.我想快速将此数据导出为CSV.我试过了:

  • sstable2json - 它生成相当大的json文件,难以解析 - 因为工具将数据放在一行并使用复杂的模式(例如300Mb数据文件=〜2Gb json),转储需要花费大量时间,而Cassandra喜欢改变源文件名根据其内部机制
  • COPY - 在相当快的EC2实例上导致大量记录的超时
  • 捕获 - 如上所述,导致超时
  • 用分页读取 - 我使用了timeuuid,但它每秒返回大约1,5k条记录

我使用Amazon Ec2实例,具有快速存储,15 Gb RAM和4个内核

对于从Cassandra到CSV的数据导出千兆字节有什么更好的选择吗?

Fir*_*ama 3

因为当您尝试从 Cassandra 导出包含数百万行的表时,使用 COPY 将非常具有挑战性,所以我所做的是创建简单的工具来从 cassandra 表中逐块获取数据(分页)并将其导出到 CSV 。

查看我使用 datastax 中的 java 库的示例解决方案。