Refresh Extracts

When the original data changes, you can refresh the extract using Desktop by selecting a data source on the Data menu, and then selecting Extract and Refresh. Extracts can be set up in two ways: fully refreshed or incrementally refreshed.

With a full refresh, all the data in the extract is replaced with the latest information from the original data source. An incremental refresh only adds the new rows since the last refresh. If you want more details on how to extract your data, you can visit the Extract Your Data Page.

Note: You can also automate extracting refreshes using the Tableau Data Extract Command-Line Utility. For more information, see Tableau Data Extract Command-Line Utility.

Before you refresh extracts

If you want to refresh an extract, make note of the file format of the extract before you perform an extract refresh. If you perform a refresh on an .tde extract using version 2022.4, the extract is upgraded to .hyper extract automatically. While there are many benefits of upgrading to a .hyper extract, you’ll be unable to open the extract with previous versions of Tableau Desktop. For more information, see Extract Upgrade to .hyper Format.

Note: .tde files are no longer supported in any form after version 2024.2 of Tableau, and they must be upgraded to .hyper format to be used.

Configure a full extract refresh

By default, extracts are configured to fully refresh. This means that every time you refresh the extract, all of the rows are replaced with the data in the original data source. While this kind of refresh ensures that you have an exact copy of what is in the original data, depending on the size of the extract, a full refresh can sometimes take a long time and be expensive on the database. If an extract isn’t configured for an incremental refresh, selecting to refresh the extract will perform a full refresh of the extract.

Publish to Tableau Server

If you plan to publish the extract as a data source to Tableau Server, you can specify a schedule for the extract refresh during publishing.

Similarly, if you’re publishing the extract in a workbook to Tableau Server, you can also specify a schedule for the extract refresh during publishing. For more information, see Schedule Extract Refreshes as You Publish a Workbook.

Publish to Tableau Cloud

If you plan to publish the extract as a data source to Tableau Cloud, your options for refreshing your data depend on the characteristics of your data sources. For more information on refreshing data from specific data sources, see Extract refresh options by data source.

Configure an incremental extract refresh

Most data sources support an incremental refresh. Rather than refreshing the entire extract, you can configure a refresh to add only the rows that are new since the previous time you extracted the data.

For example, you may have a data source that is updated daily with new sales transactions. Rather than rebuild the entire extract each day, you can add the new transactions that occurred that day. Then once a week, you might want to do a full refresh just to be sure you have the most up-to-date data.

Non-Unique column

Starting from version 2024.1, Tableau introduces a feature that enables users to perform incremental refreshes on extracts using a non-unique key column. This update introduces an additional step in the process.

Date range (subrange) refresh

Beginning with version 2024.2, Tableau has introduced a new feature that enables users to specify a specific time range for refreshing data from the source. Users can opt for incremental refresh when configuring an extract and set a minimum date range for the refresh. For instance, they can choose to refresh data from the last 14 days starting from the refresh date. This functionality is useful for data sources that allow for inserts and retroactive modifications within a defined time period, ensuring that any changes and new data are captured during the incremental extract refresh.

In a qualifying incremental refresh without a set “Minimum date range to refresh” (that is, Subrange refresh), Tableau will initially eliminate rows from the extract that match the previously recorded highest value. Subsequently, Tableau queries for all rows that have a value higher than or equal to the previous highest value. This approach ensures that any deleted rows are accounted for, along with any newly added ones.

The Advanced Settings feature provides two options for managing data updates. You can choose to replace the last rows added by refreshing values that are equal to or greater than the last recorded value. Or you can opt to keep the last rows added by only refreshing the extract with values greater than the last recorded value.

Note: If the data structure of the source data changes (for example, a new column is added), you’ll need to do a full extract refresh before you can start doing incremental refreshes again.

You can follow the following steps to set up an extract to be refreshed incrementally.

  1. Select a data source on the Data menu, and then select Extract Data.

  2. In the Extract Data dialog box, select All rows as the number of Rows to extract. Incremental refresh can only be defined when you’re extracting all rows in the database.

    Note: You can't increment a sample extract.

  3. Select Incremental refresh.

  4. Note: Incremental Refresh isn't available if you enable Aggregation.

  5. Specify a column in the database that will be used to identify new rows.

    For example, you can select a Date field or an ID column that monotonically increases as rows are added to the database.

  6. (Optional) If you select a Date or Datetime column in Tableau, you can perform a partial refresh of the extract data by specifying a specific date range. Determine the number of days and specify the date/time scale to establish the minimum date range for the refresh (for example, 14 days from the refresh date).

  7. (Optional) If no minimum refresh range is established, expand Advanced Settings to establish how new rows are retrieved. You can choose to replace the last rows added by refreshing values that are equal to or greater than the last recorded value. Or you can opt to keep the last rows added by only refreshing the extract with values greater than the last recorded value.

  8. Note: When filters are added, the Advanced Settings for Incremental Refresh will appear greyed out and the default setting of "Don't replace the last rows added" will be enforced. The purpose of this is to avoid any conflicts that may arise between certain filter criteria and the advanced incremental refresh logic that will "Replace the last rows added".

  9. To finish, select Save Settings.

The previous steps can be used to define a new extract or edit an existing extract for an incremental refresh.

Considerations when doing an Incremental refresh

Editing an extract

If you’re editing an existing extract, the last refresh is shown so you can be sure you’re updating the extract with the correct data.

Full Refresh

A Full Refresh replaces all of the rows with the data in the original data source every time you refresh the extract. A Full Refresh can take longer and be expensive on the database.

Data Engine

The data engine, which is the underlying mechanism that Tableau uses to create extracts, stores time values with a precision of up to 3 decimal places. If you specify a datetime or timestamp column for Identify new rows using column, and your database uses a higher precision than Tableau, you can end up with duplicate rows after an incremental refresh. For example, if the database has two rows, one with a datetime value of 2015-03-13 17:30:56.502352 and one with a datetime value of 2015-03-13 17:30:56.502852, Tableau will store both rows using a datetime value of 2015-03-13 17:30:56.502 thereby creating duplicate rows.

See extract history (Tableau Desktop)

You can see a history of when the extract was refreshed by selecting a data source on the Data menu and then select Extract > History.

The Extract History dialog box shows the date and time for each refresh, whether it was full or incremental, and the number of rows that were added. If the refresh was from a file, it also shows the source file name.

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!