org.apache.accumulo.core.client.ScannerBase

Here are the examples of the java api class org.apache.accumulo.core.client.ScannerBase taken from open source projects.

1. AccumuloTemporalIndexer#queryInstantInsideInterval()

Project: incubator-rya
File: AccumuloTemporalIndexer.java
/**
     * Get instances inside a given interval.
     * Returns after interval's beginning time, and before ending time,
     * exclusive (don't match the beginning and ending).
     */
@Override
public CloseableIteration<Statement, QueryEvaluationException> queryInstantInsideInterval(TemporalInterval queryInterval, StatementContraints constraints) throws QueryEvaluationException {
    // get rows where the time is after the given interval's beginning time and before the ending time.
    final TemporalInterval theQueryInterval = queryInterval;
    Query query = new Query() {

        private final TemporalInterval queryInterval = theQueryInterval;

        @Override
        public Range getRange(KeyParts keyParts) {
            Text start = Range.followingPrefix(new Text(keyParts.getQueryKey(queryInterval.getHasBeginning())));
            // <-- end specific logic
            Text endAt = new Text(keyParts.getQueryKey(queryInterval.getHasEnd()));
            //System.out.println("Scanning queryInstantInsideInterval: from excluding:" + KeyParts.toHumanString(start) + " up to:" + KeyParts.toHumanString(endAt));
            return new Range(start, false, endAt, false);
        }
    };
    ScannerBase scanner = query.doQuery(queryInterval.getHasBeginning(), constraints);
    return getContextIteratorWrapper(scanner, constraints.getContext());
}

2. AccumuloTemporalIndexer#queryInstantAfterInstant()

Project: incubator-rya
File: AccumuloTemporalIndexer.java
/**
     * get statements where the date object is after the given queryInstant.
     */
@Override
public CloseableIteration<Statement, QueryEvaluationException> queryInstantAfterInstant(TemporalInstant queryInstant, StatementContraints constraints) throws QueryEvaluationException {
    Query query = new Query() {

        @Override
        public Range getRange(KeyParts keyParts) {
            // <-- specific logic
            Text start = Range.followingPrefix(keyParts.getQueryKey());
            // no constraints							 // <-- specific logic
            Text endAt = null;
            if (// Yes, has constraints
            keyParts.constraintPrefix != null)
                endAt = Range.followingPrefix(keyParts.constraintPrefix);
            //System.out.println("Scanning queryInstantAfterInstant from after:" + KeyParts.toHumanString(start) + " up to:" + KeyParts.toHumanString(endAt));
            return new Range(start, true, endAt, false);
        }
    };
    ScannerBase scanner = query.doQuery(queryInstant, constraints);
    return getContextIteratorWrapper(scanner, constraints.getContext());
}

3. AccumuloTemporalIndexer#queryInstantBeforeInstant()

Project: incubator-rya
File: AccumuloTemporalIndexer.java
/**
     * get statements where the db row ID is BEFORE the given queryInstant.
     */
@Override
public CloseableIteration<Statement, QueryEvaluationException> queryInstantBeforeInstant(TemporalInstant queryInstant, StatementContraints constraints) throws QueryEvaluationException {
    // get rows where the repository time is before the given time.
    Query query = new Query() {

        @Override
        public Range getRange(KeyParts keyParts) {
            Text start = null;
            if (// Yes, has constraints
            keyParts.constraintPrefix != null)
                // <-- start specific logic
                start = keyParts.constraintPrefix;
            else
                start = new Text(KeyParts.HASH_PREFIX_FOLLOWING);
            // <-- end specific logic
            Text endAt = keyParts.getQueryKey();
            //System.out.println("Scanning queryInstantBeforeInstant: from:" + KeyParts.toHumanString(start) + " up to:" + KeyParts.toHumanString(endAt));
            return new Range(start, true, endAt, false);
        }
    };
    ScannerBase scanner = query.doQuery(queryInstant, constraints);
    return getContextIteratorWrapper(scanner, constraints.getContext());
}

4. AccumuloTemporalIndexer#queryInstantEqualsInstant()

Project: incubator-rya
File: AccumuloTemporalIndexer.java
/**
     * statements where the datetime is exactly the same as the queryInstant.
     */
@Override
public CloseableIteration<Statement, QueryEvaluationException> queryInstantEqualsInstant(TemporalInstant queryInstant, StatementContraints constraints) throws QueryEvaluationException {
    // get rows where the repository time is equal to the given time in queryInstant.
    Query query = new Query() {

        @Override
        public Range getRange(KeyParts keyParts) {
            // <-- specific logic
            return Range.prefix(keyParts.getQueryKey());
        }
    };
    ScannerBase scanner = query.doQuery(queryInstant, constraints);
    // TODO currently context constraints are filtered on the client.
    return getContextIteratorWrapper(scanner, constraints.getContext());
}

5. AbstractAccumuloRowQuery#query()

Project: geowave
File: AbstractAccumuloRowQuery.java
public CloseableIterator<T> query(final AccumuloOperations accumuloOperations, final double[] maxResolutionSubsamplingPerDimension, final AdapterStore adapterStore) {
    final ScannerBase scanner = getScanner(accumuloOperations, maxResolutionSubsamplingPerDimension, getScannerLimit());
    if (scanner == null) {
        LOGGER.error("Unable to get a new scanner instance, getScanner returned null");
        return null;
    }
    addScanIteratorSettings(scanner);
    return new CloseableIteratorWrapper<T>(new ScannerClosableWrapper(scanner), new EntryIteratorWrapper(adapterStore, index, scanner.iterator(), null, this.scanCallback));
}

6. AccumuloQuery#getScanner()

Project: geowave
File: AccumuloQuery.java
protected ScannerBase getScanner(final AccumuloOperations accumuloOperations, final double[] maxResolutionSubsamplingPerDimension, final Integer limit) {
    final List<ByteArrayRange> ranges = getRanges();
    final String tableName = StringUtils.stringFromBinary(index.getId().getBytes());
    ScannerBase scanner;
    try {
        if (!isAggregation() && (ranges != null) && (ranges.size() == 1)) {
            scanner = accumuloOperations.createScanner(tableName, getAdditionalAuthorizations());
            final ByteArrayRange r = ranges.get(0);
            if (r.isSingleValue()) {
                ((Scanner) scanner).setRange(Range.exact(new Text(r.getStart().getBytes())));
            } else {
                ((Scanner) scanner).setRange(AccumuloUtils.byteArrayRangeToAccumuloRange(r));
            }
            if ((limit != null) && (limit > 0) && (limit < ((Scanner) scanner).getBatchSize())) {
                // do allow the limit to be set to some enormous size.
                ((Scanner) scanner).setBatchSize(Math.min(1024, limit));
            }
        } else {
            scanner = accumuloOperations.createBatchScanner(tableName, getAdditionalAuthorizations());
            ((BatchScanner) scanner).setRanges(AccumuloUtils.byteArrayRangesToAccumuloRanges(ranges));
        }
        if (maxResolutionSubsamplingPerDimension != null) {
            if (maxResolutionSubsamplingPerDimension.length != index.getIndexStrategy().getOrderedDimensionDefinitions().length) {
                LOGGER.warn("Unable to subsample for table '" + tableName + "'. Subsample dimensions = " + maxResolutionSubsamplingPerDimension.length + " when indexed dimensions = " + index.getIndexStrategy().getOrderedDimensionDefinitions().length);
            } else {
                final int cardinalityToSubsample = (int) Math.round(IndexUtils.getDimensionalBitsUsed(index.getIndexStrategy(), maxResolutionSubsamplingPerDimension) + (8 * index.getIndexStrategy().getByteOffsetFromDimensionalIndex()));
                final IteratorSetting iteratorSettings = new IteratorSetting(FixedCardinalitySkippingIterator.CARDINALITY_SKIPPING_ITERATOR_PRIORITY, FixedCardinalitySkippingIterator.CARDINALITY_SKIPPING_ITERATOR_NAME, FixedCardinalitySkippingIterator.class);
                iteratorSettings.addOption(FixedCardinalitySkippingIterator.CARDINALITY_SKIP_INTERVAL, Integer.toString(cardinalityToSubsample));
                scanner.addScanIterator(iteratorSettings);
            }
        }
    } catch (final TableNotFoundException e) {
        LOGGER.warn("Unable to query table '" + tableName + "'.  Table does not exist.", e);
        return null;
    }
    if ((adapterIds != null) && !adapterIds.isEmpty()) {
        for (final ByteArrayId adapterId : adapterIds) {
            scanner.fetchColumnFamily(new Text(adapterId.getBytes()));
        }
    }
    return scanner;
}

7. AccumuloFilteredIndexQuery#query()

Project: geowave
File: AccumuloFilteredIndexQuery.java
@SuppressWarnings("rawtypes")
public CloseableIterator<Object> query(final AccumuloOperations accumuloOperations, final AdapterStore adapterStore, final double[] maxResolutionSubsamplingPerDimension, final Integer limit) {
    if (!accumuloOperations.tableExists(StringUtils.stringFromBinary(index.getId().getBytes()))) {
        LOGGER.warn("Table does not exist " + StringUtils.stringFromBinary(index.getId().getBytes()));
        return new CloseableIterator.Empty();
    }
    final ScannerBase scanner = getScanner(accumuloOperations, maxResolutionSubsamplingPerDimension, limit);
    if (scanner == null) {
        LOGGER.error("Could not get scanner instance, getScanner returned null");
        return new CloseableIterator.Empty();
    }
    addScanIteratorSettings(scanner);
    Iterator it = initIterator(adapterStore, scanner);
    if ((limit != null) && (limit > 0)) {
        it = Iterators.limit(it, limit);
    }
    return new CloseableIteratorWrapper(new ScannerClosableWrapper(scanner), it);
}