Configuring object-level replication for 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 remote regions as needed.

Ordinarily, Snowflake replicates the entire database(s) containing your data product, which is the tables, schemas, UDFs, UDTFs, views, and other database objects that you add to your listing.

To help reduce costs and ease the manageability burden, you can use object-level replication to let you choose to replicate only the tables and views in a data product to a remote region using auto-fulfillment.

About object-level replication

Object-level replication replicates only the tables and views in a data product, and any tables referenced by a secure view in the data product, to a remote region. For more details, see What gets replicated by object-level replication.

When you configure auto-fulfillment, object-level replication is used if your data product only contains supported objects.

Diagram showing a consumer account in the AWS US East (Ohio) region getting a data product from the Snowflake Marketplace and then Snowflake initiating auto-fulfillment to replicate the data product to the Secure Share Area in the consumer region (AWS US East (Ohio)) from the provider account and region, AWS US West (Oregon). In this case, the data product is using object level replication so a share in the provider database, and only the objects in the share, are replicated to the Secure Share Area in AWS US East (Ohio), and when the consumer installs the data product they install it from the Secure Share Area in their region.
  1. The first consumer in a region gets the listing.

  2. Auto-fulfillment replicates the objects in the share to the Secure Share Area.

  3. Any consumer that gets the listing gets the data product from the Secure Share Area in their Snowflake region.

Supported objects for object-level replication

You can use object-level replication to auto-fulfill your listing if your data product contains the following objects:

You cannot use object-level replication in the following cases:

  • If your data product contains other objects, such as database roles, tags, masking and row access policies, and dynamic tables. If your data product contains these objects, auto-fulfillment instead replicates the entire database.

  • If the objects in the data product are already replicated as an entire database to one or more regions, for example, as part of another listing.

Data products that contain objects not eligible for object-level replication can still use auto-fulfillment, and in those cases the entire database is replicated to the remote region. See Configuring Cross-Cloud Auto-Fulfillment.

What gets replicated by object-level replication

When your data product is replicated using object-level replication, only the objects granted directly to the share or application, or referenced by a secure view in your share or application package, are replicated.

For example:

Object in data product

What is replicated

Table in a database and schema

Table

Secure view created from a table in the same database

Secure view and table

Secure view created from a table in a different database and granted to a share using REFERENCE_USAGE

Secure view and table

Table in a database that is already replicated

Entire database

Set up object-level replication

You set up object-level replication when you set up the region availability (for a listing published on the Snowflake Marketplace) or when you add a consumer located in another region (for a listing shared privately).

  1. Create a listing. See Creating and publishing a listing.

  2. Add a data product that contains only supported objects. To add a data product that contains a secure view granted to a share using the REFERENCE_USAGE privilege, see Share a secure view that reference objects in another database by using object-level replication.

  3. Set up regions or accounts to share with to start setting up auto-fulfillment:

    • For a listing published to the Snowflake Marketplace:

      1. Locate the Region Availability section and select Add

      2. For Region availability, keep the default of All regions or select Custom regions for your listing.

    • For a listing shared privately, add a consumer account in a remote region.

  4. For Fulfillment method, keep the default of Automatic.

  5. Verify that for What gets replicated, you see Objects in your data product.

  6. Select your desired refresh frequency to match how frequently you want your data product to be updated in remote regions.

  7. Publish your listing, or save it as a draft.

Share a secure view that reference objects in another database by using object-level replication

You cannot select the secure view while creating a listing and use Snowsight to create the share. Instead, to share a secure view that references a table in a different database:

  • Grant the secure view to a share using the REFERENCE_USAGE privilege. See Sharing Data from Multiple Databases.

  • Ensure that the database referenced by the view is not replicated to a remote region as part of another listing or by account or database replication.

After you create your secure view and grant it to a share using the REFERENCE_USAGE privilege, create a listing to publish your data product on the Snowflake Marketplace or share it with specific consumers:

  1. Create a listing. See Creating and publishing a listing.

  2. Add the share as your data product.

  3. Set up regions or accounts to share with to start setting up auto-fulfillment:

    • For a listing published to the Snowflake Marketplace:

      1. Locate the Region Availability section and select Add

      2. For Region availability, keep the default of All regions or select Custom regions for your listing.

    • For a listing shared privately, add a consumer account in a remote region.

  4. For Fulfillment method, keep the default of Automatic.

  5. Verify that for What gets replicated, you see Objects in your data product and referenced objects.

  6. The refresh frequency for your data product is set to whatever is set at the account level. See Set account-level refresh frequency.

  7. Publish your listing, or save it as a draft.