如何使用不同的模式将数据从一个 table 复制到另一个 table? (卡桑德拉)

How to copy datas from one table to another table with different Schemas? (Cassandra)

我有一个名为 table1 的 table,其中包括以下内容

    +----------+-------+
    |date      |count  |
    +----------+-------+
    |2022-01-07|2      |
    |2022-01-06|0      |
    |2022-01-05|1      |
    +----------+-------+

现在我需要复制此 table(table1) 并将其粘贴到具有不同架构的新 table(table2) 中。新的 table 应该是这样的

    +----+----------+-------+
    |type|date      |count  |
    +----+----------+-------+
    |Typ1|2022-01-07|2      |
    |Typ1|2022-01-06|0      |
    |Typ1|2022-01-05|1      |
    +----+----------+-------+

现在的问题是:

  1. 我不能使用 cqlsh COPY 命令,因为 tables 的方案不同。
  2. 我无法手动将数据添加到 table2,因为 table1 有 1000 行

table 的架构是:

表 1:

CREATE TABLE table1(
    date date PRIMARY KEY,
    count bigint
);

表 2:

CREATE TABLE table2(
    type text,
    date date ,
    count bigint,
    PRIMARY KEY(type, date)
);

您想将一个 table 的数据填充到另一个 table 中。您可以编写一个实用程序来执行此操作。此实用程序将读取您的第一个 table 并将数据推送到另一个 table。如果你会用spark,那么你可以很快做到。