加载模式后,我必须在BATCH中运行以下插入查询1000次。有没有办法在cql文件cassandra中应用循环?
INSERT INTO keyspace.messages (messageid, message) VALUES
(uuid(), 'random');
我目前的实施是一个radom.cql
文件,其中有1000个条目类似下面的脚本。然后使用SOURCE命令在模式上传后应用它们。
BEGIN BATCH
INSERT INTO keyspace.messages (messageid, message) VALUES (uuid(), 'random');
INSERT INTO keyspace.messages (messageid, message) VALUES (uuid(), 'random');
INSERT INTO keyspace.messages (messageid, message) VALUES (uuid(), 'random');
...till 1000 times
APPLY BATCH;
有没有更好的方法来达到同样的效果?
没办法真正做到这一点。但你应该摆脱BEGIN/APPLY BATCH语句。你正在做的是让Cassandra指定一个节点来协调1000个INSERT到剩下的所有节点。如果你不小心,这是杀死节点的好方法。 – Aaron
感谢您的建议亚伦。应用批量多分区数据条目并不好。 – Laxmikant