Skip to Content
DestinationsWarehousesMicrosoft Fabric

Microsoft Fabric

Write data to a Microsoft Fabric warehouse or lakehouse table. Use Zeotap to materialize model results, audience memberships, or enriched data directly into Microsoft Fabric.

Prerequisites

  • A Microsoft Fabric workspace with a warehouse or lakehouse
  • A Microsoft Entra ID (Azure AD) app registration with a client secret
  • The service principal must be granted access to your Fabric workspace
  • A Fabric admin must enable service principal access to Fabric APIs in the tenant settings

Permissions

The service principal needs the following permissions in your Fabric workspace:

  • Contributor or Admin role on the workspace
  • Write access to the target warehouse or lakehouse

To grant access, navigate to your Fabric workspace, click Manage access, and add the service principal’s application ID with the appropriate role.

Authentication

Microsoft Fabric uses Microsoft Entra ID (Azure AD) service principal authentication with the client credentials flow.

Service Principal Setup

  1. In the Azure portal, navigate to Microsoft Entra ID > App registrations
  2. Create a new registration or select an existing one
  3. Copy the Application (Client) ID — this is your Client ID
  4. Copy the Directory (Tenant) ID — this is your Tenant ID
  5. Under Certificates & secrets, create a new Client secret
  6. Copy the secret value — this is your Client Secret
  7. In the Fabric admin portal, enable Service principals can use Fabric APIs under Tenant settings > Developer settings
  8. Add the service principal to your Fabric workspace with Contributor or Admin access

Enter the Client ID and Client Secret in Zeotap when configuring the destination.

Configuration

FieldTypeRequiredDescription
SQL EndpointTextYesThe Fabric warehouse SQL connection endpoint (e.g., your-workspace.datawarehouse.fabric.microsoft.com). Found in your warehouse settings under SQL connection string.
DatabaseTextYesThe name of the Fabric warehouse or lakehouse
Tenant IDTextYesThe Microsoft Entra (Azure AD) tenant ID for your organization

Target Settings

FieldTypeRequiredDefaultDescription
SchemaTextYesdboThe database schema to write to
TableTextYesThe target table name

Supported Operations

Sync Modes

ModeSupportedDescription
UpsertYesInsert new rows and update existing rows based on the primary key
InsertYesInsert new rows only
UpdateYesUpdate existing rows only
MirrorYesFull sync — upsert all rows and delete rows removed from the source

Audience Sync Modes

ModeSupportedDescription
AddYesAdd members to the audience table
RemoveYesRemove members from the audience table
MirrorYesFull audience sync — add new members and remove old ones
UpsertYesAdd or update audience members

Features

  • Field Mapping: Yes
  • Schema Introspection: Yes — Zeotap reads column metadata from Fabric’s INFORMATION_SCHEMA

How It Works

Zeotap connects to Microsoft Fabric via the TDS (Tabular Data Stream) protocol — the same protocol used by SQL Server. Authentication uses Microsoft Entra ID service principal credentials with the OAuth2 client credentials flow.

  1. Zeotap acquires an OAuth2 access token from Microsoft Entra ID using your service principal credentials
  2. A TDS connection is established to the Fabric SQL endpoint using the access token
  3. Data is loaded into a temporary staging table
  4. A MERGE statement is executed against the target table based on the configured sync mode
  5. The staging table is dropped after the sync completes

For Mirror mode, an additional DELETE is performed for records in the target that are not present in the source.

Auto-Table Creation

If the target table does not exist, Zeotap creates it automatically on the first sync. The table is created with the primary key column and a unique constraint for efficient MERGE operations. Additional columns are added dynamically as needed during each sync.

Rate Limits

Microsoft Fabric warehouses do not impose per-query rate limits in the traditional sense. However, compute capacity is governed by your Fabric capacity (F SKU). Larger syncs may consume more Capacity Units (CUs).

  • Parameter limit: 2,100 parameters per SQL statement (same as SQL Server). Zeotap automatically splits large batches into sub-batches to stay within this limit.
  • Connection limit: Zeotap opens up to 5 concurrent connections per sync.

Best Practices

  • Use a dedicated Fabric capacity for production syncs to avoid contention with interactive queries
  • Grant the service principal the minimum required permissions (Contributor role on the workspace)
  • Use descriptive schema and table names to organize synced data
  • For large datasets, ensure your Fabric capacity has sufficient CUs to handle the compute load
  • Rotate client secrets regularly and update them in Zeotap

Troubleshooting

Authentication failed

Verify that:

  • The Client ID, Client Secret, and Tenant ID are correct
  • The client secret has not expired — generate a new one in the Azure portal if needed
  • The service principal is added to the Fabric workspace with Contributor or Admin access
  • Service principal access to Fabric APIs is enabled in the Fabric admin tenant settings

Connection timed out

Check that the SQL Endpoint is correct. You can find it in the Fabric portal under your warehouse settings > SQL connection string. The endpoint should end in .datawarehouse.fabric.microsoft.com.

Table does not exist

Zeotap creates the target table automatically on the first sync. Ensure the service principal has CREATE TABLE permissions in the target schema.

Insufficient privileges

The service principal needs Contributor or Admin access to the Fabric workspace. Navigate to your workspace > Manage access and verify the service principal is listed with the correct role.

Schema does not exist

Create the schema manually in the Fabric warehouse before configuring the destination, or use the default dbo schema.

Sync is slow

Microsoft Fabric compute is governed by your Fabric capacity. If syncs are slow:

  • Check your capacity utilization in the Fabric admin portal
  • Consider scaling up your Fabric capacity (F SKU)
  • Ensure no other heavy workloads are competing for the same capacity

Token request returned 401

This indicates the client credentials are invalid. Verify the Client ID and Client Secret, and ensure the app registration is in the correct tenant. Generate a new client secret if the current one has expired.

MERGE statement failed

This can occur if the target table schema is incompatible with the incoming data. Check that column types match the expected data formats. Zeotap uses VARCHAR(MAX) for auto-created columns (Fabric Data Warehouse stores all string data as UTF-8 VARCHAR and does not support NVARCHAR for persisted tables).

Last updated on