If you have a data warehouse such as Snowflake setup in your organization, chances are there are many business users who need data from it to perform various analyses or tasks. As a result, data or IT teams are usually looking for ways to make this data accessible to business users when and how they need it. So how can you share data from your Snowflake data warehouse with business users?
In this post, we explore the top 7 ways to share data from your Snowflake data warehouse with your business. This includes finance, operations, support, supply chain, sales, marketing, logistics, HR, etc.
Ranked from the least technical effort to most technical effort, here they are:
1. Manual Data Exports
Data can be exported from the Snowflake admin and sent to users manually as CSV or Excel files. Whenever a business user needs data, a new export can be extracted from Snowflake, following the business user’s data requirements. This will vary depending on the kind of analysis performed. The data will usually be extracted via Snowflake SQL editor and exported manually as CSV or TSV file and sent over to the business user.
2. Spreadsheet Data Connectors
Most business users prefer working with data in a familiar environment like spreadsheets. Similar to Scheduled Data Exports, Spreadsheet Data Connectors such as Castodia for Google Sheets automatically exports Snowflake data directly into a Google Sheets on a schedule. This is an efficient way to get data to business users in a tool they are familiar with and most likely to be working with. Because it is a direct data import into Google Sheets, business users don’t need to wait to receive one via email or via a cloud drive and then open it with Excel or Google Sheets, saving a lot of time. To improve data freshness, tools like Castodia can also be configured to refresh the data in the Google Sheets every 1 minute, which for most analytical use cases will be sufficiently “real-time”.
3. Business Intelligence (BI) Tools
Snowflake integrates with various popular BI tools such as Tableau, Power BI, Looker, and many others. These tools provide intuitive interfaces and powerful visualization capabilities, enabling business users to explore and analyze data with ease. You can connect these BI tools directly to your Snowflake warehouse to create dashboards, reports, and interactive data visualizations.
4. Snowflake Views
Create views in Snowflake that encapsulate the relevant data for business users. Views act as virtual tables that can present a customized and simplified representation of the underlying data. By creating views that align with the specific needs of business users, you can provide them with easy access to the data they require without exposing the complexities of the underlying warehouse structure. Users can then get read-only access to specific views. They can log in with their account credentials and access the views. They can also export them as CSV files.
5. Snowflake Secure Data Sharing
Snowflake provides a built-in feature called Secure Data Sharing, which allows you to securely share data with external organizations or users without the need for data movement or copying. You can grant access to specific tables, views, or even entire databases to business users. This feature ensures real-time access to the data while maintaining security and governance. This option works best if you are sharing with someone external to your company who also uses Snowflake as their data warehouse.
6. Scheduled Data Exports
To save some time from a manual export, data teams can schedule regular exports of relevant data from the Snowflake warehouse. They can write some scripts to trigger the download from Snowflake. The script can query a Snowflake view with the required data and load the results to a CSV file that would be stored in a cloud storage service like S3. This script can be triggered with a cron scheduler. Once the file is loaded, a business user could log in and retrieve the file. Although this approach involves data movement and may not provide real-time access, it can be useful for specific use cases.
7. Snowflake External Functions
Snowflake supports external functions that allow you to execute code in external systems, such as Python, Java, or other languages. You can leverage this functionality to build custom applications or APIs that retrieve and present the data from the Snowflake warehouse in a user-friendly manner. Business users can then interact with these applications to access and analyze the data. This is useful if you are sharing data with a user that access the data programmatically or via an application.
BONUS - Custom Web Applications
If you have development resources available, you can build custom web applications that provide business users with tailored interfaces to access and analyze Snowflake warehouse data. These applications can leverage Snowflake's APIs or connectors to fetch data and present it in a user-friendly manner, supporting features like search, filtering, and data manipulation.