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;
}
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("+-------------------------------------------------");
}
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;
}
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;
}
Aggregations