analystUpdated 2026-07-10

Power BI Connection Guide

Power BI Desktop — PostgreSQL connection dialog.

What this covers

This guide walks you through connecting Power BI Desktop to Tessallite. The supported method is the PostgreSQL connector on port 5433, using DirectQuery mode so that every visual in your report queries Tessallite in real time and benefits from semantic-layer acceleration.

A separate section below explains why the Analysis Services connector does not work with Power BI Desktop and what to do if you encounter it.

Connect Power BI to Tessallite (PostgreSQL connector)

Power BI Desktop connects to Tessallite through the same JDBC gateway that other SQL tools use. Tessallite listens on port 5433 and speaks the PostgreSQL wire protocol, so Power BI treats it as a standard PostgreSQL database.

Step-by-step

  1. Open Power BI Desktop.
  2. Click Get Data on the ribbon (or File > Get Data).
  3. In the list that appears, choose Database on the left, then PostgreSQL database on the right. Click Connect.
  4. Fill in the connection dialog:
    • Server: your Tessallite host followed by a colon and the port number.
      • Local development: localhost:5433
      • Hosted demo: sql.cloud.tessallite.io:5433
    • Database: the workspace slug (also called the tenant slug). For example, acme-demo. To connect directly to a single model, you can also use acme-demo/modelx (workspace/model) or acme-demo/project1/modelx (workspace/project/model). See the JDBC Connection Guide for the full format reference.
    • Data Connectivity mode: choose DirectQuery. This is the recommended setting because it keeps queries flowing through Tessallite at report refresh time, so aggregate routing and acceleration remain active.
  5. Click OK.
  6. Power BI asks for credentials. Choose Database as the authentication type.
    • User name: your Tessallite login email (for example, admin@acme-demo.com).
    • Password: your Tessallite password (for example, acme-demo for the demo workspace).
  7. Click Connect.
  8. In the Navigator that appears, you will see the models published in the workspace. Select the tables you want, then click Load or Transform Data.

Worked example using the demo workspace

FieldValue
Serverlocalhost:5433
Databaseacme-demo
Data Connectivity modeDirectQuery
Authentication typeDatabase
User nameadmin@acme-demo.com
Passwordacme-demo

After connecting, the Navigator shows every published model in the acme-demo workspace. Select a table (for example, modelx) and click Load to start building visuals.

What each field means

FieldWhat to enterWhy
ServerHOST:5433Tells Power BI where the Tessallite gateway is listening. Always include the port number.
DatabaseWorkspace slugTells Tessallite which workspace (tenant) you want to query. You can optionally scope it to a single model.
Data Connectivity modeDirectQuery (recommended)Keeps queries live so Tessallite can route them through aggregates and pockets for speed.
Authentication typeDatabaseTessallite uses email-and-password credentials, which maps to the Database option in Power BI.

DirectQuery vs Import mode

ModeHow it worksRecommendation
DirectQueryPower BI sends a query to Tessallite every time a visual refreshes. Tessallite routes to the fastest available path (aggregate, pocket, or source).Recommended. You get live acceleration and governed routing.
ImportPower BI downloads the full result set once and stores it locally. All visuals query the local cache.Use only for small, rarely changing datasets. You lose live acceleration after the import step.

If you choose Import mode, Tessallite's aggregate routing still applies during the initial import, but once the data is cached locally, Power BI no longer sends queries to Tessallite. Any new aggregates or data changes will not appear until you re-import.

How Power BI queries work with Tessallite

Power BI Desktop generates SQL that differs from traditional BI tools. When you drag dimensions and measures onto a visual, Power BI may send a flat SELECT with no GROUP BY clause, table aliases like "$Table", and column aliases on every column. Tessallite handles all of these patterns automatically.

Ungrouped queries (raw route)

When Power BI sends a query with no GROUP BY, such as SELECT "region", "amount" FROM "project1"."modelx", Tessallite detects this and routes it through the raw path. The raw path returns individual rows from the source database instead of aggregated results. Joins defined in the model are applied as LEFT JOINs so that all rows from the fact table appear, even when a related dimension table has no matching row.

If a dimension belongs to a table that is not reachable through the model's join graph, the column still appears in the result with a type-preserving NULL value (for example, CAST(NULL AS TEXT) for a text column). This keeps the result schema stable regardless of join topology.

Aggregate-only queries

If every column in the SELECT is an aggregate function (such as SELECT COUNT(*) FROM "modelx"), Tessallite routes the query through the normal semantic path, not the raw path. This preserves correct aggregation behaviour for summary queries that Power BI generates when computing totals.

Grouped queries (normal path)

Queries that include a GROUP BY clause follow the standard Tessallite routing: the query-router checks for matching aggregates and pockets, and falls back to the source path when no pre-computed summary covers the query.

Table aliases and column aliases

Power BI's PostgreSQL connector wraps tables with AS "$Table" and adds AS "column_name" on every column. Tessallite strips these automatically before routing.

Power BI Gateway for scheduled refresh

If Tessallite is on a private network, Power BI Service cannot reach it for scheduled refresh. Install an on-premises data gateway on a machine with network access to the Tessallite host, then associate the dataset with the gateway in Power BI Service.

Why the Analysis Services connector does not work with Power BI Desktop

Power BI Desktop has two connectors that look like they could talk to Tessallite:

  1. PostgreSQL database (the recommended method, described above).
  2. SQL Server Analysis Services database (the "Analysis Services" or "SSAS" connector).

The Analysis Services connector supports only Windows authentication (Kerberos/NTLM). This is a documented Microsoft limitation. When you enter a Tessallite XMLA URL and click Connect, Power BI sends a Windows authentication handshake. Tessallite's XMLA endpoint expects HTTP Basic credentials (email and password), so the two cannot agree on an authentication method. The connection fails.

This limitation applies only to Power BI Desktop. Excel is not affected. Excel's MSOLAP provider speaks HTTP Basic and connects to Tessallite's XMLA endpoint without any issue. If you need the Analysis Services experience with hierarchies and DAX, use Excel -- see the Excel XMLA Connection Guide.

What about "Connect live" and other Analysis Services options?

All connection modes offered by the Analysis Services connector in Power BI Desktop (Connect live, Import, DirectQuery where available) use the same Windows authentication handshake. Changing the mode does not fix the authentication mismatch.

When could this change?

A future version of the Tessallite gateway may add Windows authentication (Negotiate/SPNEGO) support, which would allow Power BI Desktop's Analysis Services connector to authenticate. This is logged as a future enhancement and is not available today.

Troubleshooting

SymptomLikely causeResolution
Cannot connect (PostgreSQL method)Wrong host or portConfirm Server field is HOST:5433.
Authentication failedWrong credentials or auth typeUse Database auth with your Tessallite email and password. Do not use Windows authentication.
Analysis Services connector fails after entering credentialsWindows authentication mismatchPower BI Desktop's Analysis Services connector only supports Windows authentication. Use the PostgreSQL connector instead (see the steps at the top of this guide).
Data looks stale after changes in TessalliteImport mode is caching old dataSwitch to DirectQuery, or manually refresh the dataset in Import mode.
Scheduled refresh fails in Power BI ServicePrivate networkInstall and configure an on-premises data gateway.
Ungrouped query returns NULLs for some columnsDisconnected table in modelExpected behavior: columns from unreachable tables show typed NULL values.
COUNT(*) returns unexpected result countAggregate-only guard activeAggregate-only queries route through the semantic path, not the raw path.

Best practices

Related