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


Java MultigetSliceQuery类代码示例

本文整理汇总了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);
    }
}
 
开发者ID:appmetr,项目名称:hercules,代码行数:19,代码来源:SliceDataSpecificator.java

示例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;
}
 
开发者ID:xuzhikethinker,项目名称:t4f-data,代码行数:23,代码来源:HectorCassandraDao.java

示例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;
}
 
开发者ID:vimaier,项目名称:conqat,代码行数:31,代码来源:CassandraStore.java

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

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

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


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