Our users created VDS from many PDS. They used API to refresh the reflection of VDS. Sometimes, thy found the VDS reflection cannot be refreshed. My question is refresh VDS reflection is a best practice? At the same time, they did not enable reflection in PDS.
You can check your reflection status in sys.reflections. If the reflection has failed after N retries, we won’t keep retrying even if refreshed via the API (on the PDS). You can increase the retry count in Settings->Reflections->Acceleration Settings.
Another good table to check is sys.reflection_dependencies. This will tell you what reflections or PDS your reflection depends on.
Thanks for your reply. Do you have any experiences in PDS/VDS operation?
(1) Is it a best practice to create reflection in PDS if user calls refresh reflection in VDS?
(2) Will lastDataFetch change in all PDS (where VDS is created from those PDS) when the VDS starts to refresh?
(3) Is it possible to know the duration of refresh reflection?
I don’t understand your questions. I think things will become more clear as you build up your semantic layer of VDSes and build reflections where you need them (such as to accelerate dashboards, accelerate slow data access/file formats or reduce load on connected sources).
The duration of the REFRESH REFLECTION job is in Jobs profile (like any other job). You can also get the duration from sys.materializations.