Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
v3.1.1
-
None
Description
When building with spark engine, the first step is to encode hive table's row to base cuboid data.
The existing implementation is encoding row by row. If the cube has several dictionary encoded measures, it has to use all dictionaries at the same time to encode a single row. This causes heavy memory usage, and low cache hit ratio of dictionary cache.
We optimized this case by encoding column by column, and it did bring significant improvement over cubes with several high cardinality dictionaries-encoded measures.
We will refine the implementation based on KYLIN3.x and share it out.