I have tried the DataStax Java driver and it seems the fastest way to
insert data is to compose a CQL string with all parameters inline.

This loop takes 2500ms or so on my test cluster:

PreparedStatement ps = session.prepare("INSERT INTO perf_test.wibble
(id, info) VALUES (?, ?)")
for (int i = 0; i < 1000; i++) session.execute(ps.bind("" + i, "aa" + i));

The same loop with the parameters inline is about 1300ms. It gets
worse if there are many parameters. I know I can use batching to
insert all the rows at once but thats not the purpose of this test. I
also tried using session.execute(cql, params) and it is faster but
still doesn't match inline values.

Composing CQL strings is certainly convenient and simple but is there
a much faster way?

Thanks
David

I have also posted this on Stackoverflow if anyone wants the points:
 
http://stackoverflow.com/questions/20491090/what-is-the-fastest-way-to-get-data-into-cassandra-2-from-a-java-application

Reply via email to