@Override public <K> boolean remove(final K key, final Serializer<K> keySerializer) throws IOException { final boolean contains = containsKey(key, keySerializer); if (contains) { final byte[] rowIdBytes = serialize(key, keySerializer); hBaseClientService.delete(hBaseCacheTableName, rowIdBytes); } return contains; }
private int addBatch(String tableName, List<PutFlowFile> flowFiles) throws IOException { int columns = 0; clientService.put(tableName, flowFiles); for (PutFlowFile put : flowFiles) { columns += put.getColumns().size(); } return columns; }
@Override public <K> boolean containsKey(final K key, final Serializer<K> keySerializer) throws IOException { final byte[] rowIdBytes = serialize(key, keySerializer); final HBaseRowHandler handler = new HBaseRowHandler(); final List<Column> columnsList = new ArrayList<Column>(0); hBaseClientService.scan(hBaseCacheTableName, rowIdBytes, rowIdBytes, columnsList, authorizations, handler); return (handler.numRows() > 0); }
private String doDeleteFromAttribute(FlowFile flowFile, ProcessContext context, String tableName, String charset, String visibility) throws Exception { String rowKey = context.getProperty(ROW_ID).evaluateAttributeExpressions(flowFile).getValue(); clientService.delete(tableName, rowKey.getBytes(charset), visibility); return clientService.toTransitUri(tableName, rowKey); }
hBaseClientService.scan(tableName, columns, filterExpression, minTime, authorizations, (rowKey, resultCells) -> { flowFile = session.putAllAttributes(flowFile, attributes); session.getProvenanceReporter().receive(flowFile, hBaseClientService.toTransitUri(tableName, rowKeyString)); session.transfer(flowFile, REL_SUCCESS); getLogger().debug("Received {} from HBase with row key {}", new Object[]{flowFile, rowKeyString});
@Override public <K, V> boolean putIfAbsent(final K key, final V value, final Serializer<K> keySerializer, final Serializer<V> valueSerializer) throws IOException { final byte[] rowIdBytes = serialize(key, keySerializer); final byte[] valueBytes = serialize(value, valueSerializer); final PutColumn putColumn = new PutColumn(hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, valueBytes); return hBaseClientService.checkAndPut(hBaseCacheTableName, rowIdBytes, hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, null, putColumn); }
private byte[] extractJNodeValue(final JsonNode n){ if (n.isBoolean()){ //boolean return clientService.toBytes(n.asBoolean()); }else if(n.isNumber()){ if(n.isIntegralNumber()){ //interpret as Long return clientService.toBytes(n.asLong()); }else{ //interpret as Double return clientService.toBytes(n.asDouble()); } }else{ //if all else fails, interpret as String return clientService.toBytes(n.asText()); } }
clientService.deleteCells(tableName, deletes); for (int index = 0; index < rowKeys.size(); index++) { //Could be many row keys in one flowfile. session.getProvenanceReporter().invokeRemoteProcess(input, clientService.toTransitUri(tableName, rowKeys.get(index)));
protected byte[] getRow(final String row, final String encoding) { //check to see if we need to modify the rowKey before we pass it down to the PutFlowFile byte[] rowKeyBytes = null; if(BINARY_ENCODING_VALUE.contentEquals(encoding)){ rowKeyBytes = clientService.toBytesBinary(row); }else{ rowKeyBytes = row.getBytes(StandardCharsets.UTF_8); } return rowKeyBytes; } /**
hBaseClientService.scan(tableName, rowIdBytes, rowIdBytes, columns, authorizations, handler); } catch (Exception e) { getLogger().error("Unable to fetch row {} from {} due to {}", new Object[] {rowId, tableName, e}); final String transitUri = hBaseClientService.toTransitUri(tableName, rowId);
@Override public <K, V> boolean putIfAbsent(final K key, final V value, final Serializer<K> keySerializer, final Serializer<V> valueSerializer) throws IOException { final byte[] rowIdBytes = serialize(key, keySerializer); final byte[] valueBytes = serialize(value, valueSerializer); final PutColumn putColumn = new PutColumn(hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, valueBytes); return hBaseClientService.checkAndPut(hBaseCacheTableName, rowIdBytes, hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, null, putColumn); }
default: final String value = record.getAsString(field); retVal = clientService.toBytes(value); break; break; case BOOLEAN: retVal = clientService.toBytes(record.getAsBoolean(field)); break; case DOUBLE: retVal = clientService.toBytes(record.getAsDouble(field)); break; case FLOAT: retVal = clientService.toBytes(record.getAsFloat(field)); break; case INT: retVal = clientService.toBytes(record.getAsInt(field)); break; case LONG: retVal = clientService.toBytes(record.getAsLong(field)); break; default: final String value = record.getAsString(field); retVal = clientService.toBytes(value); break;
@Override public <K> boolean containsKey(final K key, final Serializer<K> keySerializer) throws IOException { final byte[] rowIdBytes = serialize(key, keySerializer); final HBaseRowHandler handler = new HBaseRowHandler(); final List<Column> columnsList = new ArrayList<Column>(0); hBaseClientService.scan(hBaseCacheTableName, rowIdBytes, rowIdBytes, columnsList, authorizations, handler); return (handler.numRows() > 0); }
@Override public <K, V> void put(final K key, final V value, final Serializer<K> keySerializer, final Serializer<V> valueSerializer) throws IOException { List<PutColumn> putColumns = new ArrayList<PutColumn>(1); final byte[] rowIdBytes = serialize(key, keySerializer); final byte[] valueBytes = serialize(value, valueSerializer); final PutColumn putColumn = new PutColumn(hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, valueBytes); putColumns.add(putColumn); hBaseClientService.put(hBaseCacheTableName, rowIdBytes, putColumns); }
@Override public <K> boolean remove(final K key, final Serializer<K> keySerializer) throws IOException { final boolean contains = containsKey(key, keySerializer); if (contains) { final byte[] rowIdBytes = serialize(key, keySerializer); hBaseClientService.delete(hBaseCacheTableName, rowIdBytes); } return contains; }
@Override public <K, V> boolean putIfAbsent(final K key, final V value, final Serializer<K> keySerializer, final Serializer<V> valueSerializer) throws IOException { final byte[] rowIdBytes = serialize(key, keySerializer); final byte[] valueBytes = serialize(value, valueSerializer); final PutColumn putColumn = new PutColumn(hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, valueBytes); return hBaseClientService.checkAndPut(hBaseCacheTableName, rowIdBytes, hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, null, putColumn); }
private byte[] handleComplexField(Record record, String field, String complexFieldStrategy) throws PutCreationFailedInvokedException { switch (complexFieldStrategy) { case FAIL_VALUE: getLogger().error("Complex value found for {}; routing to failure", new Object[]{field}); throw new PutCreationFailedInvokedException(String.format("Complex value found for %s; routing to failure", field)); case WARN_VALUE: getLogger().warn("Complex value found for {}; skipping", new Object[]{field}); return null; case TEXT_VALUE: final String value = record.getAsString(field); return clientService.toBytes(value); case IGNORE_VALUE: // silently skip return null; default: return null; } }
@Override public <K, V> V get(final K key, final Serializer<K> keySerializer, final Deserializer<V> valueDeserializer) throws IOException { final byte[] rowIdBytes = serialize(key, keySerializer); final HBaseRowHandler handler = new HBaseRowHandler(); final List<Column> columnsList = new ArrayList<Column>(0); hBaseClientService.scan(hBaseCacheTableName, rowIdBytes, rowIdBytes, columnsList, authorizations, handler); if (handler.numRows() > 1) { throw new IOException("Found multiple rows in HBase for key"); } else if(handler.numRows() == 1) { return deserialize( handler.getLastResultBytes(), valueDeserializer); } else { return null; } }
@Override public <K, V> void put(final K key, final V value, final Serializer<K> keySerializer, final Serializer<V> valueSerializer) throws IOException { List<PutColumn> putColumns = new ArrayList<PutColumn>(1); final byte[] rowIdBytes = serialize(key, keySerializer); final byte[] valueBytes = serialize(value, valueSerializer); final PutColumn putColumn = new PutColumn(hBaseColumnFamilyBytes, hBaseColumnQualifierBytes, valueBytes); putColumns.add(putColumn); hBaseClientService.put(hBaseCacheTableName, rowIdBytes, putColumns); }