本文整理汇总了Java中me.prettyprint.hector.api.query.MultigetSliceQuery类的典型用法代码示例。如果您正苦于以下问题:Java MultigetSliceQuery类的具体用法?Java MultigetSliceQuery怎么用?Java MultigetSliceQuery使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MultigetSliceQuery类属于me.prettyprint.hector.api.query包,在下文中一共展示了MultigetSliceQuery类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: fillMultigetSliceQuery
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入依赖的package包/类
public <K, V> void fillMultigetSliceQuery(MultigetSliceQuery<K, N, V> sliceQuery) {
if (type == SliceDataSpecificatorType.COLUMNS) {
if (columnsArray != null) {
sliceQuery.setColumnNames(columnsArray);
} else {
((ThriftMultigetSliceQuery) sliceQuery).setColumnNames(columnsCollection);
}
} else if (type == SliceDataSpecificatorType.RANGE) {
if (orderDesc) { // Cassandra's WTF requirement
sliceQuery.setRange(highEnd, lowEnd, orderDesc, limit);
} else {
sliceQuery.setRange(lowEnd, highEnd, orderDesc, limit);
}
} else {
throw new IllegalStateException("Invalid type: " + type);
}
}
示例2: getMulti
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入依赖的package包/类
/**
* Get multiple values
* @param keys
* @return
*/
public Map<String, String> getMulti(String columnName, String... keys) {
MultigetSliceQuery<String, String,String> q = createMultigetSliceQuery(keyspace, serializer, serializer, serializer);
q.setColumnFamily(columnFamilyName);
q.setKeys(keys);
q.setColumnNames(columnName);
QueryResult<Rows<String,String,String>> r = q.execute();
Rows<String,String,String> rows = r.get();
Map<String, String> ret = new HashMap<String, String>(keys.length);
for (String k: keys) {
HColumn<String, String> c = rows.getByKey(k).getColumnSlice().getColumnByName(columnName);
if (c != null && c.getValue() != null) {
ret.put(k, c.getValue());
}
}
return ret;
}
示例3: batchGetSubList
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入依赖的package包/类
/** Implements a batch get operation for a list of keys. */
private List<byte[]> batchGetSubList(List<byte[]> keys) {
MultigetSliceQuery<byte[], String, byte[]> multigetSliceQuery = HFactory
.createMultigetSliceQuery(keyspace, BytesArraySerializer.get(),
StringSerializer.get(), BytesArraySerializer.get());
multigetSliceQuery
.setColumnFamily(CassandraStorageSystem.COLUMN_FAMILY_NAME);
multigetSliceQuery.setKeys(keys);
multigetSliceQuery.setColumnNames(CassandraStorageSystem.COLUMN_NAME);
Map<ByteArrayWrapper, Integer> keyToIndex = new HashMap<ByteArrayWrapper, Integer>();
int index = 0;
for (byte[] key : keys) {
keyToIndex.put(new ByteArrayWrapper(key), index);
index += 1;
}
List<byte[]> resultList = new ArrayList<byte[]>(
Collections.<byte[]> nCopies(keys.size(), null));
for (Row<byte[], String, byte[]> row : multigetSliceQuery.execute()
.get()) {
List<HColumn<String, byte[]>> columns = row.getColumnSlice()
.getColumns();
if (!columns.isEmpty()) {
int i = keyToIndex.get(new ByteArrayWrapper(row.getKey()));
resultList.set(i, columns.get(0).getValue());
}
}
return resultList;
}
示例4: basicMultiGetAsMap
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入依赖的package包/类
/**
* Helper method to get multiple rows and return result in a Map.
* @param rowKeys The row keys to read.
* @param columnNames if null then get all columns; otherwise, get only specified columns. If empty, then this
* is a key-only query and only the keys are returned.
* @return The column data
*/
private Map<K,Map<N,V>> basicMultiGetAsMap(Iterable <K> rowKeys, @Nullable N[] columnNames) {
Map<K,Map<N,V>> resultMap = new HashMap<K,Map<N,V>>();
MultigetSliceQuery<K,N,V> query = HFactory.createMultigetSliceQuery(getKeyspace(),
getKeySerializer(),
getColumnNameSerializer(),
getValueSerializer());
query.setKeys(rowKeys).
setColumnFamily(getColumnFamily()).
setRange(null, null, false, ALL);
if (columnNames != null) {
query.setColumnNames(columnNames);
}
QueryResult<Rows<K,N,V>> result = query.execute();
for (Row<K,N,V> row : result.get()) {
K key = row.getKey();
ColumnSlice<N,V> slice = row.getColumnSlice();
Map<N,V> columns = new HashMap<N,V>();
for (HColumn<N,V> column : slice.getColumns()) {
V value = column.getValue();
columns.put(column.getName(), value);
}
resultMap.put(key, columns);
}
// we used to translate hector exceptions into spring exceptions here, but spring dependency was removed
if (LOG.isDebugEnabled()) {
LOG.debug("Returning result from multiGetColumnsAsMap: " + resultMap);
}
return resultMap;
}
示例5: basicMultiGet
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入依赖的package包/类
/**
* Helper method to get multiple rows using a row mapper.
* @param rowKeys The row keys to read.
* @param columnNames if null then get all columns; otherwise, get only specified columns. If empty, then this
* is a key-only query and only the keys are returned.
* @return The column data
*/
private <T> List<T> basicMultiGet(Iterable <K> rowKeys,
ColumnFamilyRowMapper<T,K,N,V> rowMapper,
@Nullable N[] columnNames) {
List<T> resultList = new ArrayList<T>();
MultigetSliceQuery<K,N,V> query = HFactory.createMultigetSliceQuery(getKeyspace(),
getKeySerializer(),
getColumnNameSerializer(),
getValueSerializer());
query.setKeys(rowKeys).
setColumnFamily(getColumnFamily()).
setRange(null, null, false, ALL);
if (columnNames != null) {
query.setColumnNames(columnNames);
}
QueryResult<Rows<K,N,V>> result = query.execute();
for (Row<K,N,V> row : result.get()) {
K key = row.getKey();
ColumnSlice<N,V> slice = row.getColumnSlice();
List<HColumn<N,V>> columns = new ArrayList<HColumn<N,V>>();
for (HColumn<N,V> column : slice.getColumns()) {
columns.add(column);
}
resultList.add(rowMapper.mapRow(key, columns));
}
// we used to translate hector exceptions into spring exceptions here, but spring dependency was removed
if (LOG.isDebugEnabled()) {
LOG.debug("Returning result from multiGetColumnsAsMap: " + resultList);
}
return resultList;
}
示例6: getSlice
import me.prettyprint.hector.api.query.MultigetSliceQuery; //导入依赖的package包/类
@Override
public <R, T> HerculesMultiQueryResult<R, T> getSlice(Keyspace keyspace, String columnFamily, DataOperationsProfile dataOperationsProfile, RowSerializer<R, T> rowSerializer,
Iterable<R> rowKeys, SliceDataSpecificator<T> sliceDataSpecificator) {
MultigetSliceQuery<R, T, ByteBuffer> multigetSliceQuery = HFactory.createMultigetSliceQuery(
keyspace,
rowSerializer.getRowKeySerializer(),
rowSerializer.getTopKeySerializer(),
ByteBufferSerializer.get());
multigetSliceQuery.setColumnFamily(columnFamily);
multigetSliceQuery.setKeys(rowKeys);
sliceDataSpecificator.fillMultigetSliceQuery(multigetSliceQuery);
QueryResult<Rows<R, T, ByteBuffer>> result;
StopWatch monitor = monitoring.start(HerculesMonitoringGroup.HERCULES_DD, "Get slice " + columnFamily);
try {
result = multigetSliceQuery.execute();
} finally {
long time = monitor.stop();
if (dataOperationsProfile != null) {
dataOperationsProfile.ms += time;
dataOperationsProfile.dbQueries++;
}
}
return buildQueryResult(dataOperationsProfile, rowSerializer, result.get());
}