I have been seeing the term “HTAP” mentioned a lot recently, and I thought I would briefly explain the term. HTAP stands for Hybrid Transactional and Analytical Processing.
HTAP is used to describe the capability of a single database that can perform both online transaction processing (OLTP) and online analytical processing (OLAP) for the purpose of real-time operational intelligence processing. The term was created by Gartner in 2014.
In the SQL Server world you can think of it as: In-memory analytics (columnstore) + in-memory OLTP = real-time operational analytics. Microsoft supports this in SQL Server 2016 (see SQL Server 2016 real-time operational analytics).
To clarify the difference between OLTP and OLAP: OLTP, as well as Operational Data Stores (ODS), are operational workloads. They are low latency, high volume, high concurrency workloads that are usually used to operate a business, such as taking and fulfilling orders, making shipments, billing customers, collecting payments, and so on. On the other hand, OLAP are BI/EDW and considered analytics workloads. They are relatively higher latency, lower volume, and lower concurrency workloads that are used to improve the performance of a company, by analyzing operational, historical, and external data (“big data”), to make strategic decisions, or take actions, to improve the quality of products, customer experience, and so forth, as well as to do predictive analytics.
So a HTAP query engine must be able to serve everything, from simple, short transactional queries to complex, long-running analytical ones, delivering to the service-level objectives for all these workloads.
This does not replace the need for a separate data warehouse when you need to integrate data from multiple sources before running the analytics workload or when you require extreme analytics performance using pre-aggregated data such as cubes. Or when one server serving both OLTP and OLAP simply does not give you enough processing power and you need additional servers.