@Override public void deserialize(Entry<Key, Value> entry) { if (!columnValues.containsKey(rowIdName)) { entry.getKey().getRow(rowId); columnValues.put(rowIdName, rowId.toString()); } if (rowOnly) { return; } entry.getKey().getColumnFamily(family); entry.getKey().getColumnQualifier(qualifier); if (family.equals(ROW_ID_COLUMN) && qualifier.equals(ROW_ID_COLUMN)) { return; } value.set(entry.getValue().get()); columnValues.put(familyQualifierColumnMap.get(family.toString()).get(qualifier.toString()), value.toString()); }
scan.setRanges(constraintEntry.getValue()); scan.fetchColumnFamily(new Text(Indexer.getIndexColumnFamily(constraintEntry.getKey().getFamily().getBytes(), constraintEntry.getKey().getQualifier().getBytes()).array())); Set<Range> columnRanges = new HashSet<>(); for (Entry<Key, Value> entry : scan) { entry.getKey().getColumnQualifier(tmpQualifier);
public ColumnFQ(Key k) { this(k.getColumnFamily(), k.getColumnQualifier()); }
SortedMap<Key,Value> wholeRow; try { wholeRow = WholeRowIterator.decodeRow(serializedRow.getKey(), serializedRow.getValue()); } catch (IOException e) { log.warn("Could not deserialize whole row with key {}", serializedRow.getKey().toStringNoTruncate(), e); continue; serializedRow.getKey().getRow(), wholeRow.size()); Status status; try { status = Status.parseFrom(entry.getValue().get()); } catch (InvalidProtocolBufferException e) { log.warn("Could not deserialize protobuf for {}", entry.getKey(), e); entry.getKey().getColumnQualifier(buffer); ReplicationTarget target = ReplicationTarget.from(buffer); if (entry.getValue() == 0) { continue; serializedRow.getKey().getRow(buffer); serializedRow.getKey().getRow(), entry.getKey(), entry.getValue());
@Override public void deserialize(Entry<Key, Value> entry) { if (!columnValues.containsKey(rowIdName)) { entry.getKey().getRow(rowId); columnValues.put(rowIdName, rowId.copyBytes()); } if (rowOnly) { return; } entry.getKey().getColumnFamily(family); entry.getKey().getColumnQualifier(qualifier); if (family.equals(ROW_ID_COLUMN) && qualifier.equals(ROW_ID_COLUMN)) { return; } value.set(entry.getValue().get()); columnValues.put(familyQualifierColumnMap.get(family.toString()).get(qualifier.toString()), value.copyBytes()); }
@Override protected void aggregateStats(Entry<Key,Value> entry) { String key; Long count; key = entry.getKey().getColumnVisibility().toString(); count = classifications.get(key); classifications.put(key, count != null ? count + 1 : 0L); key = entry.getKey().getColumnFamily().toString(); count = columnFamilies.get(key); columnFamilies.put(key, count != null ? count + 1 : 0L); key = entry.getKey().getColumnQualifier().toString(); count = columnQualifiers.get(key); columnQualifiers.put(key, count != null ? count + 1 : 0L); ++total; }
/** * Converts the given {@code Range} into the correct {@code Range} for this TermSource (per this * expected table structure) and then seeks this TermSource's SKVI. */ public void seek(Range originalRange) throws IOException { // the infinite start key is equivalent to a null startKey on the Range. if (!originalRange.isInfiniteStartKey()) { Key originalStartKey = originalRange.getStartKey(); // Pivot the provided range into the range for this term Key newKey = new Key(originalStartKey.getRow(), term, originalStartKey.getColumnQualifier(), originalStartKey.getTimestamp()); // Construct the new range, preserving the other attributes on the provided range. currentRange = new Range(newKey, originalRange.isStartKeyInclusive(), originalRange.getEndKey(), originalRange.isEndKeyInclusive()); } else { currentRange = originalRange; } LOG.trace("Seeking {} to {}", this, currentRange); iter.seek(currentRange, seekColfams, true); }
@Override public Status read(String table, String key, Set<String> fields, Map<String, ByteIterator> result) { Scanner scanner = null; try { scanner = getRow(table, new Text(key), null); // Pick out the results we care about. final Text cq = new Text(); for (Entry<Key, Value> entry : scanner) { entry.getKey().getColumnQualifier(cq); Value v = entry.getValue(); byte[] buf = v.get(); result.put(cq.toString(), new ByteArrayByteIterator(buf)); } } catch (Exception e) { System.err.println("Error trying to reading Accumulo table " + table + " " + key); e.printStackTrace(); return Status.ERROR; } finally { if (null != scanner) { scanner.close(); } } return Status.OK; }
/** * Deletes a row, given a Scanner of JUST that row. */ private void deleteRow(Scanner scanner, BatchWriter bw) throws MutationsRejectedException { Mutation deleter = null; // iterate through the keys final Text row = new Text(); final Text cf = new Text(); final Text cq = new Text(); for (Entry<Key, Value> entry : scanner) { // create a mutation for the row if (deleter == null) { entry.getKey().getRow(row); deleter = new Mutation(row); } entry.getKey().getColumnFamily(cf); entry.getKey().getColumnQualifier(cq); // the remove function adds the key with the delete flag set to true deleter.putDelete(cf, cq); } bw.addMutation(deleter); } }
@Override protected Text getTerm(Key key) { if (indexColf.compareTo(key.getColumnFamily().getBytes(), 0, indexColf.getLength()) < 0) { // We're past the index column family, so return a term that will sort lexicographically last. // The last unicode character should suffice return new Text("\uFFFD"); } Text colq = key.getColumnQualifier(); int zeroIndex = colq.find("\0"); Text term = new Text(); term.set(colq.getBytes(), 0, zeroIndex); return term; }
private void verify(Iterable<Entry<Key,Value>> scanner, int start, int finish) throws Exception { int expected = start; for (Entry<Key,Value> entry : scanner) { if (Integer.parseInt(entry.getKey().getRow().toString()) != expected) { throw new Exception("Saw unexpexted " + entry.getKey().getRow() + " " + expected); } if (entry.getKey().getColumnQualifier().toString().equals("cq2")) { expected += 2; } } if (expected != finish + 2) { throw new Exception("Ended at " + expected + " not " + (finish + 2)); } }
@Override public Status read(String table, String key, Set<String> fields, Map<String, ByteIterator> result) { Scanner scanner = null; try { scanner = getRow(table, new Text(key), null); // Pick out the results we care about. final Text cq = new Text(); for (Entry<Key, Value> entry : scanner) { entry.getKey().getColumnQualifier(cq); Value v = entry.getValue(); byte[] buf = v.get(); result.put(cq.toString(), new ByteArrayByteIterator(buf)); } } catch (Exception e) { System.err.println("Error trying to reading Accumulo table " + table + " " + key); e.printStackTrace(); return Status.ERROR; } finally { if (null != scanner) { scanner.close(); } } return Status.OK; }
/** * Deletes a row, given a Scanner of JUST that row. */ private void deleteRow(Scanner scanner, BatchWriter bw) throws MutationsRejectedException { Mutation deleter = null; // iterate through the keys final Text row = new Text(); final Text cf = new Text(); final Text cq = new Text(); for (Entry<Key, Value> entry : scanner) { // create a mutation for the row if (deleter == null) { entry.getKey().getRow(row); deleter = new Mutation(row); } entry.getKey().getColumnFamily(cf); entry.getKey().getColumnQualifier(cq); // the remove function adds the key with the delete flag set to true deleter.putDelete(cf, cq); } bw.addMutation(deleter); } }
public void deleteProblemReports(Table.ID table) throws Exception { if (isMeta(table)) { Iterator<ProblemReport> pri = iterator(table); while (pri.hasNext()) { pri.next().removeFromZooKeeper(context); } return; } Scanner scanner = context.createScanner(MetadataTable.NAME, Authorizations.EMPTY); scanner.addScanIterator(new IteratorSetting(1, "keys-only", SortedKeyIterator.class)); scanner.setRange(new Range(new Text("~err_" + table))); Mutation delMut = new Mutation(new Text("~err_" + table)); boolean hasProblems = false; for (Entry<Key,Value> entry : scanner) { hasProblems = true; delMut.putDelete(entry.getKey().getColumnFamily(), entry.getKey().getColumnQualifier()); } if (hasProblems) MetadataTableUtil.getMetadataTable(context).update(delMut); }
public static RealMatrix buildMatrix(Iterator<Map.Entry<Key, Value>> iter, int dimension) { RealMatrix matrix = MatrixUtils.createRealMatrix(dimension, dimension); Text row = new Text(), col = new Text(); while (iter.hasNext()) { Map.Entry<Key, Value> entry = iter.next(); Key k = entry.getKey(); int r = Integer.parseInt(k.getRow(row).toString()) - 1, c = Integer.parseInt(k.getColumnQualifier(col).toString()) - 1; double v = Double.parseDouble(new String(entry.getValue().get(), StandardCharsets.UTF_8)); // StandardCharsets.UTF_8? matrix.setEntry(r, c, v); } return matrix; }
@Override public Status read(String table, String key, Set<String> fields, Map<String, ByteIterator> result) { Scanner scanner = null; try { scanner = getRow(table, new Text(key), null); // Pick out the results we care about. final Text cq = new Text(); for (Entry<Key, Value> entry : scanner) { entry.getKey().getColumnQualifier(cq); Value v = entry.getValue(); byte[] buf = v.get(); result.put(cq.toString(), new ByteArrayByteIterator(buf)); } } catch (Exception e) { System.err.println("Error trying to reading Accumulo table " + table + " " + key); e.printStackTrace(); return Status.ERROR; } finally { if (null != scanner) { scanner.close(); } } return Status.OK; }
/** * Deletes a row, given a Scanner of JUST that row. */ private void deleteRow(Scanner scanner, BatchWriter bw) throws MutationsRejectedException { Mutation deleter = null; // iterate through the keys final Text row = new Text(); final Text cf = new Text(); final Text cq = new Text(); for (Entry<Key, Value> entry : scanner) { // create a mutation for the row if (deleter == null) { entry.getKey().getRow(row); deleter = new Mutation(row); } entry.getKey().getColumnFamily(cf); entry.getKey().getColumnQualifier(cq); // the remove function adds the key with the delete flag set to true deleter.putDelete(cf, cq); } bw.addMutation(deleter); } }
Status status = null; try { status = Status.parseFrom(entry.getValue().get()); } catch (InvalidProtocolBufferException e) { log.error("Encountered unparsable protobuf for key: {}", entry.getKey().toStringNoTruncate()); continue; Key k = entry.getKey(); k.getColumnFamily(colf); k.getColumnQualifier(colq); mutations.add(m); for (Entry<Table.ID,Long> entry : tableToTimeCreated.entrySet()) { log.info("Removing order mutation for table {} at {} for {}", entry.getKey(), entry.getValue(), row); Mutation orderMutation = OrderSection.createMutation(row.toString(), entry.getValue()); orderMutation.putDelete(OrderSection.NAME, new Text(entry.getKey().getUtf8())); mutations.add(orderMutation);
public boolean checkTimeType(Connector connector, String tableName, TimeType expectedTimeType) throws TableNotFoundException { final Scanner scanner = connector.createScanner(MetadataTable.NAME, Authorizations.EMPTY); String tableID = connector.tableOperations().tableIdMap().get(tableName) + "<"; for (Entry<Key,Value> entry : scanner) { Key k = entry.getKey(); if (k.getRow().toString().equals(tableID) && k.getColumnQualifier().toString() .equals(ServerColumnFamily.TIME_COLUMN.getColumnQualifier().toString())) { if (expectedTimeType == TimeType.MILLIS && entry.getValue().toString().charAt(0) == 'M') return true; if (expectedTimeType == TimeType.LOGICAL && entry.getValue().toString().charAt(0) == 'L') return true; } } return false; }
for (Entry<Key, Value> entry : scanner) { SortedMap<Key, Value> row = WholeRowIterator.decodeRow(entry.getKey(), entry.getValue()); HashMap<String, ByteIterator> rowData; if (null != fields) { rowEntry.getKey().getColumnQualifier(cq); rowData.put(cq.toString(), new ByteArrayByteIterator(rowEntry.getValue().get()));