如何从cassandra中非常大的表中读取所有行?

Posted

技术标签:

【中文标题】如何从cassandra中非常大的表中读取所有行?【英文标题】:how to read all row from very huge table in cassandra? 【发布时间】:2016-02-10 09:43:41 【问题描述】:

我有一个 Cassandra 集群,在同一个数据中心有两个节点,replica_factor=2。大约 1.5 亿个表格,并且不断增加,我需要每天一次读取进程并更新 Cassandra 中的相应行。

有没有更好的方法来做到这一点?

有没有办法将所有行划分为并行块并由某个线程处理每个块?

Cassandra 版本:2.2.1

java版本:openjdk 1.7

【问题讨论】:

【参考方案1】:

您应该看看 Spark。使用Spark Cassandra Connector 允许您从多个 Spark 节点读取 Cassandra 数据,这些节点可以额外部署在 Cassandra 节点或单独的集群中。通过运行 Spark 作业并行读取、处理和写回数据,该作业也可以安排为每日执行。

随着您的数据量不断增长,查看Spark Streaming 可能也很有意义,它允许您根据新数据不断处理和更新您的数据。这将防止重新处理相同的数据一遍又一遍,但这当然取决于您的用例是否适合您。

【讨论】:

以上是关于如何从cassandra中非常大的表中读取所有行?的主要内容,如果未能解决你的问题,请参考以下文章

Powershell 中非常大的 XML 文件

JSON中非常大的ID,如何在不丢失精度的情况下获取它

Kivy PyInstaller 在 Linux 中非常大的包大小

C/C++ 中非常大的静态数组的算术运算

R中非常大的稀疏矩阵的列重新缩放

R程序中非常大的矩阵的svd