Configure Azure Data Share Synapse SQL Pool Table Mappings

The azure-native:datashare:SynapseWorkspaceSqlPoolTableDataSetMapping resource, part of the Pulumi Azure Native provider, defines how shared datasets from Azure Data Share land in a consumer’s Synapse Analytics SQL Pool table. This guide focuses on one capability: mapping shared table data to Synapse SQL Pool destinations.

Data set mappings connect existing share subscriptions to existing Synapse infrastructure. The example is intentionally small. Combine it with your own Data Share accounts, share subscriptions, and Synapse workspaces.

Map shared data to a Synapse SQL Pool table

When you receive shared datasets through Azure Data Share, you define where that data lands in your Synapse Analytics environment.

import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const synapseWorkspaceSqlPoolTableDataSetMapping = new azure_native.datashare.SynapseWorkspaceSqlPoolTableDataSetMapping("synapseWorkspaceSqlPoolTableDataSetMapping", {
    accountName: "consumerAccount",
    dataSetId: "3dc64e49-1fc3-4186-b3dc-d388c4d3076a",
    dataSetMappingName: "datasetMappingName1",
    kind: "SynapseWorkspaceSqlPoolTable",
    resourceGroupName: "SampleResourceGroup",
    shareSubscriptionName: "ShareSubscription1",
    synapseWorkspaceSqlPoolTableResourceId: "/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1",
});
import pulumi
import pulumi_azure_native as azure_native

synapse_workspace_sql_pool_table_data_set_mapping = azure_native.datashare.SynapseWorkspaceSqlPoolTableDataSetMapping("synapseWorkspaceSqlPoolTableDataSetMapping",
    account_name="consumerAccount",
    data_set_id="3dc64e49-1fc3-4186-b3dc-d388c4d3076a",
    data_set_mapping_name="datasetMappingName1",
    kind="SynapseWorkspaceSqlPoolTable",
    resource_group_name="SampleResourceGroup",
    share_subscription_name="ShareSubscription1",
    synapse_workspace_sql_pool_table_resource_id="/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1")
package main

import (
	datashare "github.com/pulumi/pulumi-azure-native-sdk/datashare/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datashare.NewSynapseWorkspaceSqlPoolTableDataSetMapping(ctx, "synapseWorkspaceSqlPoolTableDataSetMapping", &datashare.SynapseWorkspaceSqlPoolTableDataSetMappingArgs{
			AccountName:                            pulumi.String("consumerAccount"),
			DataSetId:                              pulumi.String("3dc64e49-1fc3-4186-b3dc-d388c4d3076a"),
			DataSetMappingName:                     pulumi.String("datasetMappingName1"),
			Kind:                                   pulumi.String("SynapseWorkspaceSqlPoolTable"),
			ResourceGroupName:                      pulumi.String("SampleResourceGroup"),
			ShareSubscriptionName:                  pulumi.String("ShareSubscription1"),
			SynapseWorkspaceSqlPoolTableResourceId: pulumi.String("/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;

return await Deployment.RunAsync(() => 
{
    var synapseWorkspaceSqlPoolTableDataSetMapping = new AzureNative.DataShare.SynapseWorkspaceSqlPoolTableDataSetMapping("synapseWorkspaceSqlPoolTableDataSetMapping", new()
    {
        AccountName = "consumerAccount",
        DataSetId = "3dc64e49-1fc3-4186-b3dc-d388c4d3076a",
        DataSetMappingName = "datasetMappingName1",
        Kind = "SynapseWorkspaceSqlPoolTable",
        ResourceGroupName = "SampleResourceGroup",
        ShareSubscriptionName = "ShareSubscription1",
        SynapseWorkspaceSqlPoolTableResourceId = "/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1",
    });

});
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.datashare.SynapseWorkspaceSqlPoolTableDataSetMapping;
import com.pulumi.azurenative.datashare.SynapseWorkspaceSqlPoolTableDataSetMappingArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var synapseWorkspaceSqlPoolTableDataSetMapping = new SynapseWorkspaceSqlPoolTableDataSetMapping("synapseWorkspaceSqlPoolTableDataSetMapping", SynapseWorkspaceSqlPoolTableDataSetMappingArgs.builder()
            .accountName("consumerAccount")
            .dataSetId("3dc64e49-1fc3-4186-b3dc-d388c4d3076a")
            .dataSetMappingName("datasetMappingName1")
            .kind("SynapseWorkspaceSqlPoolTable")
            .resourceGroupName("SampleResourceGroup")
            .shareSubscriptionName("ShareSubscription1")
            .synapseWorkspaceSqlPoolTableResourceId("/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1")
            .build());

    }
}
resources:
  synapseWorkspaceSqlPoolTableDataSetMapping:
    type: azure-native:datashare:SynapseWorkspaceSqlPoolTableDataSetMapping
    properties:
      accountName: consumerAccount
      dataSetId: 3dc64e49-1fc3-4186-b3dc-d388c4d3076a
      dataSetMappingName: datasetMappingName1
      kind: SynapseWorkspaceSqlPoolTable
      resourceGroupName: SampleResourceGroup
      shareSubscriptionName: ShareSubscription1
      synapseWorkspaceSqlPoolTableResourceId: /subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1

The dataSetId identifies the source dataset from the provider’s share. The synapseWorkspaceSqlPoolTableResourceId specifies the full Azure resource path to your target table, including subscription, resource group, workspace, SQL pool, schema, and table name. The kind property must be set to “SynapseWorkspaceSqlPoolTable” to indicate this mapping type. The shareSubscriptionName ties the mapping to your existing share subscription.

Beyond these examples

This snippet focuses on mapping shared datasets to Synapse SQL Pool tables. It’s intentionally minimal rather than a complete data sharing workflow.

The example references pre-existing infrastructure such as Azure Data Share accounts and share subscriptions, Synapse Analytics workspaces with SQL pools, and source datasets from data providers. It focuses on configuring the mapping rather than provisioning the surrounding infrastructure.

To keep things focused, common mapping patterns are omitted, including:

  • Alternative mapping types (ADLS Gen2, Blob Storage, SQL Database)
  • Mapping validation and provisioning state handling
  • Cross-subscription or cross-region mappings
  • Schema and table creation in the target SQL pool

These omissions are intentional: the goal is to illustrate how the mapping is wired, not provide drop-in data sharing modules. See the SynapseWorkspaceSqlPoolTableDataSetMapping resource reference for all available configuration options.

Let's configure Azure Data Share Synapse SQL Pool Table Mappings

Get started with Pulumi Cloud, then follow our quick setup guide to deploy this infrastructure.

Try Pulumi Cloud for FREE

Frequently Asked Questions

Configuration & Setup
What value must I use for the kind property?
The kind property must be set to exactly SynapseWorkspaceSqlPoolTable. This is the expected value for this data set mapping type.
What format does the synapseWorkspaceSqlPoolTableResourceId require?
Use the full ARM resource ID path: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}.
Resource Lifecycle
What properties can't I change after creating the mapping?
Four properties are immutable: accountName, dataSetMappingName, resourceGroupName, and shareSubscriptionName. Changing any of these requires recreating the resource.
How do I check the status of my data set mapping?
Use the computed output properties: dataSetMappingStatus shows the mapping status, and provisioningState shows the provisioning state.

Using a different cloud?

Explore analytics guides for other cloud providers: