如何使用Cassandra COPY命令设置TTL

时间:2015-05-22 22:48:10

标签: cassandra copy cql ttl

我可以使用Cassandra命令将一大块数据导入COPY表,如:

COPY my_table (name, address) FROM my_file.csv WITH option='value' ... ;

但是当我使用TTL命令创建表时,我希望它们具有有限的COPY集(例如,1天或86400秒)。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

目前没有办法做到这一点,但这是一个有用的功能,所以你应该创建一个JIRA。

来自cqlsh工具的来源:

COPY <table_name> [ ( column [, ...] ) ]
             TO ( '<filename>' | STDOUT )
             [ WITH <option>='value' [AND ...] ];

        Available options and defaults:

          DELIMITER=','    - character that appears between records
          QUOTE='"'        - quoting character to be used to quote fields
          ESCAPE='\'       - character to appear before the QUOTE char when quoted
          HEADER=false     - whether to ignore the first line
          NULL=''          - string that represents a null value
          ENCODING='utf8'  - encoding for CSV output (COPY TO only)

bulk-loader允许使用TTL插入,但这会增加必须生成sstables以进行批量加载的开销。

答案 1 :(得分:0)

通过COPY FROM命令的TTL选项可以解决这个问题。 (注意 - 此选项仅适用于Cassandra 3.2及更高版本)

https://www.datastax.com/dev/blog/new-features-in-cqlsh-copy