Cassandra将价值从文本迁移到文本列表

时间:2018-07-25 18:52:06

标签: list text cassandra

我尝试更新Cassandra数据库中的表。现在我有一个看起来像

的表
foo(id, email) - email text type

我想将表更新为

foo(id, emails) - emails list of text type

我添加了新列

ALTER TABLE foo ADD emails set <text>;

但是我不知道如何将价值从电子邮件列迁移到电子邮件。

2 个答案:

答案 0 :(得分:0)

我对您的域不是很熟悉,但是您必须告诉Cassandra如何创建新的电子邮件列表。如果您没有太多记录,请查看COPY。您可以

  1. 添加新列
  2. 使用副本使用COPY TO
  3. 导出现有数据
  4. 将转换应用于导出的数据
  5. 使用COPY FROM上传新数据。

如果您必须在表增长时实时进行此更新,则此解决方案将不起作用。

答案 1 :(得分:0)

Cassandra没有执行此操作的本机解决方案。

也许您可以使用自己喜欢的编程语言创建一个简单的迁移程序,然后执行以下步骤:

  • 使用ALTER命令在cassandra中创建新列。
  • 执行迁移程序。
  • 删除cassandra中的旧列。

它自己的程序将逐一记录卡桑德拉的所有记录并进行转换。