Using ACID Tables in Presto

Presto only supports reading ACID tables starting from Presto 317. Qubole supports Hive ACID transactions in Hive and Spark as well. Hive ACID Transactions describes how to get started with Hive ACID and other features that apply to all three query engines.

Required Setup describes the required setup for using ACID tables in Presto 317.

Note

Presto cannot perform compactions for aggregating delta directories that get created as a result of ACID operations. So, you must use the Hive maintenance cluster to perform compactions. For more information, see Compaction of Hive Transaction Delta Directories.

Qubole supports ACID tables written through UNION ALL queries in Hive and it supports full ACID bucketed Hive tables.

Qubole only supports using the Hive Metastore Service 3.0 or later versions for reading Hive transactional tables in Presto.

Limitations

Currently, ACID tables have these limitations in Presto:

  • Due to change of hash logic in Hive 3.0, bucketed ACID tables are read as non-bucketed tables without any read optimization (that you get with bucketed tables). There may be a potential degradation in Presto’s read performance.
  • Presto does not support Hive 2.0 versioned transactional tables. You must convert such tables to Hive 3.1.1 (beta) version to run Presto queries by running a major compaction as Qubole supports Hive ACID transactions from Hive 3.1.1 (beta). Qubole has added checks to fail queries using such tables.
  • Qubole only supports using the Hive Metastore Service 3.0 or later versions for reading Hive transactional tables in Presto. It has added checks to fail Presto queries on Hive ACID tables when the Hive metastore server’s version is older than 3.0.