org.apache.hadoop.hbase.filter.Filter.filterRowKey()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(149)

本文整理了Java中org.apache.hadoop.hbase.filter.Filter.filterRowKey()方法的一些代码示例,展示了Filter.filterRowKey()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Filter.filterRowKey()方法的具体详情如下:
包路径:org.apache.hadoop.hbase.filter.Filter
类名称:Filter
方法名:filterRowKey

Filter.filterRowKey介绍

[英]Filters a row based on the row key. If this returns true, the entire row will be excluded. If false, each KeyValue in the row will be passed to #filterCell(Cell) below. If #filterAllRemaining() returns true, then #filterRowKey(Cell) should also return true. Concrete implementers can signal a failure condition in their code by throwing an IOException.
[中]基于行键筛选行。如果返回true,则将排除整行。如果为false,则行中的每个键值都将传递给下面的#filterCell(单元格)。如果#filteralremaining()返回true,则#filterRowKey(单元格)也应返回true。具体的实现者可以通过抛出IOException在代码中发出失败条件的信号。

代码示例

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
 boolean value = filter.filterRowKey(buffer, offset, length);
 changeFAR(value);
 return value;
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(Cell cell) throws IOException {
 if (filterAllRemaining()) return true;
 return this.filter.filterRowKey(cell);
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
 // No call to this.
 if (filterAllRemaining()) return true;
 return this.filter.filterRowKey(buffer, offset, length);
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(Cell cell) throws IOException {
 if (filterAllRemaining()) return true;
 boolean value = filter.filterRowKey(cell);
 changeFAR(value);
 return value;
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException {
 if (isEmpty()) {
  return super.filterRowKey(rowKey, offset, length);
 }
 boolean retVal = false;
 for (int i = 0, n = filters.size(); i < n; i++) {
  Filter filter = filters.get(i);
  if (filter.filterAllRemaining() || filter.filterRowKey(rowKey, offset, length)) {
   retVal = true;
  }
 }
 return retVal;
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException {
 if (isEmpty()) {
  return super.filterRowKey(rowKey, offset, length);
 }
 boolean retVal = true;
 for (int i = 0, n = filters.size(); i < n; i++) {
  Filter filter = filters.get(i);
  if (!filter.filterAllRemaining() && !filter.filterRowKey(rowKey, offset, length)) {
   retVal = false;
  }
 }
 return retVal;
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(Cell firstRowCell) throws IOException {
 if (isEmpty()) {
  return super.filterRowKey(firstRowCell);
 }
 boolean retVal = false;
 for (int i = 0, n = filters.size(); i < n; i++) {
  Filter filter = filters.get(i);
  if (filter.filterAllRemaining() || filter.filterRowKey(firstRowCell)) {
   // Can't just return true here, because there are some filters (such as PrefixFilter) which
   // will catch the row changed event by filterRowKey(). If we return early here, those
   // filters will have no chance to update their row state.
   retVal = true;
  }
 }
 return retVal;
}

代码示例来源:origin: apache/hbase

@Override
public boolean filterRowKey(Cell firstRowCell) throws IOException {
 if (isEmpty()) {
  return super.filterRowKey(firstRowCell);
 }
 boolean retVal = true;
 for (int i = 0, n = filters.size(); i < n; i++) {
  Filter filter = filters.get(i);
  if (!filter.filterAllRemaining() && !filter.filterRowKey(firstRowCell)) {
   // Can't just return false here, because there are some filters (such as PrefixFilter) which
   // will catch the row changed event by filterRowKey(). If we return early here, those
   // filters will have no chance to update their row state.
   retVal = false;
  }
 }
 return retVal;
}

代码示例来源:origin: apache/hbase

private void writeResult(ImmutableBytesWritable key, Result result, Context context)
throws IOException, InterruptedException {
 Put put = null;
 Delete delete = null;
 if (LOG.isTraceEnabled()) {
  LOG.trace("Considering the row."
    + Bytes.toString(key.get(), key.getOffset(), key.getLength()));
 }
 if (filter == null
   || !filter.filterRowKey(PrivateCellUtil.createFirstOnRow(key.get(), key.getOffset(),
     (short) key.getLength()))) {
  processKV(key, result, context, put, delete);
 }
}

代码示例来源:origin: apache/hbase

/**
 * @param row  The current table row key.
 * @param value  The columns.
 * @param context  The current context.
 * @throws IOException When something is broken with the data.
 */
@Override
public void map(ImmutableBytesWritable row, Result value,
 Context context)
throws IOException {
 try {
  if (LOG.isTraceEnabled()) {
   LOG.trace("Considering the row."
     + Bytes.toString(row.get(), row.getOffset(), row.getLength()));
  }
  if (filter == null
    || !filter.filterRowKey(PrivateCellUtil.createFirstOnRow(row.get(), row.getOffset(),
      (short) row.getLength()))) {
   for (Cell kv : value.rawCells()) {
    kv = filterKv(filter, kv);
    // skip if we filtered it out
    if (kv == null) continue;
    context.write(row, new MapReduceExtendedCell(convertKv(kv, cfRenameMap)));
   }
  }
 } catch (InterruptedException e) {
  LOG.error("Interrupted while emitting Cell", e);
  Thread.currentThread().interrupt();
 }
}

代码示例来源:origin: apache/hbase

/**
 * @param row  The current table row key.
 * @param value  The columns.
 * @param context  The current context.
 * @throws IOException When something is broken with the data.
 */
@Override
public void map(ImmutableBytesWritable row, Result value,
 Context context)
throws IOException {
 try {
  if (LOG.isTraceEnabled()) {
   LOG.trace("Considering the row."
     + Bytes.toString(row.get(), row.getOffset(), row.getLength()));
  }
  if (filter == null || !filter.filterRowKey(
   PrivateCellUtil.createFirstOnRow(row.get(), row.getOffset(), (short) row.getLength()))) {
   for (Cell kv : value.rawCells()) {
    kv = filterKv(filter, kv);
    // skip if we filtered it out
    if (kv == null) continue;
    Cell ret = convertKv(kv, cfRenameMap);
    context.write(new CellWritableComparable(ret), ret);
   }
  }
 } catch (InterruptedException e) {
  LOG.error("Interrupted while emitting Cell", e);
  Thread.currentThread().interrupt();
 }
}

代码示例来源:origin: apache/kylin

List<KeyValue> nkvs = new ArrayList<KeyValue>(tmp.size());
for (KeyValue kv : tmp) {
  if (filter.filterRowKey(kv.getBuffer(), kv.getRowOffset(), kv.getRowLength())) {
    filteredOnRowKey = true;
    break;

代码示例来源:origin: apache/hbase

private void stopRowTests(Filter filter) throws Exception {
 assertFalse("Filtering on " + Bytes.toString(GOOD_ROW),
  filter.filterRowKey(KeyValueUtil.createFirstOnRow(GOOD_ROW)));
 assertFalse("Filtering on " + Bytes.toString(STOP_ROW),
  filter.filterRowKey(KeyValueUtil.createFirstOnRow(STOP_ROW)));
 assertTrue("Filtering on " + Bytes.toString(PAST_STOP_ROW),
  filter.filterRowKey(KeyValueUtil.createFirstOnRow(PAST_STOP_ROW)));
 assertTrue("FilterAllRemaining", filter.filterAllRemaining());
 assertFalse("FilterNotNull", filter.filterRow());
}

代码示例来源:origin: apache/hbase

private void prefixRowTests(Filter filter, boolean lastFilterAllRemaining)
throws Exception {
 for (char c = FIRST_CHAR; c <= LAST_CHAR; c++) {
  byte [] t = createRow(c);
  assertFalse("Failed with character " + c,
   filter.filterRowKey(KeyValueUtil.createFirstOnRow(t)));
  assertFalse(filter.filterAllRemaining());
 }
 String yahooSite = "com.yahoo.www";
 byte [] yahooSiteBytes = Bytes.toBytes(yahooSite);
 assertTrue("Failed with character " +
  yahooSite, filter.filterRowKey(KeyValueUtil.createFirstOnRow(yahooSiteBytes)));
 assertEquals(filter.filterAllRemaining(), lastFilterAllRemaining);
}

代码示例来源:origin: apache/hbase

private void mpAllTest(Filter filterMPALL) throws Exception {
 /* Filter must do all below steps:
  * <ul>
  * <li>{@link #reset()}</li>
  * <li>{@link #filterAllRemaining()} -> true indicates scan is over, false, keep going on.</li>
  * <li>{@link #filterRowKey(byte[],int,int)} -> true to drop this row,
  * if false, we will also call</li>
  * <li>{@link #filterCell(org.apache.hadoop.hbase.KeyValue)} -> true to drop this cell</li>
  * <li>{@link #filterRow()} -> last chance to drop entire row based on the sequence of
  * filterValue() calls. Eg: filter a row if it doesn't contain a specified column.
  * </li>
  * </ul>
 */
 filterMPALL.reset();
 assertFalse(filterMPALL.filterAllRemaining());
 byte [] rowkey = Bytes.toBytes("yyyyyyyyy");
 for (int i = 0; i < MAX_PAGES - 1; i++) {
  assertFalse(filterMPALL.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
  KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
   Bytes.toBytes(i));
  assertTrue(Filter.ReturnCode.INCLUDE == filterMPALL.filterCell(kv));
 }
 filterMPALL.reset();
 rowkey = Bytes.toBytes("z");
 assertTrue(filterMPALL.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
 // Should fail here; row should be filtered out.
 KeyValue kv = new KeyValue(rowkey, rowkey, rowkey, rowkey);
 assertTrue(Filter.ReturnCode.NEXT_ROW == filterMPALL.filterCell(kv));
}

代码示例来源:origin: apache/hbase

assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
 KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
  Bytes.toBytes(i));
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(0),
  Bytes.toBytes(0));
assertTrue(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(0),
  Bytes.toBytes(0));
assertTrue(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
assertTrue(filterMPONE.filterAllRemaining());

代码示例来源:origin: apache/hbase

assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
  Bytes.toBytes(i));
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
  Bytes.toBytes(i));
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
  Bytes.toBytes(i));

代码示例来源:origin: org.apache.hbase/hbase-client

@Override
public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
 boolean value = filter.filterRowKey(buffer, offset, length);
 changeFAR(value);
 return value;
}

代码示例来源:origin: org.apache.hbase/hbase-client

@Override
public boolean filterRowKey(Cell cell) throws IOException {
 if (filterAllRemaining()) return true;
 boolean value = filter.filterRowKey(cell);
 changeFAR(value);
 return value;
}

代码示例来源:origin: org.apache.hbase/hbase-client

@Override
public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException {
 if (isEmpty()) {
  return super.filterRowKey(rowKey, offset, length);
 }
 boolean retVal = true;
 for (int i = 0, n = filters.size(); i < n; i++) {
  Filter filter = filters.get(i);
  if (!filter.filterAllRemaining() && !filter.filterRowKey(rowKey, offset, length)) {
   retVal = false;
  }
 }
 return retVal;
}

相关文章