Many companies struggle with the expense of integrating and reporting off of vendor data. Many companies also struggle with being able to identify and quickly integrate valuable data from third-party vendors.
Snowflake makes it easy to be both a consumer and a vendor of data. As more companies and organizations build out their data capabilities, many will find themselves filling both roles.
One of the key selling points for Snowflake is the ease of sharing and accessing data. So you know how to equip your organization with this game-changing platform, let’s explore the two main methods of Snowflake data sharing…Secure Data Sharing and the Snowflake Data Marketplace.
Snowflake Secure Data Sharing
Snowflake provides a mechanism to share selected database objects from one or more databases to other Snowflake accounts called Secure Data Sharing. For those that do not have an account with Snowflake, a provider can create special Reader Accounts to provide access.
Data providers are given the tools to be able to securely monetize their data by allowing access to consumers via the Snowflake Data Marketplace. Although Data Marketplace is technically a Preview Feature, it is available to all non-virtual Private Snowflake (VPS) accounts since it uses Secure Data Sharing.
Secure Data Sharing is available in all editions except Virtual Private Snowflake (VPS). However, there are special business considerations when sharing from Business Critical Editions to other accounts:
- Snowflake recommends having signed Business Associate Agreements between accounts before sharing data.
- Avoid sharing sensitive data from a Business Critical account with non-Business Critical accounts.
- Leverage Secure Views for sensitive data. Secure views hide the view definition from those without privileges.
What Data Can Be Shared in Snowflake?
In Snowflake, you can configure your account to share tables (standard and external), secure views (standard and materialized) and secure User Defined Functions (UDFs). These objects can come from one or more databases and are available to consumers across different regions and cloud platforms.
Once a share has been configured, consumers have access, without any data being copied. This enables quick setup and storage savings for the consumer. The only costs to the consumer, outside of any agreements between parties, are from the virtual warehouses that are used to query the shared data.
Any updates made to the underlying data are instantly visible to the consumer. Consumers can even set up Streams on the shared tables to detect changes to the underlying data.
Special setup must be done by the provider to enable streams—which includes enabling change tracking and extending the data retention period on the table to account for when a stream is not consumed on a consistent basis.
How Do You Make a Snowflake Share?
- Create the share. A share is easily created via SQL, but that just creates an empty share.
- Grant privileges to the desired database and objects. When granting privileges on individual objects, make sure to grant privileges on the container objects first. For instance, you would grant usage on a database, then grant usage on a schema contained by the database, and finally, grant select on a table or view within that schema.
- Share it with people. The final step is to add accounts to the share and those accounts can view the share and create a database on their end.
Snowflake Data Marketplace
In the Snowflake Data Marketplace, data providers are able to publish listings of the data they have to offer without having to build and maintain APIs or channels to provide that data. Providers also share a standard listing that contains generic or aggregated data.
Personalized listings can be customized and offered to consumers, giving providers the option to monetize their data. A provider just needs to request to be added to the Snowflake Data Marketplace via the Web Interface or from the Snowflake website.
Snowflake Data Marketplace Provider Requirements
There are a few requirements in order to be approved as a data provider.
- You must have an account in the supported regions and have a signed Snowflake Provider agreement.
- The data must be fresh (updated regularly), real (no test or sample data), legally shareable (must be the owner of the data or be able to share it).
- You must set up your provider profile. This is where you can upload your logo, add your company name and contact information, and give a description of your company and the data you are providing.
Tools that enable nearly seamless sharing, integration, and utilization of data will make that future possible. By reducing the costs and friction of sharing data, Snowflake is helping create the conditions for a faster, more collaborative data ecosystem.
The SkyPoint CSG team can build your complete data infrastructure in Snowflake and Power BI. Reach out for more details.