Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-4435

Add Group By functionality using Coprocessors

    XMLWordPrintableJSON

Details

    Description

      Adds in a Group By -like functionality to HBase, using the Coprocessor framework.

      It provides the ability to group the result set on one or more columns (groupBy families). It computes statistics (max, min, sum, count, sum of squares, number missing) for a second column, called the stats column.

      To use, I've provided two implementations.

      1. In the first, you specify a single group-by column and a stats field:

      statsMap = gbc.getStats(tableName, scan, groupByFamily, groupByQualifier, statsFamily, statsQualifier, statsFieldColumnInterpreter);

      The result is a map with the Group By column value (as a String) to a GroupByStatsValues object. The GroupByStatsValues object has max,min,sum etc. of the stats column for that group.

      2. The second implementation allows you to specify a list of group-by columns and a stats field. The List of group-by columns is expected to contain lists of

      {column family, qualifier}

      pairs.

      statsMap = gbc.getStats(tableName, scan, listOfGroupByColumns, statsFamily, statsQualifier, statsFieldColumnInterpreter);

      The GroupByStatsValues code is adapted from the Solr Stats component.

      Attachments

        1. HBase-4435.patch
          29 kB
          Nichole Treadway
        2. HBASE-4435-v2.patch
          52 kB
          Aaron Tokhy

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kntreadway Nichole Treadway
              Votes:
              2 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: