Connect Azure Synapse to Digital Tap AI
1 Prerequisites
- Azure Synapse workspace URL — e.g.,
https://your-workspace.dev.azuresynapse.net - Azure Service Principal — with tenant ID, client ID, and client secret
- Azure subscription ID
- Digital Tap AI account — sign up free
Creating a Service Principal
# Create the service principal
az ad sp create-for-rbac \
--name "DigitalTapAI" \
--role "Contributor" \
--scopes "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RG/providers/Microsoft.Synapse/workspaces/YOUR_WORKSPACE"
# Output:
# {
# "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", ← Client ID
# "displayName": "DigitalTapAI",
# "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", ← Client Secret
# "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ← Tenant ID
# }
2 Required Azure Roles
Assign these roles to the service principal:
- Synapse Contributor — on the Synapse workspace (manage Spark pools, SQL pools)
- Reader — on the resource group (discover resources)
- Monitoring Reader — on the subscription (read Azure Monitor metrics)
# Assign Synapse Contributor
az role assignment create \
--assignee "CLIENT_ID" \
--role "Synapse Contributor" \
--scope "/subscriptions/SUB_ID/resourceGroups/RG/providers/Microsoft.Synapse/workspaces/WORKSPACE"
# Assign Monitoring Reader
az role assignment create \
--assignee "CLIENT_ID" \
--role "Monitoring Reader" \
--scope "/subscriptions/SUB_ID"
3 Install the Agent
Option A: Docker
docker run -d \
--name digitaltap-agent \
--restart unless-stopped \
-e DT_API_KEY="your-digital-tap-api-key" \
-e DT_PLATFORM="synapse" \
-e AZURE_TENANT_ID="your-tenant-id" \
-e AZURE_CLIENT_ID="your-client-id" \
-e AZURE_CLIENT_SECRET="your-client-secret" \
-e AZURE_SUBSCRIPTION_ID="your-subscription-id" \
-e SYNAPSE_WORKSPACE_URL="https://your-workspace.dev.azuresynapse.net" \
ghcr.io/digital-tap/agent:latest
Option B: Helm
helm repo add digitaltap https://charts.digitaltap.ai
helm repo update
helm install digitaltap-agent digitaltap/agent \
--set apiKey="your-digital-tap-api-key" \
--set platform="synapse" \
--set azure.tenantId="your-tenant-id" \
--set azure.clientId="your-client-id" \
--set azure.clientSecret="your-client-secret" \
--set azure.subscriptionId="your-subscription-id" \
--set synapse.workspaceUrl="https://your-workspace.dev.azuresynapse.net" \
--namespace digitaltap --create-namespace
4 Verify Connection
- Open your Digital Tap AI dashboard
- Navigate to Integrations → Connected Platforms
- Your Synapse workspace should appear with discovered Spark and SQL pools
5 Synapse-Specific Optimization
- Spark Pool Management — Detects idle Apache Spark pools and auto-pauses them
- SQL Pool Optimization — Monitors dedicated SQL pool utilization and recommends pause/scale
- Auto-Pause Enhancement — Tunes Synapse's built-in auto-pause settings for faster idle detection
- Serverless SQL Optimization — Analyzes serverless SQL queries for cost-efficient patterns
- Pipeline Optimization — Monitors Synapse pipeline runs and flags inefficient data flows
- Storage Tiering — Optimizes ADLS Gen2 storage tiers for Synapse-linked data
- Cost Attribution — Breaks down Synapse costs by pool, pipeline, and user
6 Troubleshooting
Authentication errors
- Verify tenant ID, client ID, and secret are correct
- Check the service principal hasn't expired:
az ad sp show --id CLIENT_ID
No pools discovered
- Confirm the service principal has Synapse Contributor role on the workspace
- Verify workspace URL format:
https://WORKSPACE.dev.azuresynapse.net