1. A computer-implemented method comprising: receiving, by an in-memory engine, a data request; transmitting, by the in-memory engine and to a metadata storage unit, data that is associated with the request; receiving, by the in-memory engine and from the metadata storage unit, metadata; based on the metadata, generating a query tree that includes query tasks for processing; determining, by the in-memory engine, a first portion of the data to be processed by the in-memory engine according to a first group of the query tasks and a second portion of the data to be processed by a data engine according to a second group of the query tasks to balance a processing load of the in-memory engine and a processing load of the data engine; transmitting, by the in-memory engine and to the data engine, a request (i) for the first portion of the data and (ii) to process the second portion of the data according to the second group of the query tasks; receiving, by the in-memory engine and from the data engine, the first portion of the data and the second portion of the data that is processed by the data engine; processing, by the in-memory engine, the first portion of the data according to the first group of the query tasks; and in response to the data request, providing, by the in-memory engine, the first portion of the data that is processed by the in-memory engine and the second portion of the data that is processed by the data engine.