Query vectorization

You can use vectorization to improve instruction pipelines and cache use. Vectorization enables certain data and queries to process batches of primitive types on the entire column rather than one row at a time.

Default vectorized query execution

CDP enables vectorization by default and the value of hive.vectorized.execution.enabled is set to true. Vectorized query execution processes Hive data in batch, channeling a large number of rows of data into columns, foregoing intermediate results. This technique is more efficient than the MapReduce execution process that stores temporary file.

Unsupported functionality on vectorized data

Some functionality is not supported on vectorized data:

  • DDL queries
  • DML queries other than single table, read-only queries
  • Formats other than Optimized Row Columnar (ORC)

Supported functionality on vectorized data

The following functionality is supported on vectorized data:

  • Single table, read-only queries

    Selecting, filtering, and grouping data is supported.

  • Partitioned tables
  • The following expressions:
    • Comparison: >, >=, <, <=, =, !=
    • Arithmetic plus, minus, multiply, divide, and modulo
    • Logical AND and OR
    • Aggregates sum, avg, count, min, and max

Supported data types

You can query data of the following types using vectorized queries:

  • tinyint
  • smallint
  • int
  • bigint
  • date
  • boolean
  • float
  • double
  • timestamp
  • stringchar
  • varchar
  • binary