azurerm_synapse_workspace cost estimation
Unified data warehouse + Spark + serverless SQL + Data Factory pipelines. Dedicated SQL pool from $1.20/DWU-hour. Spark pool $0.143/vCore-hour. Serverless SQL $5/TB scanned. Workspace itself is free.
Azure Synapse Analytics combines data warehousing, Spark, serverless SQL, and pipelines in one platform. The azurerm_synapse_workspace creates the workspace; SQL pools, Spark pools, and pipelines are configured as separate resources. The workspace itself is free; you pay for the underlying compute.
Dedicated SQL Pool (formerly SQL Data Warehouse): - DW100c: $1.20/hour ($876/month) - DW1000c: $12/hour ($8,760/month) - DW30000c: $360/hour ($263K/month) - DWU = Data Warehouse Unit. Higher DWU = more capacity.
Can be paused (no compute cost, only storage). Storage: $122.88/TB-month for the SQL pool.
Serverless SQL Pool: - $5 per TB scanned - No always-on cost - Right for ad-hoc analysis, exploration
Spark Pool: - $0.143/vCore-hour for memory optimized - $0.105/vCore-hour for compute optimized - Auto-pause when idle
Pipelines (Data Factory inside Synapse): - $1 per 1,000 activity runs (same as Data Factory) - DIU-based for Copy activities
A typical Synapse workload: - Dedicated SQL DW500c paused at night (10 hours active): $876 × 10/24 = $365/month - Serverless SQL exploring 500 GB/month: $2.50 - Spark pool 10 vCores running 2 hours/day: 10 × $0.143 × 60 = $86/month - Total: ~$453/month
Synapse vs Databricks: Synapse is broader (DW + Spark + SQL + pipelines in one platform). Databricks is Spark-focused with better dev experience. For pure Spark, Databricks usually wins. For data warehouse-led workloads, Synapse Dedicated SQL Pool is purpose-built.
c3x estimates Synapse based on pool configurations (sku for SQL, node_size for Spark).
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "azurerm_synapse_workspace" "main" {
name = "prod-synapse"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
storage_data_lake_gen2_filesystem_id = azurerm_storage_data_lake_gen2_filesystem.main.id
sql_administrator_login = "sqladmin"
sql_administrator_login_password = var.sql_password
identity {
type = "SystemAssigned"
}
tags = {
Environment = "production"
}
}
resource "azurerm_synapse_sql_pool" "main" {
name = "main-dw"
synapse_workspace_id = azurerm_synapse_workspace.main.id
sku_name = "DW500c"
create_mode = "Default"
storage_account_type = "LRS"
}Pricing dimensions
What you actually pay for when you provision azurerm_synapse_workspace.
| Dimension | Unit | What's being charged |
|---|---|---|
| Dedicated SQL Pool (DWU) | per DWU-hour | Compute capacity for the data warehouse. DW100c is the smallest tier. $1.20/hour for DW100c |
| Serverless SQL | per TB scanned | Pay-per-query for ad-hoc analytics. No idle cost. $5 per TB scanned |
| Spark Pool vCores | per vCore-hour | Spark compute for big data processing. Auto-pauses when idle. $0.105-$0.143/vCore-hour |
| Dedicated SQL storage | per TB-month | Storage for Dedicated SQL Pool data. $122.88/TB-month |
| Pipelines | per 1,000 runs | Data Factory-equivalent pipeline orchestration inside Synapse. $1 per 1,000 activity runs |
Optimization tips
Common ways to reduce azurerm_synapse_workspace cost without changing the workload.
Pause Dedicated SQL pools during idle hours
30-60% on Dedicated SQLPausing stops compute billing entirely. Only storage continues. A DW500c paused 14 hours/day saves ~58% of compute cost. Schedule pause/resume via Azure Automation or Logic Apps.
Use Serverless SQL for ad-hoc queries
100% on idle Dedicated SQL avoidedFor occasional analysis, Serverless SQL bills only per query. Avoid spinning up Dedicated SQL for one-off explorations. Pay only for what you scan.
Right-size DWUs
$876+/month per DW100c removedDWUs are linear cost. Many teams provision DW1000c+ 'for headroom' but actually use 10-20%. Monitor DWU usage; right-size to actual peak workload. Scaling DWUs up is online and fast.
Reserved Capacity for stable production
37-65% on commitment1-year reservations on Dedicated SQL save ~37%. 3-year saves ~65%. Right for the steady production data warehouse.
Use Spark auto-pause
Variable, often 50%+Spark pools auto-pause after configurable idle (default 15 min). Aggressive auto-pause prevents idle billing. Right for batch workloads that don't need warm-cluster latency.
FAQ
When should I use Synapse vs Databricks?
Synapse for data warehouse-led workloads (T-SQL, BI, traditional DW patterns). Databricks for Spark-led workloads (data engineering, ML, complex transformations). Both can do both; the question is which has better tooling for your primary use case. Some orgs use both for different teams.
Is Serverless SQL really $5/TB?
Yes, very competitive with Athena ($5/TB). For ad-hoc analysis over data lake (Delta Lake, Parquet on ADLS), Serverless SQL is often the cheapest option in Synapse. Optimize with partitioning and columnar formats to scan less data.
Can I pause Spark pools like SQL pools?
Spark pools auto-pause when idle (no explicit pause needed). When a job runs, the pool resumes (1-5 minutes spin-up). Configure auto_pause_delay_in_minutes to control idle timeout. Aggressive timeouts (5-10 min) save more; longer (30+ min) keep clusters warm for repeated jobs.
What's the smallest viable Synapse setup?
Workspace + Serverless SQL only = ~$0 base + per-query fees. Right for exploration and small workloads. Adding Dedicated SQL DW100c jumps to $876/month minimum. Plan whether you actually need Dedicated SQL before provisioning.
Related resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including azurerm_synapse_workspace.