# Tableau Hyper Files to Power BI: Converting Extracts, Refresh, and Model Size

> Power BI has no .hyper connector. How Tableau extracts map to Import mode, how to read data out of a .hyper file, and when to reconnect to the source instead.

- Canonical: https://getantares.io/convert-hyper-files-to-power-bi/
- Published: 2026-02-18
- Updated: 2026-07-28

---

A `.hyper` file is a Tableau extract: a compressed, columnar snapshot of data that Tableau's engine queries locally. It is a cache, not a source system, and Power BI cannot open one. The [file connectors in Power BI Desktop](https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-data-sources) are Excel, Text/CSV, XML, JSON, Folder, PDF, Parquet and SharePoint folder, with no Tableau format in the list, so converting a Hyper file means choosing between two routes: point the new model at the original source system, usually the right answer, or read the extract with Tableau's Hyper API and land it in a format Power BI can import.

## What a Tableau extract maps to in Power BI

| Tableau | Power BI equivalent | Notes |
| --- | --- | --- |
| `.hyper` extract | Import-mode semantic model | Both store compressed columnar data |
| Live connection | DirectQuery | Queries reach the source at report time |
| Extract embedded in a `.twbx` | No equivalent | The `.twbx` is a zip; the extract is inside it |
| Published data source | Shared semantic model | One model, many reports |
| Extract refresh schedule | Scheduled refresh | 8 per day on shared capacity, 48 on Premium or Fabric |
| Incremental extract refresh | Incremental refresh policy | Driven by `RangeStart` and `RangeEnd` |
| Extract filters | Power Query filter steps | Must fold to the source to stay efficient |
| Aggregate data for visible dimensions | Group By in Power Query | Or keep the detail and aggregate in DAX |
| `.tde` file (legacy) | Upgrade to `.hyper` first | Desktop 2024.2 is the last release that opens `.tde` |

## Should you convert the extract or reconnect to the source?

Reconnect whenever the upstream system still exists and you can get credentials. An extract is not a faithful copy of a source table: Tableau's [extract settings](https://help.tableau.com/current/pro/desktop/en-us/extracting_data.htm) offer filters, an *Aggregate data for visible dimensions* option with date roll-up, and a choice between all rows, a sample, or the top N rows, any of which may already be baked into the file you hold. Reconnecting also restores what Power BI needs later: a query that folds, a real date column to partition on, and a refresh path that does not depend on a file on somebody's laptop.

Convert from the file only when there is nothing to reconnect to: the source was decommissioned, the spreadsheet behind an ad-hoc upload is gone, or credentials will not arrive inside the migration window. Even then it is a bridge and not a destination, because a table loaded from a one-off export cannot be refreshed by anyone. Either way, keep the extract as your validation baseline: its totals are what the Tableau dashboards actually showed.

## How to read data out of a .hyper file

| Route | How | Best for |
| --- | --- | --- |
| Unpack the workbook | Rename `.twbx` to `.zip` and open it; extracts sit in the Data folder | Finding which workbooks carry embedded data |
| Hyper API | `pip install tableauhyperapi`, connect to the file, run `SELECT` against its tables | Repeatable extraction to CSV or Parquet |
| Tableau Desktop, whole source | `Data > Export Data to CSV` on the data source page | One table you need once |
| Tableau Desktop, single view | `Worksheet > Export > Data` | Exporting exactly what one view shows |

Start with unpacking, because it tells you what you have. Tableau's own instruction is to rename a packaged workbook with a `.zip` extension and open it, so unzipping a folder of workbooks cheaply reveals which ones carry embedded data. The [Hyper API](https://tableau.github.io/hyper-db/docs/) is the scriptable route, shipping for Python, C++ and Java, opening existing files and querying them with SQL. Prefer Parquet over CSV on the way out: Power BI reads it natively and it carries column types, sparing Power Query from guessing dates and decimals.

One caveat applies to every export route: Tableau warns that an export may exclude some table calculations and level of detail expressions, because those are computed in the view rather than stored as data. That is DAX work, not a gap in the data move, covered in [LOD expressions to DAX](/tableau-lod-expressions-to-dax/) and [table calculations to DAX](/tableau-table-calculations-to-dax/).

## How extract refresh becomes semantic model refresh

Tableau's incremental extract refresh watches a column you nominate and appends the rows above its last value. Power BI is declarative instead: create two Power Query date/time parameters with the reserved, case-sensitive names `RangeStart` and `RangeEnd`, filter the table with them, then set an archive period and a refresh period. The service creates and rolls the partitions itself, refreshing recent ones and dropping history as it ages out.

Three requirements decide whether that works. The filter has to fold to the source, or the engine retrieves every row and filters locally, defeating the policy. The parameters must be the date/time type even when the table is partitioned on an integer key such as `yyyymmdd`, which you convert inside the query. And the source has to be a live system, because a static CSV exported from an extract has nothing to filter incrementally. [Incremental refresh](https://learn.microsoft.com/en-us/power-bi/connect-data/incremental-refresh-overview) itself is supported on Pro, Premium per user, Premium and Embedded; only the real-time DirectQuery partition is Premium-only.

Budget the windows too: a refresh must finish within two hours on shared capacity and five on Premium, shared capacity allows eight scheduled refreshes a day against 48 on Premium or Fabric, and on-premises sources need an enterprise gateway.

## Model size and the 1 GB limit

The default size limit for a semantic model is 1 GB, and Fabric capacities, Premium per user and Embedded go past it once [Large semantic model storage format](https://learn.microsoft.com/en-us/fabric/enterprise/powerbi/service-premium-large-models) is on, when the ceiling becomes the capacity size. A model published from Power BI Desktop is separately capped at a 10 GB upload.

Those limits sound tight next to a multi-gigabyte extract and usually are not: Microsoft's [guidance for Import models](https://learn.microsoft.com/en-us/power-bi/guidance/import-modeling-data-reduction) puts VertiPaq compression at roughly 10x, so 10 GB of source data can land near 1 GB. Columns and cardinality drive the result rather than row count, and extracts are the bad case, because the Tableau author included every column of every table and nobody revisited it. Dropping unused columns is the highest-yield change available at import.

## What Antares does with extracts and Hyper files

Antares never touches the data inside an extract: analysis and conversion read metadata only, never business data. Moving rows between platforms is a data-platform job, not a dashboard-migration one.

What the Analyzer contributes is the inventory behind the decision above. It reads every data source in every workbook, records whether each is live or extract-backed, and captures what the connection points at. So before anyone opens a file, you know which dashboards can be repointed at a system that still exists and which are backed only by an extract with no reachable upstream. That second group is usually small, and it is where migration estimates go wrong. [Run the free Analyzer](https://try.getantares.io) for your own workbooks.

Related reading: [extracts to Power BI dataflows](/convert-tableau-extracts-to-power-bi-dataflows/) and [data sources to Power BI datasets](/tableau-data-sources-to-power-bi-datasets/). Primary sources: Tableau's [extract format notes](https://help.tableau.com/current/pro/desktop/en-us/extracting_upgrade.htm) and [export documentation](https://help.tableau.com/current/pro/desktop/en-us/save_export_data.htm), the [Hyper API installation guide](https://tableau.github.io/hyper-db/docs/installation), and Microsoft's [data refresh reference](https://learn.microsoft.com/en-us/power-bi/connect-data/refresh-data).

## Related resources

- [Tableau to Power BI Migration Guide](/tableau-to-power-bi-migration/)
- [Extracts to Power BI Dataflows](/convert-tableau-extracts-to-power-bi-dataflows/)
- [Data Sources to Power BI Datasets](/tableau-data-sources-to-power-bi-datasets/)
- [Custom SQL to Power BI](/tableau-custom-sql-to-power-bi/)

## FAQ

### Can Power BI open a Tableau .hyper file?

No. Power BI Desktop has no Tableau connector; its file connectors are Excel, Text/CSV, XML, JSON, Folder, PDF, Parquet and SharePoint folder. Either reconnect the new model to the original source, or read the .hyper file with Tableau's Hyper API and write it out as Parquet or CSV.

### How do I extract data from a .hyper file?

Open it with the Hyper API (pip install tableauhyperapi) and run SELECT against its tables. For a one-off, Tableau Desktop exports without code: Data > Export Data to CSV on the data source page. If the extract sits inside a .twbx, rename the workbook to .zip first.

### Should I convert the extract or reconnect to the source?

Reconnect if the source system still exists. An extract can carry filters, aggregation to visible dimensions and a row sample, so its numbers are not necessarily the source's, and a model loaded from a static export can never be refreshed. Keep the extract as a validation baseline.

### What is the Power BI equivalent of a Tableau extract refresh?

A scheduled semantic model refresh, plus an incremental refresh policy driven by the reserved RangeStart and RangeEnd parameters. Shared capacity allows eight scheduled refreshes a day and Premium or Fabric allows 48; a refresh must finish within two hours on shared capacity and five on Premium.
