hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stack <st...@duboce.net>
Subject Re: Question/Suggestion: obtaining older versions of values
Date Mon, 26 Oct 2009 17:58:53 GMT
Doug, if you file an issue with the javadoc changes only, we can apply that
now ahead of hbase-1937.
Thanks,
St.Ack

On Mon, Oct 26, 2009 at 10:53 AM, Doug Meil
<doug.meil@explorysmedical.com>wrote:

> Hi Jonathan,
>
> The use-case in question is one column with multiple versions, either to
> table-display or plot (Y values over X timestamps), and since the insertion
> time into HBase is good enough for the X dimension, we don't need a second
> column.
>
> After digging through my test program per your suggestion, I realized the
> error of my ways.  The history *does* actually come back with the KeyValues
> when requested.  Doh!  I was so focused on this Javadoc comment from
> getMap() "Map of families to all versions of its qualifiers and values."
> that I focused on that method instead of realizing that the data was right
> in front of me with KeyValue.
>
> I do think that something like what you suggested
> "Result.getKeyValues(family, qualifier)" would still be useful for other
> versioned use-cases.
>
> I'd still suggest a few blurbs in the Result Javadoc on obtaining history
> (and that the methods that return KeyValues contain history when requested).
>  It's "obvious" now that I understand it, but not so obvious from the
> existing Javadoc.
>
> I'd be happy to help out with some of this documentation.
>
> Thanks!
>
>
> -----Original Message-----
> From: Jonathan Gray [mailto:jlist@streamy.com]
> Sent: Monday, October 26, 2009 12:13 PM
> To: hbase-user@hadoop.apache.org
> Subject: Re: Question/Suggestion: obtaining older versions of values
>
> Personally, when I need to dig into a complex result with multiple
> columns and versions, I iterate over the KeyValues directly rather than
> messing with the Map-based return formats from Result.
>
> In your example, are you just returning versions/values for a single
> column?  Maybe we could add some methods that returned subsets of the
> total set of KeyValues (for example, Result.getKeyValues(family,
> qualifier) would return all versions of that column in the result in
> KeyValue format).
>
> Going to drop a note in HBASE-1937.
>
> JG
>
> Doug Meil wrote:
> > Hi there-
> >
> > Question:  how does one obtain older versions of values from Result?
> >
> > As I understand it, the following Scan instance should return the last 5
> versions of values for a table, provided that the table is versioned.
> >
> >     Scan scan = new Scan();
> >     scan.setMaxVersions(5);
> >
> >>From the Javadoc, it looks like what I want is in here (from Result)....
> > getMap
> >
> > public NavigableMap<
> http://java.sun.com/javase/6/docs/api/java/util/NavigableMap.html?is-external=true
> ><byte[],NavigableMap<
> http://java.sun.com/javase/6/docs/api/java/util/NavigableMap.html?is-external=true
> ><byte[],NavigableMap<
> http://java.sun.com/javase/6/docs/api/java/util/NavigableMap.html?is-external=true
> ><Long<
> http://java.sun.com/javase/6/docs/api/java/lang/Long.html?is-external=true>,byte[]>>>
> getMap()
> > Map of families to all versions of its qualifiers and values.
> >
> > ...  but there is a fair amount of gymnastics involved to get the data.
> >
> > Suggestion:   can an example of iterating over this map (and contained
> maps) be added to the Javadoc?  Versioning is a powerful feature of HBase
> but using it isn't obvious in result processing.
> >
> > Thanks!
> >
> >
> > Doug Meil
> > Director of Engineering
> > doug.meil@explorys.net
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message