Hi,
I would ensure the existing cached data is invalidated before loading the data into the cache database. This would prevent duplicate or invalid data from being stored in the cache database such that the cached data is always accurate and up to date. You can refer to the Knowledge Base Article [Availability of full cache](https://community.denodo.com/kb/en/view/document/Availability%20of%20full%20cache) and section [Cache Invalidation](https://community.denodo.com/docs/html/browse/7.0/vdp/vql/advanced_characteristics/using_the_cache/cache_invalidation#cache-invalidation) of the VQL guide for more information on cache invalidation.
Regarding your question on Data Movement object definition, it is not possible to manually define the structure at the moment as the Virtual DataPort automatically transfers the data of the smaller view into the data source of the larger view and executes the operation in the second data source and executes the operation in the second data source. As soon as the query execution is complete, the object created during this process is deleted.
You can refer to the [Data Movement](https://community.denodo.com/docs/html/browse/7.0/vdp/administration/optimizing_queries/data_movement/data_movement#data-movement) section of the Virtual DataPort Administration Guide which elaborates on the behavior of the Data Movement optimization mechanism.
Hope this helps!