The PARQUET_DICTIONARY_FILTERING
query option controls whether Impala
uses dictionary filtering for Parquet files.
To efficiently process a highly selective scan query, when this option is enabled, Impala checks the values in the Parquet dictionary page and determines if the whole row group can be thrown out.
encoding_stats
is in the Parquet file, dictionary filtering
uses it to determine if there are only dictionary encoded pages (i.e. there are no
data pages with an encoding other than RLE_DICTIONARY
or
PLAIN_DICTIONARY
).
PLAIN_DICTIONARY
or RLE_DICTIONARY
is present.
PLAIN_DICTIONARY
, RLE_DICTIONARY
,
RLE
, or BIT_PACKED
encodings are listed.
In the query runtime profile output for each Impalad instance, the
NumDictFilteredRowGroups
field in the SCAN node section shows the number
of row groups that were skipped based on dictionary filtering.
Note that row groups can be filtered out by Parquet statistics, and in such cases, dictionary filtering will not be considered.
true
(1
): Use dictionary filtering.
false
(0
): Do not use dictionary filtering
false
.
Type: Boolean
Default: true
(1
)
Added in: Impala 2.9.0