You could do this fairly efficiently by leveraging the CountingIterator to get an exact count (taking visibilities into account, as well) for the range in question. It isn't going to be as fast as a precomputed answer, but you could cache that easily.

The fact that visibilities will affect the cardinality of a term makes it harder for us to provide this within Accumulo. The situations where Accumulo itself cares about cardinality, it's agnostic of the visibilities. It would be possible to try to build an index of this information internally, but, like Eric said, that's not there today.

On 6/27/14, 10:40 AM, Eric Newton wrote:
Short answer: no.

Long answer:

You can scan the metadata table for the count/size of the files.

You can query tablet servers for the basic stats of every tablet for a
given table.  This is used for balancing.

But really you should collect the statistics you want during ingest and
insert them in another table.

-Eric


On Fri, Jun 27, 2014 at 9:42 AM, Jamie Stephens <[email protected]
<mailto:[email protected]>> wrote:

    Is there a way to get a quick estimate of the number of keys in a
    given range?

    Perhaps more generally, getting an estimate of the amount of work
    (and even some sort of confidence based on, say, the age of
    something) to iterate over a range.

    I'd like to do some query planning, so statistics like these sure
    would be nice.

    --Jamie


Reply via email to