Skip to main content

Microsoft Azure Synapse

Time-travel support

Time-travel is not supported by DirectQuery for Azure Synapse. This comes from the underlying storage backing external tables in Azure Synapse data lake. Plain files do not support snapshots, and so does not support Azure Synapse.
This means that updating that applications based on this Database are subject to data desynchronization in case of changes in the Database.
Read this page to learn more about the visible effects of this desynchronization.

Vector supports

Only multi-rows vectors and multi-columns vectors are supported by Azure Synapse.

Azure Synapse uses Microsoft Transact-SQL dialect. Though this dialect offers a basic array type, it does not offer powerful aggregation functions to work with them.

Gotchas

Field nullability

Azure Synapse, when used with Serverless pools, can only define fields with nullable types.
While this is not a problem in itself, it can conflict with the rule in Atoti+ cubes that all levels must be based on non-nullable values. This does not create an issue of any sort as the local model is updated behind the scene, assigning a default value based on the type.
It has a side effect on the query performance, as DirectQuery must convert on-the-fly null values to their assigned default values, as well as adding extra conditions during joins to handle null values on both sides.