> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://help.sigmacomputing.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://help.sigmacomputing.com/_mcp/server.

# Export to cloud storage

> Sigma allows you to export data to cloud storage on a scheduled or ad hoc basis.

Sigma allows you to export data to cloud storage on a scheduled or ad hoc basis. This is particularly useful for large, multi-GB data exports.

When exporting data to cloud storage, you can choose between exports generated in your data warehouse, and exports generated directly in Sigma. Depending on which method you choose, you have different options for file format, export limit, and storage integration configuration needs.

This document covers the different cloud storage options available, as well as how to configure ad hoc and scheduled cloud storage exports.

Sigma generates exports from the workbook's latest published version. Changes you make to a workbook draft, custom view, or exploration cannot be exported unless you save or publish the changes. Depending on your export destination, you can also choose to export a saved view or tagged version of the workbook. If you are exporting elements that are only on a saved view, you must open the export modal from the saved view.

For a matrix of supported file formats and saved view/version tag export support, see [Available export destinations and formats](/docs/send-or-schedule-workbook-exports#available-export-destinations-and-formats).

## User requirements

For all cloud storage exports:

* You must be assigned an account type with the **Export to cloud permission** enabled.

There are additional requirements if you choose to use [data warehouse generated exports when exporting to cloud storage](#choosing-a-cloud-storage-export-method).

**Data warehouse generated exports only:**

If you are using a Snowflake connection:

* The workbook's data source must originate from a Snowflake connection.

If you are using a Redshift connection:

* The workbook's data source must originate from a Redshift connection.
* You must have a Redshift cluster with the data you want to unload.

## Choosing a cloud storage export method

Each cloud storage export method has different configuration requirements and available export formats and limitations. The two methods available are:

* **Exports generated directly in Sigma**: Sigma builds the export file, similar to other export methods. This results in a cleaner and more consistent export format that aligns with what users sees in Sigma.

* **Exports generated in your data warehouse**: Your data platform builds the export file. As each data platform has its own export syntax and behavior, this may result in a inconsistencies between the final exported file and what users see in Sigma.

A brief overview of the key considerations for each method is:

<table>
  <thead>
    <tr>
      <th />

      <th>
        **Sigma generated**
      </th>

      <th>
        **Data warehouse generated**
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        **Supported connections**
      </td>

      <td>
        All 

        [Sigma-supported connections](/docs/region-warehouse-and-feature-support)
      </td>

      <td>
        Snowflake and Redshift only. With Snowflake, you can export to Amazon S3, Google Cloud Storage, or Azure Blob Storage. With Redshift, you can export to Amazon S3.
      </td>
    </tr>

    <tr>
      <td>
        **Exportable workbook portions**
      </td>

      <td>
        Entire workbook, workbook page, and workbook elements
      </td>

      <td>
        Workbook elements only
      </td>
    </tr>

    <tr>
      <td>
        **All supported file types**
      </td>

      <td>
        Excel, PDF, PNG, JSON, CSV
      </td>

      <td>
        CSV files only
      </td>
    </tr>

    <tr>
      <td>
        **File size limit**
      </td>

      <td>
        1GB per file
      </td>

      <td>
        5GB per file
      </td>
    </tr>

    <tr>
      <td>
        **Storage integration configuration**
      </td>

      <td>
        Defined in Sigma
      </td>

      <td>
        Defined in your data warehouse
      </td>
    </tr>
  </tbody>
</table>

## High-level overview

Exporting to cloud storage is a multi-step process. The required steps vary depending on your chosen export method. A high-level overview is:

1. Configure your storage integration
   * [Configure an integration for Sigma generated exports](#configure-an-integration-for-sigma-generated-exports)
   * [Configure an integration for data warehouse generated exports](#configure-an-integration-for-data-warehouse-generated-exports)
2. (*Data warehouse generated exports only*) [Format a target file path](#step-2-format-a-target-file-path)
3. Export your data as desired:
   * [Send an ad hoc export to cloud storage](#send-an-ad-hoc-export-to-cloud-storage)
   * [Schedule a cloud storage export](#schedule-a-cloud-storage-export)

## Step 1: Configure your storage integration

The location where you configure your storage integration and the steps to configure it depend on the type of cloud storage export you select:

* Configure an integration for Sigma generated exports
* Configure an integration for data warehouse generated exports

### Configure an integration for Sigma generated exports

A user assigned the admin account type must configure a storage integration for your Sigma organization. See [External storage integration overview](/docs/external-storage-integration-overview).

After configuring this, proceed to [Step 3: Export your data as desired](#step-3-export-your-data-as-desired). You do not need to complete [Step 2: Format a target file path](#step-2-format-a-target-file-path).

### Configure an integration for data warehouse generated exports

See instructions for your data platform:

* [Snowflake](#for-snowflake-connections)
* [Redshift](#for-redshift-connections)

### For Snowflake connections

Configure either a Snowflake [cloud storage integration](#create-a-snowflake-cloud-storage-integration) or an [external stage](#create-an-external-stage) to store your data. If you want to use private link with your Snowflake connection, you must configure an external stage.

#### Create a Snowflake cloud storage integration

To create a storage integration, follow Snowflake’s instructions to create your storage integration. See [CREATE STORAGE INTEGRATION](https://docs.snowflake.com/en/sql-reference/sql/create-storage-integration.html) in the Snowflake documentation, or follow the guide for your cloud storage provider:

* **Amazon S3**: See [Option 1: Configuring a Snowflake storage integration to access Amazon S3](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration) in the Snowflake documentation.
* **Google Cloud Storage**: See [Configuring an integration for Google Cloud Storage](https://docs.snowflake.com/en/user-guide/data-load-gcs-config) in the Snowflake documentation.
* **Azure**: See [Configuring an Azure container for loading data](https://docs.snowflake.com/en/user-guide/data-load-azure-config) in the Snowflake documentation. Follow the steps for Option 1: Configuring a Snowflake storage integration.

After you set up the storage integration, grant the `USAGE` privilege on the storage integration to the Snowflake role used by your Sigma Snowflake Connection. A Sigma admin can check the role used by the connection in the connection settings. See [Connect to Snowflake](/docs/connect-to-snowflake).

If no role is specified in your Sigma Snowflake Connection, Snowflake uses a default role.

After configuring this, proceed to [Step 2: Format a target file path](#step-2-format-a-target-file-path).

#### Create an external stage

To create an external stage, see the Snowflake documentation on <a href="https://docs.snowflake.com/en/sql-reference/sql/create-stage" target="_blank">CREATE STAGE</a>.

After configuring this, proceed to [Step 2: Format a target file path](#step-2-format-a-target-file-path).

### For Redshift connections

1. Before you can export to cloud storage from Sigma, you must set up an Amazon S3 bucket to export to. See the AWS documentation on [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).
2. Grant the appropriate write access permissions for your AWS Identity and Access Management (IAM) role. You need to grant `s3:PutObject` permissions. For more information, see the AWS documentation on [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) and [Adding a bucket policy by using the Amazon S3 console](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html).
3. Verify that you are able to unload data from Redshift to S3 by setting up a test export from Redshift. The export should look something like:

   ```
   unload ('select * from venue')   
   to 's3://amzn-s3-demo-bucket/tickit/unload/venue_' 
   iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
   ```

   For more information on this command, see the AWS documentation on [Unloading data from Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/t_Unloading_tables.html).

   After configuring this, proceed to [Step 2: Format a target file path](#step-2-format-a-target-file-path).

## Step 2: Format a target file path (Warehouse generated exports only)

If you are using a cloud storage integration, see [Format a cloud storage destination URI](#format-a-cloud-storage-destination-uri). If you are using an external stage, see [Format an external stage URI](#format-an-external-stage-uri).

### Format a cloud storage destination URI

For both Snowflake and Redshift connections, the destination URI represents the target file path for your export in your cloud storage service.

Use the following template to format your URI:

`<schema>://<bucket>/<filepath>/<filename><filetype><compression>`

Where:

* **Schema**: The export destination. Specify “s3” if exporting to AWS S3, “gcs” if exporting to GCS, and "azure" if exporting to Azure.
* **Bucket**: The highest level storage object supported by the cloud storage provider. Your S3 bucket, GCS bucket, or Azure container.
* **File path** (optional): Target subdirectories in the bucket or container. If you do not specify a file path, exported files are added directly to the root.
* **File name**: A file name to use for the exported file.
* **File type**: The file format for the exported file. Must be `.csv`.
* **Compression** (optional): A compression option for the exported file. Can only be `.gz`.

An example destination URI is:

`s3://my-sigma-bucket/cloud-exports/sales.csv.gz`

If your URI is identical to an existing file in the bucket, the existing file is overwritten.

### Format an external stage URI

If you are using an external stage, use the following template to format your URI:

`@<database>.<schema>.<stage_name><filename><filetype><compression>`

This template follows the convention for fully-qualified stage names in Snowflake, with the addition of the `@` character at the beginning of the name. For more information about schema names in Snowflake, see Snowflake's documentation on <a href="https://docs.snowflake.com/en/sql-reference/identifiers" target="_blank">Object identifiers</a>.

## Step 3: Export your data

You can export to cloud storage on an [ad hoc](#send-an-ad-hoc-export-to-cloud-storage) or [scheduled](#schedule-a-cloud-storage-export) basis.

### Send an ad hoc export to cloud storage

1. From the workbook menu (<img src="https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/caret.svg" alt="" />), select **Share and export> Export...**.

   If the **Cloud Storage** option is not available, the workbook is in **Edit** mode. Either publish your draft or return to the latest published or tagged version of the workbook before attempting to export.
2. Select **Cloud storage**.
3. In the **Export generation** dropdown, select either **Direct from Sigma** or **From data warehouse**. See [Choosing a cloud storage export method](#choosing-a-cloud-storage-export-method) for more information.
4. If you selected **Data warehouse**, enter your cloud storage information:
   * For Snowflake:
     * If you are using a cloud storage integration, in the **Storage integration** field, enter the name of your Snowflake storage integration. If you are using an external stage, leave this field blank. See [Configure cloud storage](#create-a-snowflake-cloud-storage-integration).
     * For **Cloud storage URI**, enter your cloud storage destination URI or external stage path. For guidance formatting the URI, see [Format a cloud storage destination URI](#format-a-cloud-storage-destination-uri) or [Format an external stage URI](#format-an-external-stage-uri).
   * For Redshift:
     * For **IAM role**, enter your AWS Identity and Access Management role.
     * For **Cloud storage URI**, enter the destination URI. For guidance formatting the URI, see [Format a cloud storage destination URI](#format-a-cloud-storage-destination-uri).
5. If you selected **Direct from Sigma**, your organization's storage integration details are automatically populated. Confirm these details are correct. See [Configure an integration for Sigma generated exports](#configure-an-integration-for-sigma-generated-exports) for more information.
6. From the **Element** menu, select the portion of the workbook you want to export.
7. For the specified element, select a file format.
8. Click **Export**.

Sigma sends an export confirmation message to your email address.

### Schedule a cloud storage export

1. From the workbook menu (<img src="https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/caret.svg" alt="" />), select **Share and export> Schedule exports...**.

2. If this is the first schedule for the workbook, click **Add schedule**, otherwise click **+ New schedule**.

3. Select **Cloud storage**.

4. In the **Export generation** dropdown, select either **Direct from Sigma** or **From data warehouse**. See [Choosing a cloud storage export method](#choosing-a-cloud-storage-export-method) for more information.

5. If you selected **Data warehouse**, enter your cloud storage information:
   * For Snowflake:
     * If you are using a cloud storage integration, in the **Storage integration** field, enter the name of your Snowflake storage integration. If you are using an external stage, leave this field blank. See [Configure cloud storage](#create-a-snowflake-cloud-storage-integration).
     * For **Cloud storage URI**, enter your cloud storage destination URI or external stage path. For guidance formatting the URI, see [Format a cloud storage destination URI](#format-a-cloud-storage-destination-uri) or [Format an external stage URI](#format-an-external-stage-uri).
   * For Redshift:
     * For **IAM role**, enter your AWS Identity and Access Management role.
     * For **Cloud storage URI**, enter the destination URI. For guidance formatting the URI, see [Format a cloud storage destination URI](#format-a-cloud-storage-destination-uri).

6. If you selected **Sigma**, your organization's storage integration details are automatically populated. Confirm these details are correct. See [Configure an integration for Sigma generated exports](#configure-an-integration-for-sigma-generated-exports) for more information.

7. From the **Element** menu, select the portion of the workbook you want to export.

8. For the specified element, select a file format.

9. (Optional) Select the checkbox for **Prefix file name with the current date and time**.

   If you do not select this option, the same file name is used for each scheduled export and the file is overwritten every time the export runs.

10. In the **Frequency** section, set the delivery schedule:

* (Optional) Select the dropdown for **Daily** and select **Weekly**, **Monthly**, or **Custom**.

  * For **Daily**, select **Once a day** or **Multiple times**.
  * For **Weekly**, select which days of the week to send an email, and choose between **Once a day** or **Multiple times**.
  * For **Monthly**, select which day of the month to send an email, and the time of day.
  * For **Custom**, specify a schedule using cron syntax. See [Set up a custom delivery schedule](/docs/configure-additional-options-for-exports#set-up-a-custom-delivery-schedule).

    If you select **Multiple times**, specify the frequency. For example, every 2 hours on the :15 of the hour between 9 AM and 6 PM.

    If you don't have the option to set a specific frequency, export frequency might be restricted for your organization. For more details, see [Restrict export recipients and frequency](/docs/restrict-export-recipients).
* (Optional) Adjust the default schedule time zone using the dropdown menu.
* (Optional) Choose how often to send the export: **Always** or only **If a condition is met**. See [Schedule a conditional export or alert](/docs/schedule-a-conditional-export-or-alert).
  * (Optional) If you choose to send an export only **If a condition is met**, you can turn on the switch to stop notifying after a set number of occurrences per day, week, or in total.

11. (Optional) Select the checkbox for **Customize control values** to filter the exported data according to the value of one or more workbook controls. See [Configure additional options for exports](/docs/configure-additional-options-for-exports).

12. Click **Create**.

## Related resources

* [Schedule exports using conditions](/docs/schedule-exports-using-conditions)
* [Send and schedule exports from workbooks](/docs/send-and-schedule-exports-from-workbooks)
* [Connect to Snowflake](/docs/connect-to-snowflake)