Search code examples
cassandracqlenginebatch-query

Insert multiple rows in cqlengine


I am stucking on insert/update multiple rows /approximately 800 rows/ to cassandra table by cqlengine. I do not want to use loop in python. I searched and find batch query. But can not use it.

Please help me making batch query or give other efficient way to insert multiple rows in cassandra.

Thank you.

https://cqlengine.readthedocs.io/en/latest/topics/queryset.html#batch-queries


Solution

  • CQL batches are not an optimisation -- they do not make your queries run faster. In fact, they do the opposite if you have large batches because they can overload the coordinator of the request and queries end up running slower.

    CQL batches are designed to achieve atomicity so either (a) all the statements in the batch are executed successfully, or (b) none at all.

    In Cassandra, you can achieve a higher throughput if you issue multiple asynchronous writes instead of a single batch. And more app instances (clients) perform better because the traffic can get bottlenecked with a single client app.

    If your goal is bulk load data, I recommend you instead use a tool like DataStax Bulk Loader (DSBulk). DSBulk is a free open-source software that allows you to bulk load data in CSV or JSON format to a Cassandra cluster.

    Here are some resources to help you get started: