Azure Synapse SQL Pool
This page shows how to write Terraform and Azure Resource Manager for Synapse SQL Pool and write them securely.
azurerm_synapse_sql_pool (Terraform)
The SQL Pool in Synapse can be configured in Terraform with the resource name azurerm_synapse_sql_pool
. The following sections describe 10 examples of how to use the resource and its parameters.
Example Usage from GitHub
resource "azurerm_synapse_sql_pool" "default" {
name = "examplesqlpool"
synapse_workspace_id = azurerm_synapse_workspace.example.id
sku_name = "DW200c"
create_mode = "Default"
}
resource "azurerm_synapse_sql_pool" "synapseSqlPool001" {
name = "SqlPool001"
synapse_workspace_id = azurerm_synapse_workspace.synapseProduct001.id
sku_name = "DW300c"
create_mode = "Default"
data_encrypted = true
resource "azurerm_synapse_sql_pool" "sqlpool" {
name = var.name
synapse_workspace_id = var.synapse_workspace_id
sku_name = var.sku_name
create_mode = var.create_mode
data_encrypted = var.data_encrypted
resource "azurerm_synapse_sql_pool" "sql_pool" {
name = azurecaf_name.sqlpool.result
synapse_workspace_id = var.synapse_workspace_id
sku_name = try(var.settings.sku_name, "DW100c")
create_mode = try(var.settings.create_mode, "Default")
tags = local.tags
resource "azurerm_synapse_sql_pool" "this" {
for_each = local.sql
name = each.value.name
synapse_workspace_id = azurerm_synapse_workspace.ws.id
sku_name = each.value.sku_name
create_mode = each.value.create_mode
resource "azurerm_synapse_sql_pool" "sql_pool" {
name = azurecaf_name.sqlpool.result
synapse_workspace_id = var.synapse_workspace_id
sku_name = try(var.settings.sku_name, "DW100c")
create_mode = try(var.settings.create_mode, "Default")
tags = local.tags
resource "azurerm_synapse_sql_pool" "sql_pool" {
name = azurecaf_name.sqlpool.result
synapse_workspace_id = var.synapse_workspace_id
sku_name = try(var.settings.sku_name, "DW100c")
create_mode = try(var.settings.create_mode, "Default")
tags = local.tags
resource "azurerm_synapse_sql_pool" "sql_pool" {
name = azurecaf_name.sqlpool.result
synapse_workspace_id = var.synapse_workspace_id
sku_name = try(var.settings.sku_name, "DW100c")
create_mode = try(var.settings.create_mode, "Default")
tags = local.tags
resource "azurerm_synapse_sql_pool" "sql_pool" {
depends_on = [
azurerm_synapse_workspace.synapse_workspace
]
name = var.sql_pool_name
resource "azurerm_synapse_sql_pool" "sql_pool" {
name = azurecaf_name.sqlpool.result
synapse_workspace_id = var.synapse_workspace_id
sku_name = try(var.settings.sku_name, "DW100c")
create_mode = try(var.settings.create_mode, "Default")
tags = local.tags
Parameters
-
collation
optional computed - string -
create_mode
optional - string -
data_encrypted
optional - bool -
id
optional computed - string -
name
required - string -
recovery_database_id
optional - string -
sku_name
required - string -
synapse_workspace_id
required - string -
tags
optional - map from string to string -
restore
list block-
point_in_time
required - string -
source_database_id
required - string
-
-
timeouts
single block
Explanation in Terraform Registry
Manages a Synapse Sql Pool.
Tips: Best Practices for The Other Azure Synapse Resources
In addition to the azurerm_synapse_workspace, Azure Synapse has the other resources that should be configured for security reasons. Please check some examples of those resources and precautions.
azurerm_synapse_workspace
Ensure to enable the managed virtual network
It is better to enable the managed virtual network, which is disabled as the default.
Microsoft.Synapse/workspaces/sqlPools (Azure Resource Manager)
The workspaces/sqlPools in Microsoft.Synapse can be configured in Azure Resource Manager with the resource name Microsoft.Synapse/workspaces/sqlPools
. The following sections describe how to use the resource and its parameters.
Example Usage from GitHub
"equals": "Microsoft.Synapse/workspaces/sqlPools"
},
{
"field": "name",
"notEquals": "master"
}
"type": "Microsoft.Synapse/workspaces/sqlPools",
"location": "Japan East",
"properties": {
"status": "Online",
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 32212254720,
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"type": "Microsoft.Synapse/workspaces/sqlPools",
"apiVersion": "2019-06-01-preview",
"name": "[concat(parameters('workspaces_sujoysynapse1982_name'), '/sentiasqlpool')]",
"location": "westeurope",
"sku": {
"name": "DW100c",
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"equals": "Microsoft.Synapse/workspaces/sqlPools"
}
]
},
"then": {
"effect": "[parameters('effect')]",
Parameters
apiVersion
required - stringlocation
required - stringThe geo-location where the resource lives
name
required - stringSQL pool name
properties
requiredcollation
optional - stringCollation mode
createMode
optional - stringSpecifies the mode of sql pool creation. Default: regular sql pool creation. PointInTimeRestore: Creates a sql pool by restoring a point in time backup of an existing sql pool. sourceDatabaseId must be specified as the resource ID of the existing sql pool, and restorePointInTime must be specified. Recovery: Creates a sql pool by a geo-replicated backup. sourceDatabaseId must be specified as the recoverableDatabaseId to restore. Restore: Creates a sql pool by restoring a backup of a deleted sql pool. SourceDatabaseId should be the sql pool's original resource ID. SourceDatabaseId and sourceDatabaseDeletionDate must be specified.
creationDate
optional - stringDate the SQL pool was created
maxSizeBytes
optional - integerMaximum size in bytes
provisioningState
optional - stringResource state
recoverableDatabaseId
optional - stringBackup database to restore from
restorePointInTime
optional - stringSnapshot time to restore
sourceDatabaseDeletionDate
optional - stringSpecifies the time that the sql pool was deleted
sourceDatabaseId
optional - stringSource database to create from
status
optional - stringResource status
storageAccountType
optional - stringThe storage account type used to store backups for this sql pool.
sku
optionalcapacity
optional - integerIf the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.
name
optional - stringThe SKU name
tier
optional - stringThe service tier
tags
optional - stringResource tags.
type
required - string
Frequently asked questions
What is Azure Synapse SQL Pool?
Azure Synapse SQL Pool is a resource for Synapse of Microsoft Azure. Settings can be wrote in Terraform.
Where can I find the example code for the Azure Synapse SQL Pool?
For Terraform, the infracost/infracost, tschwarz01/tf-caf-data-landing-zone and AnikG-Org/devops-practice source code examples are useful. See the Terraform Example section for further details.
For Azure Resource Manager, the azsk/AzTS-docs, debhol/azuredocs and markransome/AzureDataManagementZone source code examples are useful. See the Azure Resource Manager Example section for further details.