cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Check Peck <comptechge...@gmail.com>
Subject Re: How to extract all the user id from a single table in Cassandra?
Date Sun, 01 Mar 2015 17:38:48 GMT
Sending again as I didn't got any response on this.

Any thoughts?

On Fri, Feb 27, 2015 at 8:24 PM, Check Peck <comptechgeeky@gmail.com> wrote:

> I have a Cassandra table like this -
>
>     create table user_record (user_id text, record_name text, record_value
> blob, primary key (user_id, record_name));
>
> What is the best way to extract all the user_id from this table? As of
> now, I cannot change my data model to do this exercise so I need to find a
> way by which I can extract all the user_id from the above table.
>
> I am using Datastax Java driver in my project. Is there any other easy way
> apart from code to extract all the user_id from the above table through
> come cqlsh utility and dump it into some file?
>
> I am thinking below code might timed out after some time -
>
>     public class TestCassandra {
>
>             private Session session = null;
>             private Cluster cluster = null;
>
>             private static class ConnectionHolder {
>                 static final TestCassandra connection = new
> TestCassandra();
>             }
>
>             public static TestCassandra getInstance() {
>                 return ConnectionHolder.connection;
>             }
>
>             private TestCassandra() {
>                 Builder builder = Cluster.builder();
>                 builder.addContactPoints("127.0.0.1");
>
>                 PoolingOptions opts = new PoolingOptions();
>                 opts.setCoreConnectionsPerHost(HostDistance.LOCAL,
> opts.getCoreConnectionsPerHost(HostDistance.LOCAL));
>
>                 cluster =
> builder.withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE).withPoolingOptions(opts)
>                         .withLoadBalancingPolicy(new TokenAwarePolicy(new
> DCAwareRoundRobinPolicy("PI")))
>                         .withReconnectionPolicy(new
> ConstantReconnectionPolicy(100L))
>                         .build();
>                 session = cluster.connect();
>             }
>
>         private Set<String> getRandomUsers() {
>             Set<String> userList = new HashSet<String>();
>
>             String sql = "select user_id from testkeyspace.user_record;";
>
>             try {
>                 SimpleStatement query = new SimpleStatement(sql);
>                 query.setConsistencyLevel(ConsistencyLevel.ONE);
>                 ResultSet res = session.execute(query);
>
>                 Iterator<Row> rows = res.iterator();
>                 while (rows.hasNext()) {
>                     Row r = rows.next();
>
>                     String user_id = r.getString("user_id");
>                     userList.add(user_id);
>                 }
>             } catch (Exception e) {
>                 System.out.println("error= " + e);
>             }
>
>             return userList;
>         }
>     }
>
> Adding java-driver group and Cassandra group as well to see whether there
> is any better way to execute this?
>

Mime
View raw message