AzureAzure Synapse AnalyticsAnalytics

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.

DimensionUnitWhat's being charged
Dedicated SQL Pool (DWU)per DWU-hourCompute capacity for the data warehouse. DW100c is the smallest tier.
$1.20/hour for DW100c
Serverless SQLper TB scannedPay-per-query for ad-hoc analytics. No idle cost.
$5 per TB scanned
Spark Pool vCoresper vCore-hourSpark compute for big data processing. Auto-pauses when idle.
$0.105-$0.143/vCore-hour
Dedicated SQL storageper TB-monthStorage for Dedicated SQL Pool data.
$122.88/TB-month
Pipelinesper 1,000 runsData 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 SQL

Pausing 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 avoided

For 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 removed

DWUs 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 commitment

1-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.