How to Publish Empty Extract in Tableau

Cody Schneider••8 min read

Publishing an empty Tableau extract might sound counterintuitive, but it's a powerful trick used by seasoned developers to manage massive datasets and streamline workflows. This technique allows you to publish the structure and connection details of your workbook to Tableau Server or Cloud without waiting hours for a huge dataset to upload. This article will walk you through exactly why you'd want to do this and provide a step-by-step guide to get it done.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Why Would You Publish an Empty Tableau Extract?

Working with datasets containing hundreds of millions or even billions of rows creates unique challenges. Trying to create and publish a multi-gigabyte extract from your local machine is often slow, unreliable, or flat-out impossible. Publishing an empty extract is a clever workaround that bypasses these local limitations and delegates the heavy lifting to your more powerful server-side hardware. Here are the main benefits.

1. Dramatically Faster Publishing Times

The most immediate benefit is speed. When you publish a Tableau workbook with a large extract, you are physically uploading that entire data file. This can take anywhere from minutes to hours, depending on the file size and your network connection. An empty extract file is tiny, just a few kilobytes. By publishing it, you send the workbook’s empty "shell" to the server in seconds. You can then schedule Tableau Server to perform the actual data extraction, letting it use its direct, high-speed connection to the database.

  • Before: Create a 10GB extract locally (30 minutes), then publish the workbook and the extract (another 15 minutes). Total time: 45 minutes.
  • After: Create a 1KB empty extract locally (1 second), publish it (5 seconds), then trigger a server-side refresh (10 minutes on the server). Total time: You are free to do other work after 10 seconds.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

2. Streamlined Development and Deployment

In a team environment, this technique cleanly separates dashboard development from data management. A developer can build a dashboard using a small, filtered, local version of the data to ensure performance is snappy during creation. When it's time to deploy, they don't need access to the full production dataset on their machine. They simply publish the workbook with an empty extract, hand it off to the data team, and have them schedule the server to run the full refresh. This avoids security risks associated with developers having credentials to production databases and keeps the process smooth.

3. Handling Datasets Too Large for a Personal Computer

Sometimes, the production dataset is simply too big for your laptop to handle. If an extract requires more RAM or disk space than you have available, you won’t be able to create it locally at all. This technique is often the only way to work with these massive datasets. It allows you to define the connection and data model, publish that logic to the server, and let the server build the extract that your local machine could never manage.

4. Creating Reusable Report Templates

Another great use case is creating workbook templates. You can build a perfectly formatted dashboard complete with all the necessary calculated fields, parameters, and layout containers, but without any data. By publishing it with an empty extract, you create a reusable template on the server. When your team needs to create a new version of that report for a different client or region, they can simply connect this template to a new data source on the server without needing to re-upload the entire workbook framework each time.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

How to Publish an Empty Extract: A Step-by-Step Guide

The core concept is to fool Tableau into creating an extract with zero rows of data. We do this by applying a filter that is impossible to satisfy. Once that empty extract is on Tableau Server, the refresh process will ignore our "impossible" filter and pull in the full dataset.

Step 1: Connect to Your Data

Begin by opening Tableau Desktop and creating a normal connection to your live database (e.g., Snowflake, Google BigQuery, Microsoft SQL Server, etc.). Do not select the "Extract" option yet. You should be in "Live" mode.

Step 2: Create a Filter That Returns No Data

This is the key step. You need to create a filter at the data source level that ensures no records are returned. The most reliable method is to use a calculated field that will always evaluate to false.

Option A: The Calculated Field Method (Recommended)

  1. Navigate to the "Data Source" page in Tableau Desktop.
  2. In the top-right corner, click the "Filters" button and then click "Add…".
  3. In the "Add Filter" dialog, select the "Condition" tab.
  4. Choose the "By formula" option and enter a condition that is always false, like:
  5. Click "OK." Tableau will now query the data source with this filter and find that there are no matching rows. Your data preview grid will become empty.

Why this works so well: A calculation like 1=0 is universal and data-independent. It will work regardless of the columns, data types, or values in your source, making it a robust and reusable trick.

Option B: The Date or Dimension Filter Method

Alternatively, you can filter a specific field to an impossible value.

  • For a date field: Add a filter for your primary date field (e.g., [Order Date]) and set a range that's impossible, such as a single day from the year 1800.
  • For a dimension: Add a filter on a string field (e.g., [Category]) and filter it to a value you know doesn't exist, like "My Impossible Value".

While these methods work, they are less robust. If the field's name changes in the future or that "impossible" value is somehow added, the filter could fail.

Step 3: Switch to an Extract Connection

Now that your data source is filtered down to zero rows, you can create the extract.

  1. On the same "Data Source" screen, in the top-right corner, switch the connection type from "Live" to "Extract."
  2. Tableau may show a dialog asking you to define properties for your extract. Since it contains no data, you can just click "OK" or a similar confirmation.
  3. Go to a worksheet (e.g., Sheet 1) to prompt Tableau to actually create the empty extract file. This should happen almost instantly since there's no data to process.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Step 4: Remove or Hide the Filter Before Publishing

Once the empty extract is created, the special "impossible" filter has served its purpose. Crucially, Tableau Server and Cloud will ignore data source filters during a scheduled refresh, but it's good practice to manage this filter to avoid confusion for other developers.

  • Simply go back to the "Data Source" filters section and remove the 1=0 filter you created. The extract will remain empty until refreshed. This is the cleanest approach.
  • Alternatively, you can leave the filter and publish it. The server will bypass it during refreshes, but a future developer might see it and be confused.

Step 5: Publish the Data Source to Tableau Server or Cloud

You are now ready to publish your empty data source.

  1. Go to Server > Publish Data Source.
  2. Select your prepared data source from the list.
  3. In the publishing dialog, make sure to set up a refresh schedule. This is the whole point! Choose a recurring schedule (e.g., daily at 2:00 AM) that meets your business needs.
  4. You may also need to embed database credentials so the server can access the data on its own. Check with your Tableau administrator about authentication best practices.
  5. Click Publish. The empty extract and its connection settings will be uploaded to the server in seconds.

Step 6: Manually Trigger the First Refresh

After publishing, the extract on the server is still empty. You can either wait for the next scheduled run or trigger the first one manually to populate it with data immediately.

  1. Navigate to your data source on Tableau Server/Cloud.
  2. Go to the "Extract Refreshes" tab.
  3. From the actions menu (☰), select "Run Now."

Tableau Server will now connect directly to your database, run the full query (without your 1=0 filter), build the complete extract, and store it on the server. Your workbooks connected to this data source will now have access to all the data.

Final Thoughts

Publishing an empty Tableau extract is an essential technique for anyone dealing with performance issues or very large datasets. It cleverly separates the workbook development and publishing process from the time-consuming work of data extraction, offloading the heaviest task to the server where it belongs and making your workflow much more efficient.

While mastering these advanced Tableau workflows is a great way to manage complexity, there are simpler ways to get answers from your data. At Graphed, we automate the entire reporting process. You connect your data sources like Google Analytics, Shopify, and Salesforce directly and then use conversational language to build dashboards. Instead of managing extract filters and refresh schedules, you can just ask, "Show me my marketing funnel from ad click to purchase last month," and get a live, automated dashboard in seconds.

Related Articles