本文整理汇总了Java中me.prettyprint.hector.api.query.MultigetSliceQuery.execute方法的典型用法代码示例。如果您正苦于以下问题:Java MultigetSliceQuery.execute方法的具体用法?Java MultigetSliceQuery.execute怎么用?Java MultigetSliceQuery.execute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类me.prettyprint.hector.api.query.MultigetSliceQuery
的用法示例。
在下文中一共展示了MultigetSliceQuery.execute方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: 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;
}
示例2: 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;
}
示例3: 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;
}
示例4: 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());
}