Details
-
Improvement
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
0.14.0
-
None
-
None
Description
Currently, the HiveHBaseTableInputFormat only supports running a single scan. This can be less efficient than running multiple disjoint scans in certain cases, particularly when using a composite row key. For instance, given a row key schema of:
struct<bucket int, time timestamp>
if one wants to push down the predicate:
bucket IN (1, 10, 100) AND timestamp >= 1408333927 AND timestamp < 1408506670
it's much more efficient to run a scan for each bucket over the time range (particularly if there's a large amount of data per day). With a single scan, the MR job has to process the data for all time for buckets in between 1 and 100.
hive should allow HBaseKeyFactory's to decompose a predicate into one or more scans in order to take advantage of this fact.