The short answer
Azure can generate large unexpected cloud bills when dedicated compute clusters run continuously without workload demand or when transformation jobs use expensive graphical data flows instead of lightweight compute runtimes.
Synapse SQL pool cost controls
Azure Synapse Analytics offers two distinct SQL engines with completely different billing mechanics:
- Dedicated SQL pools: Billed per Data Warehouse Unit (DWU) hour as long as the pool remains active, regardless of whether queries are running. A DW1000c cluster running idle costs several thousand dollars per month. The most effective cost control is automating pause and resume schedules through Azure CLI or Data Factory pipelines so clusters sleep outside working hours.
- Serverless SQL pools: Billed strictly on data scanned at 5 dollars per terabyte processed. Cost control requires storing lake data in columnar Parquet format, avoiding wildcard column projections, and using the
filepath()function in query filters so the engine reads only target .
Dedicated SQL Pool ---> Billed per DWU hour (Must pause when idle)
Serverless SQL Pool ---> Billed per TB scanned ($5/TB, prune files)
ADF Data Flow ---> Billed per Databricks vCore-hour (Avoid for simple copy)Data Factory execution efficiency
In Azure Data Factory, pipeline orchestration and simple Copy activities cost fractions of a cent per run. However, Mapping Data Flows spin up an Azure Databricks Spark cluster under the hood and charge per cluster vCore-hour.
Teams minimize Data Factory spending by using simple Copy activities for ingest, pushing heavy transformations into external SQL procedures or Databricks job clusters, and configuring Azure Cost Management budget alerts with webhook notifications.