Configuring Cross-Cloud Auto-fulfillment

If you want to automatically replicate the data product associated with your listing to other Snowflake regions, configure Cross-Cloud Auto-fulfillment.

When auto-fulfillment is enabled for a listing, Snowflake automatically replicates your data product to consumer regions as needed. The data product is the tables, schemas, UDFs, UDTFs, views, etc. that are part of your listing.

By using auto-fulfillment, you can avoid manually replicating your data products and approving requests for your listings, helping consumers access your listings faster.

Note

Auto-fulfillment is not supported for personalized listings.

Auto-fulfillment is not currently supported for Snowflake U.S. Government Regions, such as AWS GovCloud.

About Cross-cloud Auto-fulfillment

You can configure and enable auto-fulfillment when a listing is in either draft or published state. When auto-fulfillment is enabled for a listing, Snowflake automatically fulfills your listing’s product to regions as needed.

The availability of your listing in other regions depends on the type of listing:

  • For free or paid listings on the Snowflake Marketplace, you can use cross-cloud auto-fulfillment or manually replicate the data. You can pre-associate a share with the listing in a remote region to let consumers get the product instantly without submitting a request.

  • For personalized listings, you must manually replicate data when a consumer requests your listing. See Manually replicate data before fulfilling a listing request.

  • For private listings, Snowsight automatically detects whether or not the target account is in a different region and enables auto-fulfillment. You cannot manually replicate private listings to other regions at this time.

Note

For listings published on the Snowflake Marketplace, your product exists only in the region of the account that created the product. After the listing is published on the Snowflake Marketplace, auto-fulfillment fulfills the data product to your chosen regions only when a consumer requests the product in a region.

When you make a data product available in other regions, you incur additional costs. Refer to Managing Cross-Cloud Auto-fulfillment costs.

How cross-cloud auto-fulfillment works

When you publish a private listing or when a consumer requests your data product, Snowflake checks if the product exists in the consumer’s region. If the product already exists in the consumer’s region, fulfillment of the listing continues.

If your product does not yet exist in the consumer’s region, the following occurs:

  • The system creates a secure share area for you in the consumer’s region.

  • Snowflake fulfills the data product from the original source region to the secure share area in the consumer’s region according to a refresh frequency defined by you, the provider. The date and time of the refresh depends on when the first consumer requested the data product.

  • All future consumers in the region receive the data product from the secure share area.

Refer to Managing Cross-Cloud Auto-fulfillment costs for details about cost.

Considerations for auto-fulfillment

When you use auto-fulfillment for your listings, consider the following:

  • If you signed up for Snowflake using AWS Marketplace, GCP Marketplace, or Azure Marketplace, you can only create accounts and secure share areas in those clouds. Replicating listings to regions outside of your current cloud service region will fail.

  • Depending on the size of your data product, it can take some time for the data product to be available to the consumer. The size of your data product can also affect the cost of auto-fulfillment.

  • The secure share area used to fulfill your data product to consumers in a remote region does not support Tri-Secret Secure.

  • You cannot use auto-fulfillment for listings in a data exchange. To replicate data to other regions for a data exchange, see Sharing Data Securely Across Regions and Cloud Platforms.

Note

Auto-fulfillment enforces a 10TB limit on the size of the database being replicated. When attaching a share to a listing, Snowsight checks the size of the database and returns an error if the size of data to be replicated is larger than 10TB.

When the listing is auto-fulfilled, the consumer receives an error if the source data is larger than 10TB.

After assessing the cost implications, you can increase the size limit at the account level using a parameter. Refer to INITIAL_REPLICATION_SIZE_LIMIT_IN_TB

Unsupported object types for auto-fulfillment

The following object types are not supported by auto-fulfillment:

  • Objects granted to a share using database roles, because database roles are not included in the replication of a primary database.

  • Secure views that reference data stored in other databases with the REFERENCE_USAGE privilege.

  • Stages, directory tables, or external tables.

  • Objects designated as part of a failover group. Refer to Introduction to Replication and Failover.

If your data product contains any of the listed objects, you must use manual fulfillment. Refer to Manually replicate data before fulfilling a listing request.

Support for auto-fulfillment in Virtual Private Snowflake (VPS)

By default, VPS does not permit data sharing outside of the VPS. VPS customers may choose to enable all accounts within their organization to receive data from non-VPS customers using data sharing and collaboration, such as a listing shared with the VPS account.

When auto-fulfillment for VPS customers is enabled, all accounts within the VPS customer’s organization can be targeted for data sharing by the non-VPS customer specified by the VPS customer. VPS customers are not permitted to send data to other VPS or non-VPS customers via data sharing using auto-fulfillment.

To start receiving data from non-VPS customers, contact Snowflake Support and see Allow providers to share private listings into your VPS for more details.

About enabling auto-fulfillment

When you configure a listing and make it available in a region other than your local region, or you share a private listing with consumer accounts in another region, you can enable auto-fulfillment. See Region availability (Marketplace listings only). You must add a data product to your listing before you can set up auto-fulfillment.

Required privileges

To perform auto-fulfillment tasks, you must an account administrator role (ACCOUNTADMIN) with the following:

Set up auto-fulfillment

To enable auto-fulfillment for a listing, do the following:

  1. Sign in to Snowsight.

  2. In the left navigation bar, select Data » Provider Studio » Listings.

  3. Select the listing for which you want to enable auto-fulfillment.

  4. Select Region Availability » Edit.

  5. For Region availability, choose your desired availability.

    • By default, All regions is selected. Choosing all regions ensures the availability of your listing in any future regions added by Snowflake.

    • For paid listings, Custom regions is selected by default. Paid listings are only available in supported regions and any future supported regions added by Snowflake.

    • If your listing has specific regional limitations, select All regions to change the region availability to Custom regions. You can then select the regions in which you want to offer your data product.

      When you choose custom regions, your listing is visible in all current Snowflake Marketplace regions, but consumers can only get your data product in the regions you specify. Your listing will also not become automatically available in any new regions.

  6. For Fulfillment method, Automatic fulfillment is selected by default. With cross-cloud auto-fulfillment, your data product is automatically fulfilled to a region and you incur costs only when there is consumer demand in that region.

    If you can’t use auto-fulfillment, select Manual to manually replicate your data product. To fulfill requests manually, you must set up accounts in regions with consumer demand, manually replicate the product to each account, create secure shares in each account, and attach those shares to this listing. Refer to Manually replicate data before fulfilling a listing request

  7. If you selected automatic fulfillment:

    1. Select a refresh frequency from the drop-down list, then enter a value. You must select a refresh frequency of at least 8 days.

    2. If you don’t have a default warehouse set, select a warehouse to use for auto-fulfillment.

    3. When you add a data product to your listing, Snowflake performs a compatibility check to validate that your data product can be auto-fulfilled to other regions. If the check returns any incompatibilities, you might need to update your data product. See Troubleshooting Cross-Cloud Auto-fulfillment.

    4. Select Save and Enable Fulfillment.

      Auto-fulfillment for the listing is now enabled. The data product attached to the listing is not fulfilled to any regions until the listing is published and a consumer requests the data product. Refer to How cross-cloud auto-fulfillment works.

  8. If you chose to manually fulfill the listing, select Save. Before publishing the listing, you must replicate data to each of the available regions you select. Refer to Manually replicate data before fulfilling a listing request.

Monitoring and managing auto-fulfillment settings

Manage your listing to monitor the regions where consumers are using your listing, monitor the cost of replication, and make changes to the refresh frequency for your listing.

Note

You must use a role with the Required privileges for configuring auto-fulfillment.

To manage or monitor auto-fulfillment for your listing, do the following:

  1. Sign in to Snowsight.

  2. In the left navigation bar, select Data » Provider Studio » Listings.

  3. Select the row for the listing that you want to manage.

  4. From the listing details page, access auto-fulfillment settings:

    1. For a listing offered on the Snowflake Marketplace, in the Region Availability section, select Manage.

    2. For a listing offered to specific consumers, in the Consumer Accounts section, select .

  5. Select the option that you want to manage for your listing:

    • Select Manage Regions & Replication to see the regions where the listing is fulfilled and the status of auto-fulfillment. You can add or remove availability for a particular region or check the replication status.

      Select a region to see the timestamp of the last sync and how many consumers are accessing the data.

      If no consumers have accessed your listing’s product in a region, you can select Remove Region.

      If a consumer has accessed your listing’s product in a region, you cannot remove the region. Instead, if you want to remove your data product from that region, you must remove the availability of the listing from that region, or delete the listing.

    • Select Update Refresh Frequency to update the replication interval and frequency.

      You can specify only one schedule for each database. Updating the refresh frequency for a listing updates the refresh frequency for all listings with shares pointing to the same database.

      You cannot manage when a refresh occurs. Instead, the refresh schedule for a data product in a region is based on the date and time that a consumer in that region first requests your data product.

    • Select Monitor Replication Cost to monitor the costs related to fulfilling the data product to other regions. Refer to Managing Cross-Cloud Auto-fulfillment costs.

See Modifying published listings for more details about modifying listings.

Allow accounts to set up cross-cloud auto-fulfillment

If you are the organization administrator (i.e., if you are using the ORGADMIN role) for an account, delegate the privileges required to set up cross-cloud auto-fulfillment to the ACCOUNTADMIN role in the accounts in your organization.

You can delegate the privileges, revoke the privileges, and determine if the privileges have been delegated to a specific account. You can only delegate privileges to other accounts in your organization.

Delegate privileges to set up cross-cloud auto-fulfillment

To enable users with the ACCOUNTADMIN role to set up cross-cloud auto-fulfillment, call the system function named SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT. The arguments for this system function are described below.

Calling this system function requires the ORGADMIN role.

SELECT SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT(
  '<account_name>'
  );
Copy

Where:

account_name

Specifies the name of the account in which to enable users with the ACCOUNTADMIN role to manage cross-cloud auto-fulfillment. See Account Identifiers.

Revoke privileges to set up cross-cloud auto-fulfillment

To prevent users with the ACCOUNTADMIN role from setting up cross-cloud auto-fulfillment, call the system function named SYSTEM$DISABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT. The arguments for this system function are described below.

Calling this system function requires the ORGADMIN role.

SELECT SYSTEM$DISABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT(
  '<account_name>'
  );
Copy

Where:

account_name

Specifies the name of the account in which to prevent users with the ACCOUNTADMIN role from manage cross-cloud auto-fulfillment. See Account Identifiers.

Check if an account can set up cross-cloud auto-fulfillment

To determine whether users with the ACCOUNTADMIN role in a specific account are permitted to set up cross-cloud auto-fulfillment, call the system function named SYSTEM$IS_GLOBAL_DATA_SHARING_ENABLED_FOR_ACCOUNT. The arguments for this system function are described below.

Calling this system function requires the ORGADMIN role.

SELECT SYSTEM$IS_GLOBAL_DATA_SHARING_ENABLED_FOR_ACCOUNT(
  '<account_name>'
  );
Copy

Where:

account_name

Specifies the name of the account for which you want to check if users with the ACCOUNTADMIN role can manage cross-cloud auto-fulfillment. See Account Identifiers.