【问题标题】:How to quickly migrate from one table into another one with different table structure in the same/different cassandra?如何在相同/不同的 cassandra 中快速从一张表迁移到具有不同表结构的另一张表?
【发布时间】:2015-09-23 17:27:49
【问题描述】:

我在 Cassandra 中有一个超过 10,000,000 条记录的表,但出于某种原因,我想构建另一个具有相同字段和几个附加字段的 Cassandra 表,并将之前的数据迁移到其中。现在这两个表在同一个 Cassandra 集群中。

我想问一下如何在最短的时间内完成这个任务?

如果我的新表在不同的Cassandra中,该怎么办?

任何建议将不胜感激!

【问题讨论】:

  • 这些附加字段是什么(任何一个主键或集群键)?您将在哪里获得这方面的数据。使用 COPY 命令将数据导出到新文件,添加其他数据,然后 COPY 到新表。
  • 这些附加字段是除了主键或集群键之外的通用字段,数据存储在 Cassandra 中。现在,其他字段为空白

标签: cassandra cassandra-2.0


【解决方案1】:

如果您只需要向表中添加空白字段,那么最好的做法是使用alter table 命令将字段添加到现有表中。然后不需要复制数据,新字段​​将在现有行中显示为null,直到您将它们设置为某个值。

如果您想更改新表中的数据结构,或者将其写入不同的集群,那么您可能需要编写一个应用程序来读取旧表的每一行,并根据需要转换数据,然后将每一行写入新位置。

您也可以通过将数据导出到 csv 文件,编写程序来根据需要重新构建 csv 文件,然后将 csv 文件导入新位置。

另一种可能的方法是使用 Apache Spark。您将现有表读入 RDD,将数据转换并过滤为新 RDD,然后将转换后的 RDD 保存到新表中。这只能在同一个集群中工作,而且设置起来相当复杂。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多