public interface ScannerBase extends Iterable<Map.Entry<Key,Value>>
Modifier and Type | Method and Description |
---|---|
void |
addScanIterator(IteratorSetting cfg)
Add a server-side scan iterator.
|
void |
clearColumns()
Clears the columns to be fetched (useful for resetting the scanner for reuse).
|
void |
clearScanIterators()
Clears scan iterators prior to returning a scanner to the pool.
|
void |
close()
Closes any underlying connections on the scanner
|
void |
fetchColumn(IteratorSetting.Column column)
Adds a column to the list of columns that will be fetch by this scanner.
|
void |
fetchColumn(org.apache.hadoop.io.Text colFam,
org.apache.hadoop.io.Text colQual)
Adds a column to the list of columns that will be fetched by this scanner.
|
void |
fetchColumnFamily(org.apache.hadoop.io.Text col)
Adds a column family to the list of columns that will be fetched by this scanner.
|
Authorizations |
getAuthorizations()
Returns the authorizations that have been set on the scanner
|
long |
getTimeout(TimeUnit timeUnit)
Returns the setting for how long a scanner will automatically retry when a failure occurs.
|
Iterator<Map.Entry<Key,Value>> |
iterator()
Returns an iterator over an accumulo table.
|
void |
removeScanIterator(String iteratorName)
Remove an iterator from the list of iterators.
|
void |
setTimeout(long timeOut,
TimeUnit timeUnit)
This setting determines how long a scanner will automatically retry when a failure occurs.
|
void |
updateScanIteratorOption(String iteratorName,
String key,
String value)
Update the options for an iterator.
|
forEach, spliterator
void addScanIterator(IteratorSetting cfg)
cfg
- fully specified scan-time iterator, including all options for the iterator. Any changes to the iterator setting after this call are not propagated
to the stored iterator.IllegalArgumentException
- if the setting conflicts with existing iteratorsvoid removeScanIterator(String iteratorName)
iteratorName
- nickname used for the iteratorvoid updateScanIteratorOption(String iteratorName, String key, String value)
iteratorName
- the name of the iterator to changekey
- the name of the optionvalue
- the new value for the named optionvoid fetchColumnFamily(org.apache.hadoop.io.Text col)
Adds a column family to the list of columns that will be fetched by this scanner. By default when no columns have been added the scanner fetches all columns. To fetch multiple column families call this function multiple times.
This can help limit which locality groups are read on the server side.
When used in conjunction with custom iterators, the set of column families fetched is passed to the top iterator's seek method. Custom iterators may change this set of column families when calling seek on their source.
col
- the column family to be fetchedvoid fetchColumn(org.apache.hadoop.io.Text colFam, org.apache.hadoop.io.Text colQual)
Adds a column to the list of columns that will be fetched by this scanner. The column is identified by family and qualifier. By default when no columns have been added the scanner fetches all columns.
WARNING. Using this method with custom iterators may have unexpected results. Iterators have control over which column families are fetched. However iterators have no control over which column qualifiers are fetched. When this method is called it activates a system iterator that only allows the requested family/qualifier pairs through. This low level filtering prevents custom iterators from requesting additional column families when calling seek.
For an example, assume fetchColumns(A, Q1) and fetchColumns(B,Q1) is called on a scanner and a custom iterator is configured. The families (A,B) will be passed to the seek method of the custom iterator. If the custom iterator seeks its source iterator using the families (A,B,C), it will never see any data from C because the system iterator filtering A:Q1 and B:Q1 will prevent the C family from getting through. ACCUMULO-3905 also has an example of the type of problem this method can cause.
tl;dr If using a custom iterator with a seek method that adds column families, then may want to avoid using this method.
colFam
- the column family of the column to be fetchedcolQual
- the column qualifier of the column to be fetchedvoid fetchColumn(IteratorSetting.Column column)
column
- the IteratorSetting.Column
to fetchvoid clearColumns()
void clearScanIterators()
Iterator<Map.Entry<Key,Value>> iterator()
Keys returned by the iterator are not guaranteed to be in sorted order.
void setTimeout(long timeOut, TimeUnit timeUnit)
Setting the timeout to zero (with any time unit) or Long.MAX_VALUE
(with TimeUnit.MILLISECONDS
) means no timeout.
timeOut
- the length of the timeouttimeUnit
- the units of the timeoutlong getTimeout(TimeUnit timeUnit)
void close()
Authorizations getAuthorizations()
Copyright © 2011–2018 The Apache Software Foundation. All rights reserved.