Posidon
Posidon

Reputation: 1

Tableau incremental refresh from Snowflake

I have a question regarding incremental refresh from Snowflake to Tableau. I know the feature for Incremental refresh/Incremental extract is available in Tableau but can it be used for incremental loads from Snowflake? And how does it work?

The reason for me asking is because I know that query folding which other BI-tools on the market uses for incremental refreshes, isn't possible in Snowflake.

Thanks!

/P

Upvotes: 0

Views: 939

Answers (2)

vizyourdata
vizyourdata

Reputation: 1444

I agree with Chris' answer accept for avoiding the extracts on Tableau Server. There can be a lot of performance gains had by using Tableau to extract the data. We run extracts out of Snowflake for most of our data sources. We also test both live connections and extracts for each to see which performs best. If timing is an issue, extracts can be set to refresh every 15 minutes at the most.

To get extracts loaded and refreshing use the following steps.

Switch your data source to an extract in Tableau Desktop

extract data

This will create a local copy of the data to be used to publish next.

Select Server/Publish Workbook server/publish

In the Publish settings, choose your refresh schedule and publish to Tableau Server. The workbook and data source will be loaded to Server.

publish

You can also update the refresh schedules directly in Server by navigating to the new data source and going to the Extract Refreshes tab.

If you don't have the correct schedule available, you can create one in the Schedules menu for the site.

schedule

Upvotes: 3

Chris
Chris

Reputation: 690

Tableau incremental refreshes work the same for Snowflake as it does for other databases.

"Query Folding" looks like a Microsoft (and specifically PowerBI) term. According to this article https://exceleratorbi.com.au/how-query-folding-works/ "query folding" is the process of pushing the work load down to the database, which is what Tableau does when querying Snowflake tables directly.

With Snowflake I would recommend querying the tables directly as they are already setup in columnar format, and you can avoid moving the data to a Tableau Server and waiting on refreshes. Snowflake has unlimited storage whereas you might be limited by your Tableau Server.

If you need the tables in Snowflake to only show data as of a point in time, there are different ways you could accomplish this including:

  • Preset date filters (or parameters as filter within Tableau) that are pushed down to Snowflake
  • Using Tasks in Snowflake to run at a specific time to:
    • Clone your tables, and use the clones for reporting
    • Update existing reporting tables

Upvotes: 3

Related Questions