Open mmansikka opened 1 month ago
Is this concurrency within a single run, or are you talking about running multiple instances of dbt targetting the same table? The latter I don't think has ever been intentionally supported.
When running multiple instances of dbt targetting the same table. There has been quite a lot of work by databricks to support concurrent writes. It would be a shame if this is not supported by default, or there is no way to remove these concurrency breaking processes. I have discovered that the following break concurrency:
If we would allow similar variables for docs generation and liquid clustering, we would be able to support optimized scheduled runs with multiple instances of dbt targetting the same table. See this issue
On config level this would even better than as vars because on larger project there is a need for granular settings and otherwise you would need to run multiple dbt runs. Also see discussion in the above issue.
Describe the bug
Since the additions of
We no break concurrency because of alter table statements running at the same time as another process is writing to the same table
Steps To Reproduce
Run several dbt processes at the same time for example when using different source systems
dbt run -s common_table --vars '{"source_systems": ["SOURCE_1"]}'
dbt run -s common_table --vars '{"source_systems": ["SOURCE_2"]}'
dbt run -s common_table --vars '{"source_systems": ["SOURCE_3]}'
Expected behavior
By default do not run liquid clustering updates or column updates when incremental is run. This behavior should be controlled perhaps with a config parameter and if it is empty (default) then do not update column descriptions or liquid clustering columns. As a quick and dirty fix we added if not is_incremental() checks to incremental materialization here https://github.com/databricks/dbt-databricks/blob/52e9c7a379ccd3a0496c9e60e1493706596b1bf1/dbt/include/databricks/macros/materializations/incremental/incremental.sql#L113
Screenshots and log output
System information
The output of
dbt --version
:Additional context
Add any other context about the problem here.