在卡桑德拉表中替换整数



在表中群集键是一个int列,是系统生成的编号-CHRG问题是由于其定义为INT Datatype,它只能存储价值超过200亿美元。

并且由于表的数据很大。在接下来的两个月中,我们将点击最大值,该值可以存储在列中,然后负载将失败。

因此,要求是将列的数据类型更改为影响最小的longint。

如何使用最小的停机时间来实现?

您无法更改主键的类型。

所以我能想到的一种方法是:

  1. 使用修改的数据类型创建一个单独的表。
  2. 修改您的应用程序以将数据写入两个表。
  3. 然后您可以使用Spark&Cassandra从旧表中读取数据并将其写入新表。
  4. 然后在您的应用程序中再次可以停止写入旧表。

使用上述方法,我认为您不会产生重大影响。

最新更新