@Override public KeyValue getValue(byte[] family, byte[] qualifier) { return result.getColumnLatest(family, qualifier); }
public String loadString(String key) throws Exception { Get keyGet = new Get(key.getBytes()); HTable htable = HTableFactory.getHTable(configMap); Result res = htable.get(keyGet); KeyValue kv = res.getColumnLatest(configMap.get(HTableFactory.FAMILY_TAG).getBytes(), configMap.get(HTableFactory.QUALIFIER_TAG).getBytes()); if (kv == null) { throw new NoSuchElementException("No value found for " + key); } byte[] bytes = kv.getValue(); String jsonStr = new String(bytes); return jsonStr; }
/** * Checks for existence of the specified column. * @param family family name * @param qualifier column qualifier * @return true if at least one value exists in the result, false if not */ public boolean containsColumn(byte [] family, byte [] qualifier) { KeyValue kv = getColumnLatest(family, qualifier); return kv != null; }
/** * Get the latest version of the specified column. * @param family family name * @param qualifier column qualifier * @return value of latest version of column, null if none found */ public byte[] getValue(byte [] family, byte [] qualifier) { KeyValue kv = getColumnLatest(family, qualifier); if (kv == null) { return null; } return kv.getValue(); }
ProcessRecordKey key = keyConv.fromBytes(row); KeyValue keyValue = result.getColumnLatest(Constants.INFO_FAM_BYTES, Constants.MIN_MOD_TIME_MILLIS_COLUMN_BYTES); long minModificationTimeMillis = Bytes.toLong(keyValue.getValue()); keyValue = result.getColumnLatest(Constants.INFO_FAM_BYTES, Constants.PROCESSED_JOB_FILES_COLUMN_BYTES); int processedJobFiles = Bytes.toInt(keyValue.getValue()); keyValue = result.getColumnLatest(Constants.INFO_FAM_BYTES, Constants.PROCESS_FILE_COLUMN_BYTES); String processingDirectory = Bytes.toString(keyValue.getValue()); keyValue = result.getColumnLatest(Constants.INFO_FAM_BYTES, Constants.PROCESSING_STATE_COLUMN_BYTES); ProcessState processState = ProcessState.getProcessState(Bytes.toInt(keyValue.getValue())); keyValue = result.getColumnLatest(Constants.INFO_FAM_BYTES, Constants.MIN_JOB_ID_COLUMN_BYTES); String minJobId = null; keyValue = result.getColumnLatest(Constants.INFO_FAM_BYTES, Constants.MAX_JOB_ID_COLUMN_BYTES); String maxJobId = null;
for (Result result: results) { String[] fixedInfoValues = Bytes.toString(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.FIXED_INFO_COL).getValue()).split("|"); String username = fixedInfoValues[0]; int age = Integer.parseInt(fixedInfoValues[1]); long firstLogIn = Long.parseLong(fixedInfoValues[2]); long lastLogIn = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.LAST_LOG_IN_COL).getValue()); long logInCount = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.LOG_IN_COUNT_COL).getValue()); long logInCountHavingASell = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.TOTAL_SELLS_COL).getValue()); long logInCountHavingAPurchase = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.TOTAL_PURCHASES_COL).getValue()); long totalValueOfPastPurchases = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.TOTAL_VALUE_OF_PAST_PURCHASES_COL).getValue()); long totalValueOfPastSells = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.TOTAL_VALUE_OF_PAST_SELLS_COL).getValue()); long currentLogInSellsValue = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.CURRENT_LOG_IN_SELLS_VALUE_COL).getValue()); long currentLogInPurchasesValue = Bytes.toLong(result.getColumnLatest(DataModelConsts.PROFILE_COLUMN_FAMILY, DataModelConsts.CURRENT_LOG_IN_PURCHASES_VALUE_COL).getValue());
Result r = results[i]; Cell kv = r.getColumnLatest(colFamily, weightQualifier); R newValue = ci.getValue(colFamily, weightQualifier, kv); S s = ci.castToReturnType(newValue); kv = r.getColumnLatest(colFamily, qualifier); value = ci.getValue(colFamily, qualifier, kv);
public Result next() throws IOException { if (done) { return null; } while (true) { if (indexResult == null || (++kvIndex == indexResult.size())) { indexResult = super.next(); if (indexResult == null) { done = true; return null; } kvIndex = 0; } KeyValue indexKv = indexResult.list().get(kvIndex); ThemisGet dataRowGet = constructDataRowGet(indexKv.getQualifier(), indexRead.dataGet); Result dataResult = transaction.get(indexColumn.getTableName(), dataRowGet); KeyValue indexColumnKv = dataResult.getColumnLatest(indexColumn.getFamily(), indexColumn.getQualifier()); if (indexColumnKv == null || indexColumnKv.getTimestamp() != indexKv.getTimestamp()) { LOG.info("find unmatch index, indexKv=" + indexKv + ", indexColumnKv=" + indexColumnKv + ", totalUnMatchIndexCount=" + (++unmatchIndexCount)); continue; } return dataResult; } }
Result r = results[i]; KeyValue kv = r.getColumnLatest(colFamily, weightQualifier); R newValue = ci.getValue(colFamily, weightQualifier, kv); S s = ci.castToReturnType(newValue); kv = r.getColumnLatest(colFamily, qualifier); value = ci.getValue(colFamily, qualifier, kv);
/** {@inheritDoc} */ @Override public void produce(ImmutableBytesWritable hbaseRowKey, Result hbaseRow, FijiTableContext context) throws IOException { EntityId entity = context.getEntityId(Bytes.toString(hbaseRowKey.get())); for (ColumnDescriptor columnDescriptor : mColumnDescriptors) { KeyValue keyValue = hbaseRow.getColumnLatest(columnDescriptor.getHBaseFamilyBytes(), columnDescriptor.getHBaseQualifierBytes()); if (null == keyValue) { // No data in this HTable column, skip it. continue; } // Convert the HBase cell to a Fiji cell. DecodedCell<?> fijiCell = decodeHBaseCell(columnDescriptor, keyValue.getValue()); // Write it at the same timestamp as the HBase cell. final String family = columnDescriptor.getFijiColumnName().getFamily(); final String qualifier = columnDescriptor.getFijiColumnName().getQualifier(); context.put(entity, family, qualifier, keyValue.getTimestamp(), fijiCell.getData()); } }
context.progress(); KeyValue keyValue = value.getColumnLatest(Constants.RAW_FAM_BYTES, Constants.JOBHISTORY_COL_BYTES);
Bytes .toLong(result .getColumnLatest(AggregationConstants.INFO_FAM_BYTES, AggregationConstants.SLOTS_MILLIS_MAPS_BYTES) .getValue()); assertEquals(666L, Bytes.toLong(result .getColumnLatest(AggregationConstants.INFO_FAM_BYTES, AggregationConstants.SLOTS_MILLIS_REDUCES_BYTES) .getValue())); assertEquals(new Double(600.0), (Double) Bytes.toDouble( result.getColumnLatest(AggregationConstants.INFO_FAM_BYTES, AggregationConstants.JOBCOST_BYTES).getValue())); assertEquals(99L, .toLong( result .getColumnLatest(AggregationConstants.INFO_FAM_BYTES, AggregationConstants.MEGABYTEMILLIS_BYTES) .getValue())); .toLong( result .getColumnLatest(AggregationConstants.INFO_FAM_BYTES, AggregationConstants.NUMBER_RUNS_BYTES) .getValue()));
@Test public void testColumnTimestampFilterInGet() throws IOException { commitOneColumn(COLUMN, Type.Put, prewriteTs, commitTs); // ColumnTimestampFilter should filter this cell commitOneColumn(COLUMN, Type.Put, prewriteTs + 20, prewriteTs + 50); commitOneColumn(COLUMN_WITH_ANOTHER_FAMILY, Type.Put, prewriteTs + 30, prewriteTs + 40); Get get = new Get(ROW); get.addColumn(COLUMN.getFamily(), COLUMN.getQualifier()); get.addColumn(COLUMN_WITH_ANOTHER_FAMILY.getFamily(), COLUMN_WITH_ANOTHER_FAMILY.getQualifier()); Result iResult = cpClient.themisGet(TABLENAME, get, prewriteTs + 50); Assert.assertFalse(ThemisCpUtil.isLockResult(iResult)); Assert.assertEquals(2, iResult.list().size()); Collections.sort(iResult.list(), new KVComparator()); Result result = new Result(iResult.list()); Assert.assertEquals(prewriteTs, result.getColumnLatest(COLUMN.getFamily(), COLUMN.getQualifier()).getTimestamp()); Assert.assertEquals(prewriteTs + 30, result.getColumnLatest(COLUMN_WITH_ANOTHER_FAMILY.getFamily(), COLUMN_WITH_ANOTHER_FAMILY.getQualifier()).getTimestamp()); }
try { for (Result result : scanner) { byte[] val = CellUtil.cloneValue(result.getColumnLatest( HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES, HTableDescriptor.NAMESPACE_COL_DESC_BYTES));