Hello,
1 - Using the “Partial cache mode”, Denodo only stores the data from the output of a query once it is run, unlike full cache mode where all the data from the underlying data source is stored in cache. Effectively, the cache is built over time with each query and their resulting output. If a new query comes in for which data is not available in the cache, then it gets passed down to the actual source to look for results. In comparison, with full mode the query is never passed to the original data source.
2 - With “Explicit load” selected, the control is with the user as to which query output should be stored in cache and which not. So if the user is trying a sample query and doesn’t feel the need to store the result in cache, then they just run the query and processing is pushed to the underlying data source. But if the user wants to store the output in cache, then they can add CONTEXT('cache_preload' = 'true') to the query for storing the result into cache.
3 - With “Match exact queries” selected, the result is obtained from cache, if and only if the exact same query has been executed previously and the result is available in cache. If the latest query is different from any previous queries, the query gets pushed down to source. Even if the result could have been obtained by filtering results from a previous query, it still gets pushed down to the source.
Hope these answers clarify your doubts.