HeatWave is a distributed, scalable, shared-nothing, in-memory, columnar, query processing engine designed for fast execution of analytic queries. It is enabled when you add a HeatWave cluster to a MySQL DB System.
A HeatWave cluster includes a MySQL DB System node and two or more
HeatWave nodes. The MySQL DB System node has HeatWave plugin that is
responsible for cluster management, loading data into the
HeatWave cluster, query scheduling, and returning query results to the
MySQL DB System. HeatWave nodes store data in memory and process
analytics queries. Each HeatWave node contains an instance of the
HeatWave query processing engine (
The number of HeatWave nodes required depends on data size and the amount of compression that is achieved when loading data into the HeatWave cluster. A HeatWave cluster supports up to 64 nodes.
Queries are issued from a MySQL client or application that is connected to the MySQL DB System node. Clients and applications do not connect to HeatWave directly. Queries that meet certain prerequisites are automatically offloaded from the MySQL DB System to HeatWave for accelerated processing. Results are returned to the MySQL DB System node and to the MySQL client or application that issued the query. For more information, see Chapter 6, Running Queries.
Loading data into HeatWave involves preparing tables on the MySQL
DB System and executing table load operations. Preparing tables
involves modifying table definitions to exclude certain columns,
defining string column encodings, adding data placement keys, and
specifying the HeatWave query processing engine
RAPID) as the secondary engine for the table.
InnoDB is the primary engine.) Loading a table
into HeatWave requires executing an
operation with the
SECONDARY_LOAD keyword. For
more information, see Chapter 3, Preparing Data,
and Chapter 4, Loading Data.
The HeatWave Auto Parallel Load utility facilitates the process of preparing and loading tables by automating required steps and optimizing the number of parallel load threads for a faster load. See Section 4.1, “Auto Parallel Load”.
When a table is loaded, data is sliced horizontally and distributed among HeatWave nodes. Once a table is loaded, changes to the table's data on the MySQL DB System node are automatically propagated to the HeatWave nodes. No user action is required to synchronize data. For more information, see Section 4.2, “Change Propagation”.
After data is loaded and a HeatWave query history has been established by running queries, you can use the HeatWave Advisor to optimize your workload. Advisor analyzes your data and query history to provide data placement and string column encoding recommendations. See Chapter 8, Workload Optimization using Advisor.