Learn how to set up a service principal and connect your Microsoft Fabric warehouse or lakehouse SQL analytics endpoint to Omni.
Microsoft Fabric connections must be enabled for your Omni instance. Reach out to Omni support to have this feature enabled.
Omni supports the following methods for connecting to Microsoft Fabric:
Service principal authentication - Recommended. Omni authenticates with a Microsoft Entra ID app registration, also called a service principal.
Entra user password - If you can’t use a service principal, you can use this approach instead. Note that this method will fail for accounts that require multi-factor authentication (MFA).
Choose the method that best fits your team’s security requirements and preferences.
Fabric can query across the warehouses and lakehouses in a workspace. One Omni connection can use this to read from several of them:
In Warehouse or Lakehouse, enter a warehouse. Omni writes table uploads to this item, so it must be writable.
In Include Other Databases, enter the lakehouses and other warehouses you want to model.
Omni then generates views for each item, and you can join tables across them. When using this approach, note that:
The same table can show in more than one item. Lakehouse shortcuts can point to warehouse tables, so dbo.orders can exist in both. Model the table from one item only.
New shortcut tables can take a few minutes to show in Omni. If a schema refresh runs right after someone adds a shortcut, the new table may be missing. Run the refresh again.
While Fabric uses T-SQL, it doesn’t support all Microsoft SQL Server features. Omni generates SQL that works in Fabric. The differences below affect SQL that you write yourself, and filter results.
Behavior
What to expect in Omni
Case sensitivity
By default, Fabric warehouses are case-sensitive. Table and column names must match their case in Fabric, and a filter for usa doesn’t match USA. A warehouse can be created case-insensitive, but the setting can’t be changed after creation.
Timestamps with timezone offsets
Fabric tables can’t store datetimeoffset columns, so timestamps don’t include a timezone offset. Set Database Timezone to the timezone that your timestamps are stored in. Timezone conversion and Allow User-Specific Timezones work the same way as in SQL Server.
Recursive CTEs
Not supported. SQL queries that use WITH ... UNION ALL recursion fail.
Chained table calculations
Fabric can reject queries that chain four or more table calculations that reference each other.
An error like Login failed for user '<token-identified principal>' means that Fabric couldn’t open the warehouse or lakehouse for the service principal. Check that:
The Service principals can call Fabric public APIs tenant setting is enabled. If the setting is limited to security groups, the service principal must be in one of the groups. Changes can take up to 15 minutes to apply.
The service principal has a role on the workspace.
The Warehouse or Lakehouse field matches the item name in Fabric exactly.
The Secret field contains the secret Value, not the Secret ID.
If you use Entra User Password, the account doesn’t require MFA and has a role on the workspace.
A connection that worked stops authenticating
Check whether the client secret expired. To fix it, create a new client secret for the app registration in the Azure Portal. Then, update the Secret field on the connection in Omni.
CREATE TABLE permission denied
Omni can read data but can’t create the table for an upload. Check that:
The service principal or Entra user has the Contributor role, or higher, on the workspace. Sharing the warehouse item gives read permissions only.
The Warehouse or Lakehouse field in Omni contains a warehouse, not a lakehouse.
Invalid object name or invalid column name in a SQL query
Fabric warehouses are case-sensitive by default. Change the table and column names in your SQL to match their case in Fabric.
Error 24804, 6005, or 6008
Fabric returns these errors for a short time during a system update, or when the workspace is temporarily unavailable. Run the query again. If the errors continue, check that the Fabric capacity is running and isn’t paused.