0

我们的用例是将批量数据加载到我们的实时生产 Cassandra 集群中。我们必须每天在 Cassandra 中加载批量数据。我们遇到了 sstableloader。我们几乎没有相同的疑问:

1:当我们使用 sstableloader 将批量数据加载到我们的实时生产集群中时,我们是否有可能发生脏读?(基本上 sstableloader 是一次加载所有数据还是在获取数据时继续更新?)脏读在我们的生产环境中是不可接受的。

2:当我们将批量数据加载到我们的直播生产集群时,是否会影响集群可用性?(基本上我们正在将大量数据加载到直播生产集群中,是否会影响其性能?我们需要增加集群节点吗?在批量加载期间使其高度可用?)

3:如果使用 sstableloader 在实时生产集群中存在脏读的可能性,请建议可以避免此问题的替代工具。我们希望所有批量数据立即出现,而不是增量数据。

谢谢!

4

1 回答 1

0
  1. SStableloader 以增量方式加载数据。它不会一次加载所有内容。

  2. 它肯定会产生影响。这种影响的严重程度取决于流入的数据大小以及许多其他因素。您可以使用 sstableloader 中的选项来限制吞吐量,这可能在这方面有所帮助。在测试集群上运行这个用例,看看 sstableloader 对你的数据集的影响。

  3. 除非您愿意停机,否则如果不给出数据“脏”的至少一个小时间范围,就没有真正的方法来完成这项工作。

例如,对于更冒险的人,您可能会将 SSTables 直接添加到所有节点的数据文件夹中并运行nodetool refresh。但是,这不会完全同时发生,因此很容易在短时间内出现脏读或读取失败。

于 2018-08-21T06:03:34.540 回答