【问题标题】:Migrating selected rows between Cassandra databases在 Cassandra 数据库之间迁移选定的行
【发布时间】:2018-04-08 12:36:27
【问题描述】:

我有 2 个 Cassandra 数据库,每个数据库上都有一个具有相同架构(t1 和 t2)的表。 我需要将一些行从一个表复制到另一个。使用 Java 驱动程序的最佳方法是什么?

                    Select select = QueryBuilder.select().all().from(keyspace, table);
                    select.where(clause);
                    for (Row row : results) {
                            Insert insert = QueryBuilder.insertInto(keyspace, table);
                            for(Column c: columns)
                            {
                                insert.value(c.column_name, row.getObject(c.column_name));
                            }
                            dstSession.execute(insert);
                        }

我应该只进行一次选择,然后获取每一行的所有值,然后进行插入,还是有更有效的方法?

【问题讨论】:

  • 您也可以使用here提供的解决方案,
  • 为什么不用cqlsh copy命令来做呢?
  • 据我了解,Hossein 不想要表中的所有数据,而是希望 where 子句中的选定行。我相信仅使用 COPY 命令是不可能的。但是,您可以使用 COPY,然后使用 sed 或 awk 自己过滤数据文件。但是,与您自己的建议相比,我认为这样做没有任何优势。
  • 没错,我不想移动所有数据(这在带宽方面非常昂贵)

标签: cassandra cql cql3 cassandra-3.0


【解决方案1】:

使用 stableloader 将这些记录加载到特定的 sstable 中

【讨论】:

    猜你喜欢
    • 2022-11-04
    • 2020-03-04
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    相关资源
    最近更新 更多