我在卡桑德拉有一个表,里面几乎有80 million+记录(可能更多)。我已经更新了schama,它在表中添加了一个新列。现在我需要更新列值。我使用cassandra-driver编写了一个迁移脚本来实现这一点。我尝试过batching、token,但数据太庞大了,需要3小时以上的时间才能更新记录(过程在2-3小时后终止)。处理这种类型的迁移的最佳方法是什么?有没有其他方法可以做到这一点?
发布于 2021-04-24 02:02:10
通常,对于这样的事情,使用Spark更容易(尽管我不确定它是否适用于Amazon Keyspace)。正确地做距离扫描是相当困难的-你需要处理边缘情况,等等(我有一个an example for Java driver,它使用与Spark Cassandra Connector和DSBulk相同的算法)。
您可以使用Python with Spark和Cassandra Connector来更新您的数据-更新的复杂性将取决于您的算法。
另一种方法是将逻辑放入您的应用程序中-如果它从Cassandra null接收给定列的值,您可以返回计算值。
https://stackoverflow.com/questions/67164506
复制相似问题