HBase
  1. HBase
  2. HBASE-4435

Add Group By functionality using Coprocessors

    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.

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

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              Nichole Treadway
            • Votes:
              2 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

              • Created:
                Updated:

                Development