Share data with Snowflake
The real question is what you share or how you share the data amongst the different cloud participants. How to share data with different stakeholders in the same organization and how to share data outside the organization. Sharing data was a time-consuming process. Organizations used to avail different extraction and file transfer mechanisms like ETL and FTP / SFTP. But then again, they need to have a proper data pipeline setup established be it batch or real-time to push the data. Snowflake’s Data Exchange and Data Marketplace have specifically solved this problem. It has made the data easily accessible, so consumers can query the data easily.
What is Snowflake Data Exchange?
Data Exchange is your own exchange of data where you can invite people to publish their data and different other teams can consume the same. People who are publishing the data are data providers and those who are consuming the data are data consumers. In general Data Exchange is used to establish a seamless data sharing process within the organization amongdifferent teams (sometimes to collaborate with vendors, suppliers, partners,and customers as well). There will be a centralized place from where anyone can request read-only access to any dataset. This process will help to reduce the time to market, enable secure data sharing and remove the data silos. Organizations can implement row-level and column-level security by using secure views, row access policy, dynamic data masking, or external tokenization. Data exchange is not enabled for all accounts by default and in that case, need to involve the Snowflake support team.
Steps:
- Create the data share and add tables / secure views which you want to share
- Configure provider/consumer profiles
- Create a new listing
- Publish the listing to the data exchange
- From the consumer’s end consumer can request access to the listing
What is Snowflake Data Marketplace?
Data Marketplace is available from the snowflake UI and enables every snowflake customer to discover live data from the various data providers. It has different categories listed in the marketplace like finance, weather,health, etc. Consumers can simply search and request access to a dataset. Thisaccess will be live data access which means the moment the dataset gets updatedat the source it will immediately be available at the consumer’s end. Consumerscan also join this dataset with the existing data at the consumer’s Snowflakeaccount to discover more business insights. The data marketplace is to leverageexternal data as well as host your data for external consumers. Snowflake datamarketplace is GA (generally available) to all non-VPS Snowflake accounts. As adata provider, one can monetize the data using different pricing plansavailable (per month, per query and per month plus per query) in themarketplace to charge consumers.
Steps:
- Create the data share and add tables / secure views which you want to share
- Request to join the data marketplace
- After approval configure the provider profile
- Create a data listing
- Publish the listing to the data marketplace
There can be two types of listing:
Standard: Theconsumers can get instant access to the published dataset. This type of listingis the best fit for non-customer-specific, generic data. We can pre-associate ashare with a listing in a remote region.
Personalized: Thistype of listing allows customers to request a specific data set. This can becustomer-specific premium data provider charges.
Both types of listings include details about the shared data, sample usage examples,and information about the data provider.
Use Cases
Data Exchange Use Case: If the organization has different snowflake accounts, the exchange is the centralized place to establish the consumer-provider scenario. As an example, data ingestion teams from different modules can ingest the quality data in different snowflake accounts. Exchange can create listings against each data sets as per the provider’s request and can add internal consumers as per the consumer request received. There will always be a single copy of data at the source Snowflake account and the can be shared with different consumers be it analytics, data science, or visualization teams.
Data Marketplace Use Case: If the organization needs to access anexternal dataset to complete the analysis ( as an example, if they need Covid19 data set to analyze sales drop for a particular period) it can simply searchfor the dataset in the Snowflake data marketplace and request access for thedata in case of personalized listing and can access the dataset after approvaland contract. If the listing is a standard listing it can get immediate accessto the dataset.
The Organization can also host its quality data in the Snowflake marketplace to make it available for external customers to monetize the data.
At any time, Snowflake documentation will be the latest and greatest source for more information:
https://docs.snowflake.com/en/user-guide/data-sharing-intro.html
Contributed by
Sourav Bhattacharya
Senior Data Architect at Dun & Bradstreet
Connect with him on LinkedIn