/** Load the messages into an array list */ protected List<Message> loadMessages( Collection<UUID> messageIds, boolean reversed ) { Rows<UUID, String, ByteBuffer> messageResults = createMultigetSliceQuery( ko, ue, se, be ).setColumnFamily( MESSAGE_PROPERTIES.getColumnFamily() ) .setKeys( messageIds ) .setRange( null, null, false, ALL_COUNT ).execute().get(); List<Message> messages = new ArrayList<Message>( messageIds.size() ); for ( Row<UUID, String, ByteBuffer> row : messageResults ) { Message message = deserializeMessage( row.getColumnSlice().getColumns() ); if ( message != null ) { messages.add( message ); } } Collections.sort( messages, new RequestedOrderComparator( messageIds ) ); return messages; }
/** * Execute MultigetSliceQuery with the set of (maxRowCountPerQuery) keys * provided and keep the result in global variable queryResult (List<Rows<K, * N, V>>) * * @param param */ private void runMultigetSliceQuery(final List<K> param) { MultigetSliceQuery<K, N, V> multigetSliceQuery = HFactory .createMultigetSliceQuery(keyspace, keySerializer, nameSerializer, valueSerializer); multigetSliceQuery.setColumnFamily(columnFamily); multigetSliceQuery.setKeys(param); multigetSliceQuery.setRange(start, finish, reversed, maxColumnCount); QueryResult<Rows<K, N, V>> result = multigetSliceQuery.execute(); queryResult.add(result.get()); // Add current query execution time to internal variable // totalExecutionTimeMicro. When parallelism is enabled, this value might not be correct // always due to available system resources and thread implementation totalExecutionTimeMicro.addAndGet(result.getExecutionTimeMicro()); // Add current query execution time to internal variable // totalExecutionTimeNano. When parallelism is enabled, this value might not be correct // always due to available system resources and thread implementation totalExecutionTimeNano.addAndGet(result.getExecutionTimeNano()); //Add host used to the list m_hostsUsed.put(result.getHostUsed().getIp(), result.getHostUsed()); }
/** * 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; }
/** * Get multiple values * @param keys * @return */ public <K> Map<K, String> getMulti(Serializer<K> keySerializer, K... keys) { MultigetSliceQuery<K, String,String> q = createMultigetSliceQuery(keyspace, keySerializer, serializer, serializer); q.setColumnFamily(CF_NAME); q.setKeys(keys); q.setColumnNames(COLUMN_NAME); QueryResult<Rows<K, String,String>> r = q.execute(); Rows<K, String,String> rows = r.get(); Map<K, String> ret = new HashMap<K, String>(keys.length); for (K k: keys) { HColumn<String,String> c = rows.getByKey(k).getColumnSlice().getColumnByName(COLUMN_NAME); if (c != null && c.getValue() != null) { ret.put(k, c.getValue()); } } return ret; }
@Test public void testNullKeyInList() { MultigetSliceQuery<String, String, Long> msq = HFactory.createMultigetSliceQuery(keyspace, se, se, le); msq.setColumnFamily(cf); msq.setKeys("multigetSliceTest_key1",null); msq.setColumnNames("birthyear"); QueryResult<Rows<String, String, Long>> result = msq.execute(); assertEquals(1,result.get().getCount()); } }
q.setColumnFamily(cf); q.setKeys("testMultigetSliceQuery1", "testMultigetSliceQuery2"); q.setColumnFamily(cf); q.setKeys("testMultigetSliceQuery3"); q.setRange("testMultigetSliceQueryColumn1",
@Override public Void call() throws Exception { int rows = 0; multigetSliceQuery.setColumnFamily(commandArgs.workingColumnFamily); log.debug("Starting MultigetSliceCommand"); String[] keys = new String[commandArgs.batchSize]; try { while (rows < commandArgs.getKeysPerThread()) { multigetSliceQuery.setRange(null, null, false, commandArgs.columnCount); for (int i = 0; i < commandArgs.batchSize; i++) { keys[i] = String.format("%010d", startKey + rows); rows++; } multigetSliceQuery.setKeys(keys); QueryResult<Rows<String,String,String>> result = multigetSliceQuery.execute(); LatencyTracker readCount = commandRunner.latencies.get(result.getHostUsed()); readCount.addMicro(result.getExecutionTimeMicro()); log.info("executed multiget batch of {}. {} of {} complete", new Object[]{commandArgs.batchSize, rows, commandArgs.getKeysPerThread()}); } } catch (Exception e) { log.error("Problem: ", e); } commandRunner.doneSignal.countDown(); log.debug("MultigetSliceCommand complete"); return null; }
@Override public QueryResult<Rows<String,String,String>> execute() { MultigetSliceQuery<String, String, String> multigetSlicesQuery = HFactory.createMultigetSliceQuery(keyspace, stringSerializer, stringSerializer, stringSerializer); multigetSlicesQuery.setColumnFamily("Npanxx"); multigetSlicesQuery.setColumnNames("city","state","lat","lng"); multigetSlicesQuery.setKeys("512202","512203","512205","512206"); QueryResult<Rows<String, String, String>> results = multigetSlicesQuery.execute(); return results; }
/** * Execute MultigetSliceQuery with the set of (maxRowCountPerQuery) keys * provided and keep the result in global variable queryResult (List<Rows<K, * N, V>>) * * @param param */ private void runMultigetSliceQuery(final List<K> param) { MultigetSliceQuery<K, N, V> multigetSliceQuery = HFactory .createMultigetSliceQuery(keyspace, keySerializer, nameSerializer, valueSerializer); multigetSliceQuery.setColumnFamily(columnFamily); multigetSliceQuery.setKeys(param); multigetSliceQuery.setRange(start, finish, reversed, maxColumnCount); QueryResult<Rows<K, N, V>> result = multigetSliceQuery.execute(); queryResult.add(result.get()); // Add current query execution time to internal variable // totalExecutionTimeMicro. When parallelism is enabled, this value might not be correct // always due to available system resources and thread implementation totalExecutionTimeMicro.addAndGet(result.getExecutionTimeMicro()); // Add current query execution time to internal variable // totalExecutionTimeNano. When parallelism is enabled, this value might not be correct // always due to available system resources and thread implementation totalExecutionTimeNano.addAndGet(result.getExecutionTimeNano()); //Add host used to the list m_hostsUsed.put(result.getHostUsed().getIp(), result.getHostUsed()); }
private boolean isCfExists(String table) { /* KeyspaceDefinition keyspaceDefinition = cluster.describeKeyspace(PersistencyConstants.BAM_KEY_SPACE); if (keyspaceDefinition != null) { for (ColumnFamilyDefinition cf : keyspaceDefinition.getCfDefs()) { if (cf.getName().equals(table)) { return true; } } return false; }else{ return false; }*/ MultigetSliceQuery<String, String, String> multigetSliceQuery = HFactory.createMultigetSliceQuery(keySpace, stringSerializer, stringSerializer, stringSerializer); multigetSliceQuery.setColumnFamily(table); multigetSliceQuery.setKeys("test"); multigetSliceQuery.setRange("", "", false, 1); try { multigetSliceQuery.execute(); } catch (Exception e) { return false; } return true; }
/** * Get multiple values * @param keys * @return */ public <K> Map<K, String> getMulti(Serializer<K> keySerializer, K... keys) { MultigetSliceQuery<K, String,String> q = createMultigetSliceQuery(keyspace, keySerializer, serializer, serializer); q.setColumnFamily(CF_NAME); q.setKeys(keys); q.setColumnNames(COLUMN_NAME); QueryResult<Rows<K, String,String>> r = q.execute(); Rows<K, String,String> rows = r.get(); Map<K, String> ret = new HashMap<K, String>(keys.length); for (K k: keys) { HColumn<String,String> c = rows.getByKey(k).getColumnSlice().getColumnByName(COLUMN_NAME); if (c != null && c.getValue() != null) { ret.put(k, c.getValue()); } } return ret; }
/** * 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; }
/** * 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; }
/** * Get multiple values * @param keys * @return */ public <K> Map<K, String> getMulti(Serializer<K> keySerializer, K... keys) { MultigetSliceQuery<K, String,String> q = createMultigetSliceQuery(keyspace, keySerializer, serializer, serializer); q.setColumnFamily(CF_NAME); q.setKeys(keys); q.setColumnNames(COLUMN_NAME); QueryResult<Rows<K, String,String>> r = q.execute(); Rows<K, String,String> rows = r.get(); Map<K, String> ret = new HashMap<K, String>(keys.length); for (K k: keys) { HColumn<String,String> c = rows.getByKey(k).getColumnSlice().getColumnByName(COLUMN_NAME); if (c != null && c.getValue() != null) { ret.put(k, c.getValue()); } } return ret; }
private List<HColumn<String, String>> getColumnsOfRow(String cfName, String rowKey, String rangeFirst, String rangeLast, int batchSize) { MultigetSliceQuery<String, String, String> multigetSliceQuery = HFactory.createMultigetSliceQuery(keySpace, stringSerializer, stringSerializer, stringSerializer); multigetSliceQuery.setColumnFamily(cfName); multigetSliceQuery.setKeys(rowKey); multigetSliceQuery.setRange(rangeFirst, rangeLast, false, batchSize); QueryResult<Rows<String, String, String>> result = multigetSliceQuery.execute(); Row<String, String, String> indexRow = result.get().getByKey(rowKey); List<HColumn<String, String>> list = indexRow.getColumnSlice().getColumns(); return list; }
multigetSliceQuery.setColumnFamily("Standard1"); multigetSliceQuery.setKeys("fake_key_0", "fake_key_1","fake_key_2", "fake_key_3", "fake_key_4");
private List<HColumn<String, String>> getColumnsOfRow(String cfName, String rowKey, String rangeFirst, String rangeLast, int batchSize) { if (store.isTableExists(cfName)) { MultigetSliceQuery<String, String, String> multigetSliceQuery = HFactory.createMultigetSliceQuery(keyspace, stringSerializer, stringSerializer, stringSerializer); multigetSliceQuery.setColumnFamily(cfName); multigetSliceQuery.setKeys(rowKey); multigetSliceQuery.setRange(rangeFirst, rangeLast, false, batchSize); QueryResult<Rows<String, String, String>> result = multigetSliceQuery.execute(); Row<String, String, String> indexRow = result.get().getByKey(rowKey); List<HColumn<String, String>> list = indexRow.getColumnSlice().getColumns(); return list; } return null; }