当前位置: 首页>>代码示例>>Java>>正文


Java MultigetSliceQuery.execute方法代码示例

本文整理汇总了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;
}
 
开发者ID:xuzhikethinker,项目名称:t4f-data,代码行数:23,代码来源:HectorCassandraDao.java

示例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;
}
 
开发者ID:ezoerner,项目名称:c-star-path-j,代码行数:39,代码来源:ColumnFamilyTemplate.java

示例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;
}
 
开发者ID:ezoerner,项目名称:c-star-path-j,代码行数:41,代码来源:ColumnFamilyTemplate.java

示例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());
}
 
开发者ID:appmetr,项目名称:hercules,代码行数:30,代码来源:ThriftDataDriver.java


注:本文中的me.prettyprint.hector.api.query.MultigetSliceQuery.execute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。