@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof com.google.bigtable.v2.Row)) { return super.equals(obj); } com.google.bigtable.v2.Row other = (com.google.bigtable.v2.Row) obj; boolean result = true; result = result && getKey().equals(other.getKey()); result = result && getFamiliesList().equals(other.getFamiliesList()); result = result && unknownFields.equals(other.unknownFields); return result; }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + KEY_FIELD_NUMBER; hash = (53 * hash) + getKey().hashCode(); if (getFamiliesCount() > 0) { hash = (37 * hash) + FAMILIES_FIELD_NUMBER; hash = (53 * hash) + getFamiliesList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
/** * * * <pre> * The unique key which identifies this row within its table. This is the same * key that's used to identify the row in, for example, a MutateRowRequest. * May contain any non-empty byte string up to 4KiB in length. * </pre> * * <code>bytes key = 1;</code> */ public Builder clearKey() { key_ = getDefaultInstance().getKey(); onChanged(); return this; }
private Row convertResponse(ReadModifyWriteRowResponse response) { ImmutableList.Builder<RowCell> cells = ImmutableList.builder(); for (Family family : response.getRow().getFamiliesList()) { for (Column column : family.getColumnsList()) { for (Cell cell : column.getCellsList()) { cells.add( RowCell.create( family.getName(), column.getQualifier(), cell.getTimestampMicros(), cell.getLabelsList(), cell.getValue())); } } } return Row.create(response.getRow().getKey(), cells.build()); } }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof com.google.bigtable.v2.Row)) { return super.equals(obj); } com.google.bigtable.v2.Row other = (com.google.bigtable.v2.Row) obj; boolean result = true; result = result && getKey().equals(other.getKey()); result = result && getFamiliesList().equals(other.getFamiliesList()); result = result && unknownFields.equals(other.unknownFields); return result; }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof com.google.bigtable.v2.Row)) { return super.equals(obj); } com.google.bigtable.v2.Row other = (com.google.bigtable.v2.Row) obj; boolean result = true; result = result && getKey() .equals(other.getKey()); result = result && getFamiliesList() .equals(other.getFamiliesList()); return result; }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + KEY_FIELD_NUMBER; hash = (53 * hash) + getKey().hashCode(); if (getFamiliesCount() > 0) { hash = (37 * hash) + FAMILIES_FIELD_NUMBER; hash = (53 * hash) + getFamiliesList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
/** * <pre> * The unique key which identifies this row within its table. This is the same * key that's used to identify the row in, for example, a MutateRowRequest. * May contain any non-empty byte string up to 4KiB in length. * </pre> * * <code>bytes key = 1;</code> */ public Builder clearKey() { key_ = getDefaultInstance().getKey(); onChanged(); return this; }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + KEY_FIELD_NUMBER; hash = (53 * hash) + getKey().hashCode(); if (getFamiliesCount() > 0) { hash = (37 * hash) + FAMILIES_FIELD_NUMBER; hash = (53 * hash) + getFamiliesList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
/** * * * <pre> * The unique key which identifies this row within its table. This is the same * key that's used to identify the row in, for example, a MutateRowRequest. * May contain any non-empty byte string up to 4KiB in length. * </pre> * * <code>bytes key = 1;</code> */ public Builder clearKey() { key_ = getDefaultInstance().getKey(); onChanged(); return this; }
@Override public boolean advance() throws IOException { boolean hasRecord = (reader.advance() && rangeTracker.tryReturnRecordAt( true, makeByteKey(reader.getCurrentRow().getKey()))) || rangeTracker.markDone(); if (hasRecord) { ++recordsReturned; } return hasRecord; }
@Override public BigtableRow apply(Row row) { ByteBuffer key = ByteBuffer.wrap(toByteArray(row.getKey())); List<BigtableCell> cells = new ArrayList<>(); for (Family family : row.getFamiliesList()) { String familyName = family.getName(); for (Column column : family.getColumnsList()) { ByteBuffer qualifier = ByteBuffer.wrap(toByteArray(column.getQualifier())); for (Cell cell : column.getCellsList()) { long timestamp = cell.getTimestampMicros(); ByteBuffer value = ByteBuffer.wrap(toByteArray(cell.getValue())); cells.add(new BigtableCell(familyName, qualifier, timestamp, value)); } } } return new BigtableRow(key, cells); } }
private static List<Row> filterToRanges(List<Row> rows, final List<ByteKeyRange> ranges) { return Lists.newArrayList( rows.stream() .filter( input -> { verifyNotNull(input, "input"); for (ByteKeyRange range : ranges) { if (range.containsKey(makeByteKey(input.getKey()))) { return true; } } return false; }) .collect(Collectors.toList())); }
@Override public boolean start() throws IOException { reader = service.createReader(getCurrentSource()); boolean hasRecord = (reader.start() && rangeTracker.tryReturnRecordAt( true, makeByteKey(reader.getCurrentRow().getKey()))) || rangeTracker.markDone(); if (hasRecord) { ++recordsReturned; } return hasRecord; }
private Row convertResponse(ReadModifyWriteRowResponse response) { ImmutableList.Builder<RowCell> cells = ImmutableList.builder(); for (Family family : response.getRow().getFamiliesList()) { for (Column column : family.getColumnsList()) { for (Cell cell : column.getCellsList()) { cells.add( RowCell.create( family.getName(), column.getQualifier(), cell.getTimestampMicros(), cell.getLabelsList(), cell.getValue())); } } } return Row.create(response.getRow().getKey(), cells.build()); } }
/** * This method converts instances of {@link ReadModifyWriteRowResponse} to {@link Row}. * * @param response an instance of {@link ReadModifyWriteRowResponse} type. * @return an instance of {@link Row}. */ private Row transformResponse(ReadModifyWriteRowResponse response) { ImmutableList.Builder<RowCell> rowCells = ImmutableList.builder(); for (Family family : response.getRow().getFamiliesList()) { for (Column column : family.getColumnsList()) { for (Cell cell : column.getCellsList()) { rowCells.add( RowCell.create( family.getName(), column.getQualifier(), cell.getTimestampMicros(), cell.getLabelsList(), cell.getValue())); } } } return Row.create(response.getRow().getKey(), rowCells.build()); } }
/** Tests reading all rows using a filter. */ @Test public void testReadingWithFilter() throws Exception { final String table = "TEST-FILTER-TABLE"; final int numRows = 1001; List<Row> testRows = makeTableData(table, numRows); String regex = ".*17.*"; final KeyMatchesRegex keyPredicate = new KeyMatchesRegex(regex); Iterable<Row> filteredRows = testRows .stream() .filter( input -> { verifyNotNull(input, "input"); return keyPredicate.apply(input.getKey()); }) .collect(Collectors.toList()); RowFilter filter = RowFilter.newBuilder().setRowKeyRegexFilter(ByteString.copyFromUtf8(regex)).build(); service.setupSampleRowKeys(table, 5, 10L); runReadTest( defaultRead.withTableId(table).withRowFilter(filter), Lists.newArrayList(filteredRows)); }
public static FlatRow convert(Row row) { FlatRow.Builder builder = FlatRow.newBuilder().withRowKey(row.getKey()); for (Family family : row.getFamiliesList()) { String familyName = family.getName(); for (Column column : family.getColumnsList()) { ByteString qualifier = column.getQualifier(); for (Cell cell : column.getCellsList()) { builder.addCell(familyName, qualifier, cell.getTimestampMicros(), cell.getValue(), cell.getLabelsList()); } } } return builder.build(); }
/** Helper function to get a table's data. */ private List<KV<ByteString, ByteString>> getTableData(String tableName) throws IOException { // Add empty range to avoid TARGET_NOT_SET error RowRange range = RowRange.newBuilder() .setStartKeyClosed(ByteString.EMPTY) .setEndKeyOpen(ByteString.EMPTY) .build(); RowSet rowSet = RowSet.newBuilder().addRowRanges(range).build(); ReadRowsRequest.Builder readRowsRequestBuilder = ReadRowsRequest.newBuilder().setTableName(tableName).setRows(rowSet); ResultScanner<Row> scanner = session.getDataClient().readRows(readRowsRequestBuilder.build()); Row currentRow; List<KV<ByteString, ByteString>> tableData = new ArrayList<>(); while ((currentRow = scanner.next()) != null) { ByteString key = currentRow.getKey(); ByteString value = currentRow.getFamilies(0).getColumns(0).getCells(0).getValue(); tableData.add(KV.of(key, value)); } scanner.close(); return tableData; }