【问题标题】:The fastest way to fill test data to cassandra unit?将测试数据填充到 cassandra 单元的最快方法是什么?
【发布时间】:2016-07-13 09:16:27
【问题描述】:

我在我的项目 (Java) 中使用 cassandra 单元进行测试,这很好,但问题是:加载测试数据需要很长时间(大约 25 000 次普通插入需要 100 秒)。

我有一些想法,但它们似乎不适用于 cassandra 单元:

  • 使用类似 cqlsh 命令 COPY FROM 从 csv 复制数据
  • 备份准备好的数据文件夹,初始化时交给CU。

您还有其他想法吗? 谢谢。

【问题讨论】:

  • 是否修改了提到的数据,但例如您可以拥有一个包含这些数据的独立实例以供这些测试读取。您还可以检查批处理如何与 cassandra 单元一起使用,请记住集群环境中的批处理不适合多分区插入。

标签: unit-testing testing cassandra bulk-load bigdata


【解决方案1】:

一次加载大量数据的方法是使用unlogged batch mechanism

BEGIN UNLOGGED BATCH
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
...
APPLY BATCH;

它可能不是很快,但出于测试目的,它应该不是问题,您应该避免直接插入一组可能会产生的超时(因为您填写了日志文件并且 Cassandra 在一段时间后停止接受数据那个。)

【讨论】:

  • 这种方法给我一个错误:不匹配的输入';'期待 K_APPLY 删除 ';'在'UNLOGGED BATCH'之后,错误是:不匹配的输入''期望K_APPLY
  • 抱歉,我不应该将; 放在BATCH 关键字之后。此外,... 只是意味着根据需要添加其他INSERT,所以我想你没有把它放在你的指令列表中。该链接为您提供了其他文档(BATCH 提供了更多功能。这也适用于 Cassandra 2.0 及更高版本。
猜你喜欢
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
相关资源
最近更新 更多