🗄️ Azure Synapse SQL Pools¶
SQL Pools in Azure Synapse provide both serverless and dedicated SQL compute options for data warehousing and analytics workloads.
🌟 Overview¶
Azure Synapse SQL Pools offer two distinct compute models to meet different analytical needs:
- Serverless SQL Pools: Pay-per-query model for ad-hoc analytics
- Dedicated SQL Pools: Reserved capacity for consistent, high-performance workloads
Both share T-SQL compatibility and seamless integration with Azure data services.
📊 SQL Pool Types Comparison¶
| Feature | Serverless SQL | Dedicated SQL |
|---|---|---|
| Pricing Model | Pay per TB processed | Reserved DWUs |
| Infrastructure | No management | Managed capacity |
| Use Case | Ad-hoc queries | Data warehousing |
| Scale | Automatic | Manual/Scheduled |
| Performance | Variable | Predictable |
| Storage | Data Lake | Internal + External |
| Startup Time | Instant | Minutes |
| Best For | Exploration, BI | Production DW |
🎯 Pool Selection Guide¶
Choose Serverless SQL When¶
- Querying data lake files (Parquet, CSV, JSON)
- Exploratory data analysis
- Cost optimization for variable workloads
- No infrastructure management needed
- Prototyping and development
- Infrequent query patterns
Choose Dedicated SQL When¶
- Consistent high-performance requirements
- Enterprise data warehousing
- Complex ETL/ELT workflows
- Predictable workload patterns
- Advanced performance tuning needed
- Regulatory compliance requiring dedicated resources
🗂️ Pool Components¶
⚡ Serverless SQL Pools¶
Query data in your data lake without provisioning infrastructure.
Key Features: - Automatic scaling - T-SQL support for file formats - No infrastructure to manage - Integration with data lake
🏢 Dedicated SQL Pools¶
Enterprise-grade data warehousing with predictable performance.
Key Features: - Massively Parallel Processing (MPP) - Advanced performance features - Enterprise security - Predictable performance
🚀 Quick Start Examples¶
Serverless SQL: Query Data Lake¶
-- Query Parquet files directly
SELECT
ProductID,
ProductName,
SUM(Quantity) as TotalQuantity,
SUM(Revenue) as TotalRevenue
FROM OPENROWSET(
BULK 'https://myaccount.dfs.core.windows.net/sales/year=2024/*/*.parquet',
FORMAT = 'PARQUET'
) AS sales
GROUP BY ProductID, ProductName
ORDER BY TotalRevenue DESC;
Dedicated SQL: Create Warehouse Table¶
-- Create distributed table
CREATE TABLE dbo.FactSales
(
SalesKey BIGINT NOT NULL,
DateKey INT NOT NULL,
CustomerKey INT NOT NULL,
ProductKey INT NOT NULL,
Quantity INT NOT NULL,
Amount DECIMAL(19,4) NOT NULL
)
WITH
(
DISTRIBUTION = HASH(CustomerKey),
CLUSTERED COLUMNSTORE INDEX
);
Last Updated: 2025-01-28 Service Version: General Availability Documentation Status: Complete