Skip to content

Snowflake Marketplace Accelerator 2.0 speeds up monteization and inter/intra org collaboration

License

Notifications You must be signed in to change notification settings

Snowflake-Labs/sfguide-marketplace-accelerator2.0

Repository files navigation

Marketplace Accelerator 2.0

Accelerator 2.0 is built from past provider learnings and evolved best practices. It aims to speed up launching products on marketplace and go-to-market globally within hours instead of weeks. It does so by delivering a blueprint and toolkit scripts that deploy the blueprint

Step1: Determine data product's category

image
Determine your category based on whether you are using a standard/common data product and whether this dataset is used as-is by all consumers, filtered (row and/or column) so that each consumer sees a different slice of the main dataset, or customized for each individual consumer.

Step2: Choose the blueprint specific to data product category

image

Step3: Choose sampling rule

In this step, choose a rule to sample your data that will be made available with your storefront listing on marketplace. Below visual provides most popular sampling rules to prepare samples / evalulation data. You may choose one of the below rule or create your own that suits your needs.

image

Step4: Deploy blueprint using toolkit scripts

Toolkit scripts are included in this github repository.

Highly recommend reviewing toolkit process flow diagram and toolkit topology diagram.

0-init.sql

Requires AccountAdmin Role
Installs toolkit. Execute this file as is.

1-PrepareAccount.sql

Requires AccountAdmin Role
Contains an example call to stored procedures that prepares your snowflake account.

2a-CreateListingToplogy.sql

Requires MPAdmin Role
Contains example call to stored procedures that create containers to store base data and enable adding sample data; for a given data product (listing)

2b-LoadBaseData.sql

Requires MPAdmin Role
Includes video walk through to load data using excel and from cloud storage alonghwith code examples

2c-PrepareSamples.sql

Requires MPAdmin Role
Contains example call to stored procedures that prepares sample data and guidance to create public listing of your data product with self-serve samples on marketplace. Example calls in 2c-PrepareSamples.sql demonstrate Sample(k) records rule to prepare sample data. If you would like to learn about other rules see section Step3: Choose sampling rule

*NOTE: Once above steps are complete - You are ready to capture leads coming from marketplace. Follow "3-Fulfill-xxx" module to train your sales-ops or complete fulfillment for your paying consumers.

Choose the appropriate "3-Fulfill-xxx" module based on your product category i.e. Standard, Tailored, Unique *

3-Fulfill-StandardProduct

Requires MPAdmin Role
Contains example call to stored procedure that prepares commercial objects (consumer facing), and delivers them to paying consumers
*Applies only to data products of Standard category

OR

3-Fulfill-TailoredProduct

Requires MPAdmin Role
Contains example call to stored procedure that prepares commercial objects (consumer facing), entitles slice of data (values to pre-defined filters) and delivers them to paying consumers
*Applies only to data products of Tailored category

OR

3-Fulfill-UniqueProduct

Requires MPAdmin Role
Contains example call to stored procedure that prepares commercial objects (consumer facing) curated for a specific paying consumer, and delivers curated objects to them
*Applies only to data products of Unique category

Deployment Best Practices

Below are best practices to deploy your data products on marketplace. Toolkit enforces certain best practices, if you decide to use it, and other have to be enforced manually. It is very important to review the best practices and implement them to ensure scale and best experience for customers.

Enforced Best Practices by Toolkit

  1. Use private listings for data delivery over direct shares. Private listings enable usage metrics and remote cross-cloud auto fulfillment
  2. Materialize objects for sample listings to marginalize replication cost for lead generation. Leverage create-table-as in conjunction with sampling clause
  3. Ensure all shared objects and their dependencies are co-located under the same database. E.g. When sharing a secure view ensure all referenced tables in view definition are in same database as secure view. Required for correct functioning of cross-cloud auto-fulfillment
  4. Set time travel on all objects. 1 day for standard edition, 7 days for higher editions. Set at database/schema level
  5. Case insensitive object identifiers. Set at database/schema level. Note: ignore case parameter does not work in retrospective
  6. Separation of duties: Create role for marketplace administrator functions while leveraging accountadmin (privileged role) only as needed.
  7. Develop naming scheme for Private listings and other objects. Example: Include provider name, consumer name, Product name in private listing name. In XNYCORP_TO_ABCINC_INVENTORY private listing, XNYCORP is provider name, ABC_INC is consumer name and INVENTORY is product name. This helps with querying usage insights via sql or provider_studio UI

Not Enforced Best Practices by Toolkit (But highly Recommended)

  1. Ensure external tables are not co-located under the same database as shared object. Required for correct functioning of cross-cloud auto-fulfillment
  2. Enable change tracking on shared tables and tables under shared views
  3. Add comments on all objects and attributes which serves as data dictionary for consumers
  4. If row access policy for tailored products is implemented on large tables (>500G), set clustering key on filtering attributes in the policy

About

Snowflake Marketplace Accelerator 2.0 speeds up monteization and inter/intra org collaboration

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published