cassandra触发于[从MAXBATCHSIZE复制]

时间:2018-09-05 08:05:30

标签: cassandra triggers

当我尝试运行以下CQL时,我发现canssandra触发器不是按一条记录而是按一批运行的。

COPY XXX_Table FROM 'xxxx.csv' WITH MAXBATCHSIZE=10

例如,我有20万个recoreds csv文件,运行了上述CQL之后,cassandra中有2000,000条记录,但是触发器仅运行了20万次。 为什么?

1 个答案:

答案 0 :(得分:0)

这是因为CSV文件中的数据具有相同的分区键。

  

导入数据时,父进程从输入文件中读取带有 CHUNKSIZE 行的数据块,并将每个数据块发送到工作进程。然后,每个工作进程都会分析块中具有公共分区键的行。如果找到至少2个具有相同分区键的行,则将它们分批发送并发送到拥有该分区的副本。您可以使用新选项MINBATCHSIZE控制最小行数,但建议将其设置为2。对于不共享任何公共分区键的行,它们将与其他分区键属于同一行的行进行批处理复制品。然后将这些行拆分为大小为MAXBATCHSIZE的批次,当前为20行。这些批处理将发送到分区所在的副本。在这两种情况下,批次的类型均为UNLOGGED。

基于:  link