public static Filter createFilterFromArguments(ArrayList<byte []> filterArguments) { Preconditions.checkArgument(filterArguments.size() == 1, "Expected 1 but got: %s", filterArguments.size()); byte [] columnPrefix = ParseFilter.removeQuotesFromByteArray(filterArguments.get(0)); return new ColumnPrefixFilter(columnPrefix); }
/** * @param pbBytes A pb serialized {@link ColumnPrefixFilter} instance * @return An instance of {@link ColumnPrefixFilter} made from <code>bytes</code> * @throws org.apache.hadoop.hbase.exceptions.DeserializationException * @see #toByteArray */ public static ColumnPrefixFilter parseFrom(final byte [] pbBytes) throws DeserializationException { FilterProtos.ColumnPrefixFilter proto; try { proto = FilterProtos.ColumnPrefixFilter.parseFrom(pbBytes); } catch (InvalidProtocolBufferException e) { throw new DeserializationException(e); } return new ColumnPrefixFilter(proto.getPrefix().toByteArray()); }
static Scan createScanForSpaceSnapshotSizes(TableName table) { Scan s = new Scan(); if (null == table) { // Read all tables, just look at the row prefix s.setRowPrefixFilter(QUOTA_TABLE_ROW_KEY_PREFIX); } else { // Fetch the exact row for the table byte[] rowkey = getTableRowKey(table); // Fetch just this one row s.withStartRow(rowkey).withStopRow(rowkey, true); } // Just the usage family and only the snapshot size qualifiers return s.addFamily(QUOTA_FAMILY_USAGE).setFilter( new ColumnPrefixFilter(QUOTA_SNAPSHOT_SIZE_QUALIFIER)); }
@Test public void testColumnPrefixFilter() throws Exception { // empty string ColumnPrefixFilter columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("")); assertTrue(columnPrefixFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(columnPrefixFilter)))); // non-empty string columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("")); assertTrue(columnPrefixFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(columnPrefixFilter)))); }
/** * Test partial Result re-assembly in the presence of different filters. The Results from the * partial scanner should match the Results returned from a scanner that receives all of the * results in one RPC to the server. The partial scanner is tested with a variety of different * result sizes (all of which are less than the size necessary to fetch an entire row) * @throws Exception */ @Test public void testPartialResultsWithColumnFilter() throws Exception { testPartialResultsWithColumnFilter(new FirstKeyOnlyFilter()); testPartialResultsWithColumnFilter(new ColumnPrefixFilter(Bytes.toBytes("testQualifier5"))); testPartialResultsWithColumnFilter(new ColumnRangeFilter(Bytes.toBytes("testQualifer1"), true, Bytes.toBytes("testQualifier7"), true)); Set<byte[]> qualifiers = new LinkedHashSet<>(); qualifiers.add(Bytes.toBytes("testQualifier5")); testPartialResultsWithColumnFilter(new FirstKeyValueMatchingQualifiersFilter(qualifiers)); }
break; case ColumnPrefixFilter: filter = new ColumnPrefixFilter(Base64.getDecoder().decode(value)); break; case ColumnRangeFilter:
scan.withStartRow(row).withStopRow(row, true) .setFilter(new FilterList(Operator.MUST_PASS_ONE, new ColumnPrefixFilter(Bytes.toBytes("1544770422942010001_")), new ColumnPrefixFilter(Bytes.toBytes("1544769883529010001_")))); ResultScanner scanner = table.getScanner(scan); Result result;
scan.setMaxVersions(); for (String s: prefixMap.keySet()) { filter = new ColumnPrefixFilter(Bytes.toBytes(s));
scan.setMaxVersions(); for (String s: prefixMap.keySet()) { filter = new ColumnPrefixFilter(Bytes.toBytes(s));
Scan scan2 = new Scan(); scan2.setMaxVersions(); singlePrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("p"));
scan.setFilter(new ColumnPrefixFilter(prefix1)); verifyScanResult(table, scan, expected1, "Double check on column prefix failed"); scan.setFilter(new ColumnPrefixFilter(prefix2)); verifyScanResult(table, scan, expected2, "Double check on column prefix failed"); scan.setFilter(new ColumnPrefixFilter(prefix3)); verifyScanResult(table, scan, expected3, "Double check on column prefix failed"); scan.setFilter(new ColumnPrefixFilter(prefix4)); verifyScanResult(table, scan, expected4, "Double check on column prefix failed"); verifyScanResult(table, scan, expected1, "Prefix filter failed"); scan.setFilter(new ColumnPrefixFilter(prefix2)); verifyScanResult(table, scan, expected2, "Combined Prefix + Filter failed"); scan.setFilter(new ColumnPrefixFilter(prefix2)); verifyScanResult(table, scan, expected2, "Test filter failed");
get.setFilter(new ColumnPrefixFilter(QUALIFIERS[1])); result = ht.get(get); kvListExp = new ArrayList<>();
filter = new ColumnPrefixFilter(QUALIFIERS[0]); testRowsFilteredMetric(baseScan, filter, 0); filter = new ColumnPrefixFilter(Bytes.toBytes("xyz")); testRowsFilteredMetric(baseScan, filter, ROWS.length);
public static Filter createFilterFromArguments(ArrayList<byte []> filterArguments) { Preconditions.checkArgument(filterArguments.size() == 1, "Expected 1 but got: %s", filterArguments.size()); byte [] columnPrefix = ParseFilter.removeQuotesFromByteArray(filterArguments.get(0)); return new ColumnPrefixFilter(columnPrefix); }
public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); HBaseHelper helper = HBaseHelper.getHelper(conf); helper.dropTable("testtable"); helper.createTable("testtable", "colfam1"); System.out.println("Adding rows to table..."); helper.fillTable("testtable", 1, 10, 30, 0, true, "colfam1"); Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(TableName.valueOf("testtable")); // vv ColumnPrefixFilterExample Filter filter = new ColumnPrefixFilter(Bytes.toBytes("col-1")); Scan scan = new Scan(); scan.setFilter(filter); ResultScanner scanner = table.getScanner(scan); // ^^ ColumnPrefixFilterExample System.out.println("Results of scan:"); // vv ColumnPrefixFilterExample for (Result result : scanner) { System.out.println(result); } scanner.close(); // ^^ ColumnPrefixFilterExample } }
/** * @param pbBytes A pb serialized {@link ColumnPrefixFilter} instance * @return An instance of {@link ColumnPrefixFilter} made from <code>bytes</code> * @throws org.apache.hadoop.hbase.exceptions.DeserializationException * @see #toByteArray */ public static ColumnPrefixFilter parseFrom(final byte [] pbBytes) throws DeserializationException { FilterProtos.ColumnPrefixFilter proto; try { proto = FilterProtos.ColumnPrefixFilter.parseFrom(pbBytes); } catch (InvalidProtocolBufferException e) { throw new DeserializationException(e); } return new ColumnPrefixFilter(proto.getPrefix().toByteArray()); }
static Scan createScanForSpaceSnapshotSizes(TableName table) { Scan s = new Scan(); if (null == table) { // Read all tables, just look at the row prefix s.setRowPrefixFilter(QUOTA_TABLE_ROW_KEY_PREFIX); } else { // Fetch the exact row for the table byte[] rowkey = getTableRowKey(table); // Fetch just this one row s.withStartRow(rowkey).withStopRow(rowkey, true); } // Just the usage family and only the snapshot size qualifiers return s.addFamily(QUOTA_FAMILY_USAGE).setFilter( new ColumnPrefixFilter(QUOTA_SNAPSHOT_SIZE_QUALIFIER)); }
public static Filter createFilterFromArguments(ArrayList<byte []> filterArguments) { Preconditions.checkArgument(filterArguments.size() == 1, "Expected 1 but got: %s", filterArguments.size()); byte [] columnPrefix = ParseFilter.removeQuotesFromByteArray(filterArguments.get(0)); return new ColumnPrefixFilter(columnPrefix); }
@Override public Scan operationScan() { Scan scan = new Scan(); Filter f = new ColumnPrefixFilter(Bytes.toBytes("col-0")); scan.setFilter(f); return scan; }
@Test public void testColumnPrefixFilter() throws Exception { // empty string ColumnPrefixFilter columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("")); assertTrue(columnPrefixFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(columnPrefixFilter)))); // non-empty string columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("")); assertTrue(columnPrefixFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(columnPrefixFilter)))); }