The object-mapping API is very interesting, I’ll check that out, thanks. I
believe I have found what I was looking for in terms of programmatically
inserting data using the following syntax:
* Insert builder = QueryBuilder.insertInto(**"simplex"**, *
*"mytable1"**);*
* builder = builder.value(**"id"**, **"myid2"**);*
* builder = builder.value(**"title"**, **"mytitle2"**);*
*session**.execute(builder);*
Many thanks for all the valuable help so far!
Cheers,
Matt
*From:* Jonathan Haddad [mailto:[email protected]]
*Sent:* 24 April 2015 14:15
*To:* [email protected]
*Subject:* Re: Creating 'Put' requests
To add to Phil's point, there's no circumstance in which I would use an
unlogged batch, under load I have yet to hear it do anything other than
increase GC pauses.
On Fri, Apr 24, 2015 at 11:50 AM Phil Yang <[email protected]> wrote:
2015-04-23 22:16 GMT+08:00 Matthew Johnson <[email protected]>:
In HBase, we do something like:
Put put = new Put(id);
put.add(myPojo.getTimestamp(), myPojo.getValue());
put.add(myPojo.getMySecondTimestamp(), myPojo.getSecondValue());
server.put(put);
Is there any similar mechanism in Cassandra Java driver for creating these
inserts programmatically? Or, can the 'session.execute' take a list of
commands so that each column can be inserted as its own insert statement but
without the overhead of multiple calls to the server?
For your first question, do you mean object-mapping API?
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
For the second question, C* can execute several commands by unlogged batch,
however, because of the distributed nature of Cassandra, there is a better
solution, see
https://medium.com/@foundev/cassandra-batch-loading-without-the-batch-keyword-40f00e35e23e
Thanks!
Matt
-----Original Message-----
From: Jim Witschey [mailto:[email protected]]
Sent: 23 April 2015 14:46
To: [email protected]
Subject: Re: Creating 'Put' requests
Are prepared statements what you're looking for?
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/quick_start/qsSimpleClientBoundStatements_t.html
Jim Witschey
Software Engineer in Test | [email protected]
On Thu, Apr 23, 2015 at 9:28 AM, Matthew Johnson <[email protected]>
wrote:
> Hi all,
>
>
>
> Currently looking at switching from HBase to Cassandra, and one big
> difference so far is that in HBase, we create a ‘Put’ object, add to
> it a set of column/value pairs, and send the Put to the server. So far
> in Cassandra 2.1.4 the tutorials seem to suggest using CQL3, which I
> really like for prototyping eg:
>
>
>
> session.execute("INSERT INTO simplex.playlists (id, song_id, title,
> album,
> artist) VALUES (1,1,'La Petite Tonkinoise','Bye Bye
> Blackbird','Joséphine Baker');");
>
>
>
> But for more complicated code this will quickly become unmanageable,
> and doesn’t lend itself well to dynamically creating row data based on
> various conditions. Is there a way to send a Java object, populated
> with the desired column/value pairs, to the server instead of executing an
> insert statement?
> Would this require some other library, or does the DataStax Java
> driver support this already?
>
>
>
> Thanks in advance,
>
> Matt
>
>
--
Thanks,
Phil Yang