Search in sources :

Example 1 with ColumnSlice

use of me.prettyprint.hector.api.beans.ColumnSlice in project cassandra-indexing by hmsonline.

the class IndexUtil method fetchRow.

public static Map<String, String> fetchRow(Cluster cluster, String keyspace, String columnFamily, String key, Collection<String> indexColumns) throws Exception {
    Keyspace ks = HFactory.createKeyspace(keyspace, cluster);
    SliceQuery<String, String, String> sliceQuery = HFactory.createSliceQuery(ks, StringSerializer.get(), StringSerializer.get(), StringSerializer.get());
    sliceQuery.setColumnFamily(columnFamily);
    sliceQuery.setKey(key);
    if (!containsMultiValueColumn(indexColumns)) {
        // Fetch specific columns
        List<String> columnNames = new ArrayList<String>();
        for (String indexColumn : indexColumns) {
            columnNames.add(indexColumn);
        }
        String[] varargs = columnNames.toArray(new String[0]);
        sliceQuery.setColumnNames(varargs);
    } else if (indexColumns.size() == 1) {
        // Fetch a slice range
        String columnPrefix = getColumnPrefix(indexColumns.iterator().next());
        sliceQuery.setRange(columnPrefix, columnPrefix + Character.MAX_VALUE, false, 2000);
    } else {
        // MAX_COLUMNS
        sliceQuery.setRange("", "", false, 2000);
    }
    QueryResult<ColumnSlice<String, String>> row = sliceQuery.execute();
    ColumnSlice<String, String> columns = row.get();
    Map<String, String> result = new HashMap<String, String>();
    for (HColumn<String, String> column : columns.getColumns()) {
        result.put(column.getName(), column.getValue());
    }
    return result;
}
Also used : HashMap(java.util.HashMap) Keyspace(me.prettyprint.hector.api.Keyspace) ColumnSlice(me.prettyprint.hector.api.beans.ColumnSlice) ArrayList(java.util.ArrayList)

Example 2 with ColumnSlice

use of me.prettyprint.hector.api.beans.ColumnSlice in project cassandra-tutorial by zznate.

the class TutorialRunner method printResults.

@SuppressWarnings("unchecked")
private static void printResults(ResultStatus result) {
    log.info("+-------------------------------------------------");
    log.info("| Result executed in: {} microseconds against host: {}", result.getExecutionTimeMicro(), result.getHostUsed().getName());
    log.info("+-------------------------------------------------");
    // nicer display of Rows vs. HColumn or ColumnSlice
    if (result instanceof QueryResult) {
        System.out.println(((QueryResult) result).get());
        QueryResult<?> qr = (QueryResult) result;
        if (qr.get() instanceof Rows) {
            Rows<?, ?, ?> rows = (Rows) qr.get();
            for (Row row : rows) {
                log.info("| Row key: {}", row.getKey());
                for (Iterator iter = row.getColumnSlice().getColumns().iterator(); iter.hasNext(); ) {
                    log.info("|   col: {}", iter.next());
                }
            }
        } else if (qr.get() instanceof ColumnSlice) {
            for (Iterator iter = ((ColumnSlice) qr.get()).getColumns().iterator(); iter.hasNext(); ) {
                log.info("|   col: {}", iter.next());
            }
        } else {
            log.info("| Result: {}", qr.get());
        }
    }
    log.info("+-------------------------------------------------");
}
Also used : QueryResult(me.prettyprint.hector.api.query.QueryResult) ColumnSlice(me.prettyprint.hector.api.beans.ColumnSlice) Iterator(java.util.Iterator) Row(me.prettyprint.hector.api.beans.Row) Rows(me.prettyprint.hector.api.beans.Rows)

Example 3 with ColumnSlice

use of me.prettyprint.hector.api.beans.ColumnSlice in project cassandra-tutorial by zznate.

the class DynamicCompositeIndex method execute.

@Override
public ResultStatus execute() {
    Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer);
    HColumnImpl<DynamicComposite, String> column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    DynamicComposite dc = new DynamicComposite();
    dc.add(0, "Austin");
    dc.add(1, 7516L);
    dc.add(2, 225L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new DynamicComposite();
    dc.add(0, "225");
    //dc.add(1, 7516L);    
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new DynamicComposite();
    dc.add(0, "Austin");
    dc.add(1, 7516L);
    dc.add(2, 334L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new DynamicComposite();
    dc.add(0, "334");
    dc.add(1, 7516L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new DynamicComposite();
    dc.add(0, "Austin");
    dc.add(1, 7516L);
    dc.add(2, 439L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new DynamicComposite();
    dc.add(0, "Austin");
    dc.add(1, 5830L);
    dc.add(2, 215L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    column = new HColumnImpl<DynamicComposite, String>(dcs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new DynamicComposite();
    dc.add(0, "Lockhart");
    dc.add(1, 9533L);
    dc.add(2, 227L);
    column.setName(dc);
    column.setValue("SOUTHWESTERN BELL");
    mutator.addInsertion("TX:512", "StateNpaIndexDynamic", column);
    mutator.execute();
    SliceQuery<String, DynamicComposite, String> sliceQuery = HFactory.createSliceQuery(keyspace, stringSerializer, dcs, stringSerializer);
    sliceQuery.setColumnFamily("StateNpaIndexDynamic");
    sliceQuery.setKey("TX:512");
    DynamicComposite startRange = new DynamicComposite();
    //startRange.add(0, "225");
    startRange.add(0, "Austin");
    //startRange.addComponent(new Long(5830), LongSerializer.get(), "LongType", AbstractComposite.ComponentEquality.LESS_THAN_EQUAL);
    //startRange.add(1, 5830L);
    DynamicComposite endRange = new DynamicComposite();
    //endRange.add(0, "225" + Character.MAX_VALUE);
    endRange.add(0, "Austin");
    endRange.addComponent(new Long(5830), LongSerializer.get(), "LongType", AbstractComposite.ComponentEquality.GREATER_THAN_EQUAL);
    sliceQuery.setRange(startRange, endRange, false, 10);
    QueryResult<ColumnSlice<DynamicComposite, String>> result = sliceQuery.execute();
    return result;
}
Also used : ColumnSlice(me.prettyprint.hector.api.beans.ColumnSlice) DynamicComposite(me.prettyprint.hector.api.beans.DynamicComposite) HColumnImpl(me.prettyprint.cassandra.model.HColumnImpl)

Example 4 with ColumnSlice

use of me.prettyprint.hector.api.beans.ColumnSlice in project cassandra-tutorial by zznate.

the class StaticCompositeIndex method execute.

@Override
public ResultStatus execute() {
    Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer);
    HColumnImpl<Composite, String> column = new HColumnImpl<Composite, String>(cs, stringSerializer);
    column.setClock(keyspace.createClock());
    Composite dc = new Composite();
    dc.add(0, "Austin");
    dc.add(1, 7516L);
    dc.add(2, 225L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexStatic", column);
    column = new HColumnImpl<Composite, String>(cs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new Composite();
    dc.add(0, "Austin");
    dc.add(1, 7516L);
    dc.add(2, 334L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexStatic", column);
    column = new HColumnImpl<Composite, String>(cs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new Composite();
    dc.add(0, "Austin");
    dc.add(1, 7516L);
    dc.add(2, 439L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexStatic", column);
    column = new HColumnImpl<Composite, String>(cs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new Composite();
    dc.add(0, "Austin");
    dc.add(1, 5830L);
    dc.add(2, 215L);
    column.setName(dc);
    column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX");
    mutator.addInsertion("TX:512", "StateNpaIndexStatic", column);
    column = new HColumnImpl<Composite, String>(cs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new Composite();
    dc.add(0, "Aardvark");
    dc.add(1, 5830L);
    dc.add(2, 215L);
    column.setName(dc);
    column.setValue("Aardvark telco");
    mutator.addInsertion("TX:512", "StateNpaIndexStatic", column);
    column = new HColumnImpl<Composite, String>(cs, stringSerializer);
    column.setClock(keyspace.createClock());
    dc = new Composite();
    dc.add(0, "Lockhart");
    dc.add(1, 9533L);
    dc.add(2, 227L);
    column.setName(dc);
    column.setValue("SOUTHWESTERN BELL");
    mutator.addInsertion("TX:512", "StateNpaIndexStatic", column);
    mutator.execute();
    SliceQuery<String, Composite, String> sliceQuery = HFactory.createSliceQuery(keyspace, stringSerializer, cs, stringSerializer);
    sliceQuery.setColumnFamily("StateNpaIndexStatic");
    sliceQuery.setKey("TX:512");
    Composite startRange = new Composite();
    startRange.add(0, "A");
    //startRange.add(1, 7516L);
    //startRange.addComponent(new Long(0), LongSerializer.get(), "LongType", AbstractComposite.ComponentEquality.GREATER_THAN_EQUAL);
    //startRange.addComponent(439L, LongSerializer.get(), "LongType", AbstractComposite.ComponentEquality.EQUAL);
    //startRange.add(1, Long.MIN_VALUE);
    //startRange.add(2, 439L);
    Composite endRange = new Composite();
    //endRange.add(0, "Austin" + Character.MAX_VALUE);
    endRange.add(0, "B");
    // the following statement is effectively identical for the purposes of restricting to 'Austin'
    //endRange.addComponent("Austin", StringSerializer.get(), "UTF8Type", AbstractComposite.ComponentEquality.GREATER_THAN_EQUAL);
    sliceQuery.setRange(startRange, endRange, false, 10);
    QueryResult<ColumnSlice<Composite, String>> result = sliceQuery.execute();
    ColumnSlice<Composite, String> cs = result.get();
    for (HColumn<Composite, String> col : cs.getColumns()) {
        System.out.println(col.getName().getComponents());
        System.out.println(col.getName().get(0, StringSerializer.get()));
    }
    return result;
}
Also used : Composite(me.prettyprint.hector.api.beans.Composite) ColumnSlice(me.prettyprint.hector.api.beans.ColumnSlice) HColumnImpl(me.prettyprint.cassandra.model.HColumnImpl)

Aggregations

ColumnSlice (me.prettyprint.hector.api.beans.ColumnSlice)4 HColumnImpl (me.prettyprint.cassandra.model.HColumnImpl)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 Keyspace (me.prettyprint.hector.api.Keyspace)1 Composite (me.prettyprint.hector.api.beans.Composite)1 DynamicComposite (me.prettyprint.hector.api.beans.DynamicComposite)1 Row (me.prettyprint.hector.api.beans.Row)1 Rows (me.prettyprint.hector.api.beans.Rows)1 QueryResult (me.prettyprint.hector.api.query.QueryResult)1