當前位置: 首頁>>代碼示例>>Java>>正文


Java CompareFilter.CompareOp方法代碼示例

本文整理匯總了Java中org.apache.hadoop.hbase.filter.CompareFilter.CompareOp方法的典型用法代碼示例。如果您正苦於以下問題:Java CompareFilter.CompareOp方法的具體用法?Java CompareFilter.CompareOp怎麽用?Java CompareFilter.CompareOp使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.hadoop.hbase.filter.CompareFilter的用法示例。


在下文中一共展示了CompareFilter.CompareOp方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: checkAndDelete

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value, Delete delete) throws IOException {
    if (!Arrays.equals(delete.getRow(), row)) {
        throw new UnsupportedOperationException("CheckAndDelete does not support check one row but delete other row");
    }


    ODelete odelete = ElementConvertor.toOtsDelete(delete, this.tablestoreColumnMapping);
    Condition condition = ElementConvertor.toOtsCondition(family, qualifier, compareOp, value, this.tablestoreColumnMapping);
    odelete.setCondition(condition);

    try {
        this.tablestoreAdaptor.delete(tableNameStr, odelete);
    } catch (IOException ex) {
        if (ex.getCause().getCause() instanceof TableStoreException) {
            TableStoreException exception = (TableStoreException)ex.getCause().getCause();
            if (exception.getErrorCode().equals("OTSConditionCheckFail")) {
                return false;
            }
        }
        throw ex;
    }
    return true;
}
 
開發者ID:aliyun,項目名稱:aliyun-tablestore-hbase-client,代碼行數:25,代碼來源:TablestoreTable.java

示例2: checkAndPut

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value, Put put) throws IOException {
    if (!Arrays.equals(put.getRow(), row)) {
        throw new UnsupportedOperationException("CheckAndPut does not support check one row but put other row");
    }

    OPut oput = ElementConvertor.toOtsPut(put, this.tablestoreColumnMapping);
    Condition condition = ElementConvertor.toOtsCondition(family, qualifier, compareOp, value, this.tablestoreColumnMapping);
    oput.setCondition(condition);

    try {
        this.tablestoreAdaptor.put(tableNameStr, oput);
    } catch (IOException ex) {
        if (ex.getCause().getCause() instanceof TableStoreException) {
            TableStoreException exception = (TableStoreException)ex.getCause().getCause();
            if (exception.getErrorCode().equals("OTSConditionCheckFail")) {
                return false;
            }
        }
        throw ex;
    }
    return true;
}
 
開發者ID:aliyun,項目名稱:aliyun-tablestore-hbase-client,代碼行數:24,代碼來源:TablestoreTable.java

示例3: checkAndMutate

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value, RowMutations mutation) throws IOException {
    if (!Arrays.equals(mutation.getRow(), row)) {
        throw new UnsupportedOperationException("CheckAndMutation does not support check one row but Mutate other row");
    }

    OUpdate oupdate = ElementConvertor.toOtsUpdate(mutation, this.tablestoreColumnMapping);
    Condition condition = ElementConvertor.toOtsCondition(family, qualifier, compareOp, value, this.tablestoreColumnMapping);
    oupdate.setCondition(condition);

    try {
        this.tablestoreAdaptor.update(tableNameStr, oupdate);
    } catch (IOException ex) {
        if (ex.getCause().getCause() instanceof TableStoreException) {
            TableStoreException exception = (TableStoreException)ex.getCause().getCause();
            if (exception.getErrorCode().equals("OTSConditionCheckFail")) {
                return false;
            }
        }
        throw ex;
    }
    return true;
}
 
開發者ID:aliyun,項目名稱:aliyun-tablestore-hbase-client,代碼行數:24,代碼來源:TablestoreTable.java

示例4: doRawScan

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
private void doRawScan() throws IOException {
  FilterList filterList = new FilterList();
  CompareFilter.CompareOp startOp = CompareFilter.CompareOp.GREATER_OR_EQUAL;
  CompareFilter.CompareOp stopOp = CompareFilter.CompareOp.LESS_OR_EQUAL;
  for (int i = 0; i < indexColumnNames.length && i < scanValues.length; i++) {
    filterList.addFilter(
        new SingleColumnValueFilter(familyName, Bytes.toBytes(indexColumnNames[i]), startOp,
            Bytes.toBytes(scanValues[i][0])));
    filterList.addFilter(
        new SingleColumnValueFilter(familyName, Bytes.toBytes(indexColumnNames[i]), stopOp,
            Bytes.toBytes(scanValues[i][1])));
  }
  Scan scan = new Scan();
  scan.setFilter(filterList);
  scan.setId("raw-scan");
  Table table = conn.getTable(tableName);
  ResultScanner scanner = table.getScanner(scan);
  Result result;
  int count = 0;
  while ((result = scanner.next()) != null) {
    ++count;
    if (PRINT_RESULT) printResult(result);
  }
  scanner.close();
  System.out.println("raw scan has " + count + " records");
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:27,代碼來源:LMDTester.java

示例5: preCheckAndPutAfterRowLock

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean preCheckAndPutAfterRowLock(final ObserverContext<RegionCoprocessorEnvironment> c,
    final byte[] row, final byte[] family, final byte[] qualifier,
    final CompareFilter.CompareOp compareOp, final ByteArrayComparable comparator, final Put put,
    final boolean result) throws IOException {
  if (put.getAttribute(CHECK_COVERING_PERM) != null) {
    // We had failure with table, cf and q perm checks and now giving a chance for cell
    // perm check
    TableName table = c.getEnvironment().getRegion().getRegionInfo().getTable();
    Map<byte[], ? extends Collection<byte[]>> families = makeFamilyMap(family, qualifier);
    AuthResult authResult = null;
    if (checkCoveringPermission(OpType.CHECK_AND_PUT, c.getEnvironment(), row, families,
        HConstants.LATEST_TIMESTAMP, Action.READ)) {
      authResult = AuthResult.allow(OpType.CHECK_AND_PUT.toString(), "Covering cell set",
          getActiveUser(), Action.READ, table, families);
    } else {
      authResult = AuthResult.deny(OpType.CHECK_AND_PUT.toString(), "Covering cell set",
          getActiveUser(), Action.READ, table, families);
    }
    logResult(authResult);
    if (authorizationEnabled && !authResult.isAllowed()) {
      throw new AccessDeniedException("Insufficient permissions " + authResult.toContextString());
    }
  }
  return result;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:27,代碼來源:AccessController.java

示例6: getCompare

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
protected CompareFilter.CompareOp getCompare(Where where) {
    if (where == Where.Equals)
        return CompareFilter.CompareOp.EQUAL;

    if (where == Where.NotEquals)
        return CompareFilter.CompareOp.NOT_EQUAL;

    if (where == Where.Less)
        return CompareFilter.CompareOp.LESS;

    if (where == Where.LessEquals)
        return CompareFilter.CompareOp.LESS_OR_EQUAL;

    if (where == Where.Greater)
        return CompareFilter.CompareOp.GREATER;

    if (where == Where.GreaterEquals)
        return CompareFilter.CompareOp.GREATER_OR_EQUAL;

    return CompareFilter.CompareOp.EQUAL;
}
 
開發者ID:heisedebaise,項目名稱:tephra,代碼行數:22,代碼來源:HbaseQuery.java

示例7: preCheckAndPutAfterRowLock

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean preCheckAndPutAfterRowLock(final ObserverContext<RegionCoprocessorEnvironment> c,
    final byte[] row, final byte[] family, final byte[] qualifier,
    final CompareFilter.CompareOp compareOp, final ByteArrayComparable comparator, final Put put,
    final boolean result) throws IOException {
  if (put.getAttribute(CHECK_COVERING_PERM) != null) {
    // We had failure with table, cf and q perm checks and now giving a chance for cell
    // perm check
    TableName table = c.getEnvironment().getRegion().getRegionInfo().getTable();
    Map<byte[], ? extends Collection<byte[]>> families = makeFamilyMap(family, qualifier);
    AuthResult authResult = null;
    if (checkCoveringPermission(OpType.CHECK_AND_PUT, c.getEnvironment(), row, families,
        HConstants.LATEST_TIMESTAMP, Action.READ)) {
      authResult = AuthResult.allow(OpType.CHECK_AND_PUT.toString(), "Covering cell set",
          getActiveUser(), Action.READ, table, families);
    } else {
      authResult = AuthResult.deny(OpType.CHECK_AND_PUT.toString(), "Covering cell set",
          getActiveUser(), Action.READ, table, families);
    }
    logResult(authResult);
    if (!authResult.isAllowed()) {
      throw new AccessDeniedException("Insufficient permissions " + authResult.toContextString());
    }
  }
  return result;
}
 
開發者ID:grokcoder,項目名稱:pbase,代碼行數:27,代碼來源:AccessController.java

示例8: checkAndPut

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
private boolean checkAndPut(MutationProto mutation, Condition condition) throws IOException {
  boolean success;
  final byte[] row = condition.getRow().array();
  final byte[] cf = condition.getFamily().array();
  final byte[] cq = condition.getQualifier().array();

  final CompareFilter.CompareOp compareOp = CompareFilter.CompareOp.valueOf(condition.getCompareType().name());
  final ByteArrayComparable comparator = ReverseProtobufUtil.toComparator(condition.getComparator());

  success = theRegion.checkAndMutate(row,
      cf,
      cq,
      compareOp,
      comparator,
      ReverseProtobufUtil.toPut(mutation),
      true);
  return success;
}
 
開發者ID:cloud-software-foundation,項目名稱:c5,代碼行數:19,代碼來源:HRegionBridge.java

示例9: checkAndDelete

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
private boolean checkAndDelete(MutationProto mutation, Condition condition) throws IOException {
  boolean success;
  final byte[] row = condition.getRow().array();
  final byte[] cf = condition.getFamily().array();
  final byte[] cq = condition.getQualifier().array();

  final CompareFilter.CompareOp compareOp = CompareFilter.CompareOp.valueOf(condition.getCompareType().name());
  final ByteArrayComparable comparator = ReverseProtobufUtil.toComparator(condition.getComparator());

  success = theRegion.checkAndMutate(row,
      cf,
      cq,
      compareOp,
      comparator,
      ReverseProtobufUtil.toDelete(mutation),
      true);
  return success;
}
 
開發者ID:cloud-software-foundation,項目名稱:c5,代碼行數:19,代碼來源:HRegionBridge.java

示例10: SingleFieldEntityFilter

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
public SingleFieldEntityFilter(EntitySchema entitySchema,
    EntitySerDe<?> entitySerDe, String fieldName, Object filterValue,
    CompareFilter.CompareOp equalityOperator) {
  FieldMapping fieldMapping = entitySchema.getFieldMapping(fieldName);
  if (fieldMapping.getMappingType() != MappingType.COLUMN) {
    throw new DatasetException(
        "SingleColumnValueFilter only compatible with COLUMN mapping types.");
  }

  byte[] family = fieldMapping.getFamily();
  byte[] qualifier = fieldMapping.getQualifier();
  byte[] comparisonBytes = entitySerDe.serializeColumnValueToBytes(fieldName,
      filterValue);

  this.filter = new SingleColumnValueFilter(family, qualifier,
      equalityOperator, comparisonBytes);
}
 
開發者ID:cloudera,項目名稱:cdk,代碼行數:18,代碼來源:SingleFieldEntityFilter.java

示例11: doIndexScan

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
private void doIndexScan() throws IOException {
  ScanRange.ScanRangeList rangeList = new ScanRange.ScanRangeList();
  FilterList filterList = new FilterList();
  CompareFilter.CompareOp startOp = CompareFilter.CompareOp.GREATER_OR_EQUAL;
  CompareFilter.CompareOp stopOp = CompareFilter.CompareOp.LESS_OR_EQUAL;
  for (int i = 0; i < indexColumnNames.length && i < scanValues.length; i++) {
    rangeList.addScanRange(new ScanRange(familyName, Bytes.toBytes(indexColumnNames[i]),
        Bytes.toBytes(scanValues[i][0]), Bytes.toBytes(scanValues[i][1]), startOp, stopOp,
        DataType.INT));
    filterList.addFilter(
        new SingleColumnValueFilter(familyName, Bytes.toBytes(indexColumnNames[i]), startOp,
            Bytes.toBytes(scanValues[i][0])));
    filterList.addFilter(
        new SingleColumnValueFilter(familyName, Bytes.toBytes(indexColumnNames[i]), stopOp,
            Bytes.toBytes(scanValues[i][1])));
  }
  Scan scan = new Scan();
  scan.setFilter(filterList);
  if (rangeList.getRanges().size() > 0) {
    scan.setAttribute(ScanRange.SCAN_RANGE_ATTRIBUTE_STR, rangeList.toBytesAttribute());
  }
  scan.setId("LMD-scan");
  scan.setCaching(1);
  ResultScanner scanner = BaseIndexScanner.getIndexScanner(conn, relation, scan);
  Result result;
  int count = 0;
  while ((result = scanner.next()) != null) {
    count++;
    if (PRINT_RESULT) printResult(result);
  }
  scanner.close();
  System.out.println("LMDIndex scan has " + count + " records");
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:34,代碼來源:LMDTester.java

示例12: preCheckAndPut

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean preCheckAndPut(final ObserverContext<RegionCoprocessorEnvironment> c,
    final byte [] row, final byte [] family, final byte [] qualifier,
    final CompareFilter.CompareOp compareOp,
    final ByteArrayComparable comparator, final Put put,
    final boolean result) throws IOException {
  User user = getActiveUser();
  checkForReservedTagPresence(user, put);

  // Require READ and WRITE permissions on the table, CF, and KV to update
  RegionCoprocessorEnvironment env = c.getEnvironment();
  Map<byte[],? extends Collection<byte[]>> families = makeFamilyMap(family, qualifier);
  AuthResult authResult = permissionGranted(OpType.CHECK_AND_PUT, user, env, families,
    Action.READ, Action.WRITE);
  logResult(authResult);
  if (!authResult.isAllowed()) {
    if (cellFeaturesEnabled && !compatibleEarlyTermination) {
      put.setAttribute(CHECK_COVERING_PERM, TRUE);
    } else if (authorizationEnabled) {
      throw new AccessDeniedException("Insufficient permissions " +
        authResult.toContextString());
    }
  }

  byte[] bytes = put.getAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL);
  if (bytes != null) {
    if (cellFeaturesEnabled) {
      addCellPermissions(bytes, put.getFamilyCellMap());
    } else {
      throw new DoNotRetryIOException("Cell ACLs cannot be persisted");
    }
  }
  return result;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:35,代碼來源:AccessController.java

示例13: preCheckAndDelete

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean preCheckAndDelete(final ObserverContext<RegionCoprocessorEnvironment> c,
    final byte [] row, final byte [] family, final byte [] qualifier,
    final CompareFilter.CompareOp compareOp,
    final ByteArrayComparable comparator, final Delete delete,
    final boolean result) throws IOException {
  // An ACL on a delete is useless, we shouldn't allow it
  if (delete.getAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL) != null) {
    throw new DoNotRetryIOException("ACL on checkAndDelete has no effect: " +
        delete.toString());
  }
  // Require READ and WRITE permissions on the table, CF, and the KV covered
  // by the delete
  RegionCoprocessorEnvironment env = c.getEnvironment();
  Map<byte[],? extends Collection<byte[]>> families = makeFamilyMap(family, qualifier);
  User user = getActiveUser();
  AuthResult authResult = permissionGranted(OpType.CHECK_AND_DELETE, user, env, families,
    Action.READ, Action.WRITE);
  logResult(authResult);
  if (!authResult.isAllowed()) {
    if (cellFeaturesEnabled && !compatibleEarlyTermination) {
      delete.setAttribute(CHECK_COVERING_PERM, TRUE);
    } else if (authorizationEnabled) {
      throw new AccessDeniedException("Insufficient permissions " +
        authResult.toContextString());
    }
  }
  return result;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:30,代碼來源:AccessController.java

示例14: preCheckAndDeleteAfterRowLock

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
@Override
public boolean preCheckAndDeleteAfterRowLock(
    final ObserverContext<RegionCoprocessorEnvironment> c, final byte[] row, final byte[] family,
    final byte[] qualifier, final CompareFilter.CompareOp compareOp,
    final ByteArrayComparable comparator, final Delete delete, final boolean result)
    throws IOException {
  if (delete.getAttribute(CHECK_COVERING_PERM) != null) {
    // We had failure with table, cf and q perm checks and now giving a chance for cell
    // perm check
    TableName table = c.getEnvironment().getRegion().getRegionInfo().getTable();
    Map<byte[], ? extends Collection<byte[]>> families = makeFamilyMap(family, qualifier);
    AuthResult authResult = null;
    if (checkCoveringPermission(OpType.CHECK_AND_DELETE, c.getEnvironment(), row, families,
        HConstants.LATEST_TIMESTAMP, Action.READ)) {
      authResult = AuthResult.allow(OpType.CHECK_AND_DELETE.toString(), "Covering cell set",
          getActiveUser(), Action.READ, table, families);
    } else {
      authResult = AuthResult.deny(OpType.CHECK_AND_DELETE.toString(), "Covering cell set",
          getActiveUser(), Action.READ, table, families);
    }
    logResult(authResult);
    if (authorizationEnabled && !authResult.isAllowed()) {
      throw new AccessDeniedException("Insufficient permissions " + authResult.toContextString());
    }
  }
  return result;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:28,代碼來源:AccessController.java

示例15: ScanRange

import org.apache.hadoop.hbase.filter.CompareFilter; //導入方法依賴的package包/類
public ScanRange(byte[] family, byte[] qualifier, byte[] start, byte[] stop,
    CompareFilter.CompareOp startOp, CompareFilter.CompareOp stopOp, long startTs, long stopTs,
    DataType dataType) {
  this.family = family;
  this.qualifier = qualifier;
  this.start = start;
  this.stop = stop;
  this.startOp = startOp;
  this.stopOp = stopOp;
  this.startTs = startTs;
  this.stopTs = stopTs;
  this.dataType = dataType;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:14,代碼來源:ScanRange.java


注:本文中的org.apache.hadoop.hbase.filter.CompareFilter.CompareOp方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。