cassandra批处理

mwg9r5ms  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(451)

我刚开始接触cassandra,我有一个常见的问题,“假设我需要插入大约2000多条记录,大多数人都说这里不使用批处理,但另一方面也听说“与存储过程最接近的特性将是批处理,因为它允许您“捆绑”与insert、update或delete关联的不同dml语句。”
那么,有没有人能告诉我什么是最好的方法,我可以在需要时创建一次、存储和调用几次,这样就可以像sql中的sp那样支持更快的执行

xdnvmnnf

xdnvmnnf1#

Cassandra的批次有非常具体的用途:
一次应用多个更改(通常是应用于多个表),以提供数据更新的一致性,保证所有更改都将应用,否则所有更改都将失败。这通常称为“记录的批处理”——在本例中,cassandra在应用更改之前在多个服务器上复制批处理,并在成功应用批处理操作之后删除。因此,这样的批处理比通常的操作慢得多。
要在单个分区内应用多个操作(通常称为“unlogged batch”),在这种情况下,所有操作都被视为一个变异,因此与多个单独操作相比,这是非常快的。
因此,批处理只能用于单个分区内的多个插入/更新/删除(否则,与单个语句相比,性能会更差),或者需要多个表之间数据的一致性时。插入大量数据的最快方法是发出多个异步操作。另外,如果您想从文件加载数据,那么最好使用dsbulk之类的工具,这些工具针对数据的高性能加载和卸载进行了大量优化。
有关批处理的好的和坏的使用的更多细节,您可以阅读文档和dse架构指南。
p、 从技术上讲,cassandra确实将批划分为多分区(在本例中,它们总是被记录)或单个分区(它们不被记录)。

相关问题