特定行上的 Cassandra CSV

Cassandra CSV on specific row

我需要在cassandra中创建一个csv文件,它只会给出特定行和特定列的csv文件。

CREATE TABLE abcd (
    a bigint,
    b bigint,
    c bigint,
    d int,
    e int,
    PRIMARY KEY (a)
);

Select a,c,e from abcd where a in (1,4,5,6,7,8,9,.....);

如果我使用 COPY 命令,我可以 select 列,但我不能 select 行。如何在 cassandra 中获取 csv 文件,我可以从行和列中 select。是否可以得到这样的csv文件?

COPY 命令只是将完整的 table 复制到您需要的 .csv. 格式文件中。此处的文档涵盖了 COPY 命令的完整概要。 (假设您使用的是 Cassandra 2.0 或 2.1)

http://docs.datastax.com/en/cql/3.1/cql/cql_reference/copy_r.html

我会说你最好在这里使用一种开源驱动程序,如 Datastax python 驱动程序,这样你就可以更好地控制你的 select 语句,并且只提取您需要的行数。

https://datastax.github.io/python-driver/getting_started.html

这里还有一个你可能会觉得有用的工具,我见过很多人使用它来满足他们的需要:

https://github.com/brianmhess/cassandra-loader

希望对您有所帮助。

您可以使用 cqlsh capture 功能将结果输出到文件中。 然后通过 sed 传递结果:sed -i -e 's/|/,/g' /tmp/test.csv (或您可以想出的任何其他包装器 :))