Streamlit in Snowflake: Build Data and AI Apps on the Data Cloud with Python
As data continues to become more complex, it is critical to have effective ways to present this information. With the explosion of AI/ML, users want to be able to interact with their data and ML models. However, building such data apps has not been easy. Any data practitioner or product owner will attest to how it takes a lot of steps to build a data app. Business users come with questions and problems that they need answered with data. Historically that would involve working with a tooling team or trying to fit something into a presentation. The product owners work with tooling teams, which are often understaffed and have backlog requests that run into months. Getting from idea to data insight has often been a long, complex, expensive and exhausting process.
Enter Streamlit 🎈
Streamlit is an open-source library that turns Python scripts into shareable web apps in minutes. No front-end experience is needed and apps are written in pure Python. Over the past couple of years, Streamlit has become the standard for Python-based data app development with 80% adoption in the Fortune 50 and with hundreds of thousands of developers.
In early 2022, Snowflake announced the acquisition of Streamlit with the goal of democratizing data apps, by bringing together the best framework for building data applications with the best platform to securely deploy apps at scale. Today, we’re excited to bring this vision to life with the global launch of Streamlit in Snowflake with the Public Preview in Amazon Web Services (AWS).
The features and functionality available leverage the feedback from hundreds of organizations, including NTT Data, Appfolio, EDF Energy, and more. Together, they built over 5,000 apps. And with the Public Preview, app builders can now create and edit Streamlit apps in Snowflake and, with the click of a button, share and deploy their Streamlit apps in a fully-managed experience.
Bring data and ML models to life
Interactive visualizations
Data teams now have the ability to build a whole range of new and exciting applications that were not possible before. With Streamlit, app builders can create interactive data apps that allow for much more than just static visualizations. Interactive charting, data editing, data collection, write-back functionality, and other features allow for dynamic and responsive applications. These are powerful tools that help data teams and stakeholders make informed decisions.
Fast iteration, insights and deployment
By leveraging Streamlit's capabilities, you can also iterate quickly and efficiently. This is because you can try out new ideas with ease and incorporate stakeholder feedback in real time – edit an app with a few lines of code and watch the output change right away.
Instead of working with a front end team to build one app, you can build many bespoke apps tailored to each of your use cases — all in the same time it would take you to build a single app. This not only saves time and resources, but also allows you to scale your data team's output and impact.
Data teams can build many bespoke apps tailored to a use case — all in the same time it would take to work with a front end team to build one traditional web app.
Streamlit in Snowflake takes this to the next level and provides data practitioners with a fully-managed environment, which allows them to focus on what they love doing best – converting data to insights.
What types of apps can you build with Streamlit?
Developing apps with Streamlit in Snowflake
Let’s dive into what it looks like to create, edit, and share Streamlit apps.
Creating and editing apps
Developing Streamlit apps is a fully-managed experience. Snowflake does the heavy lifting on behalf of the developer and manages the provisioning of the underlying compute and storage for apps. Apps run on Snowflake warehouses and utilize Snowflake stages for storing files and data.
Creating an app is a one-click experience and clicking on the “+ Streamlit App” button opens up a dialog, which asks for some basic information about the app.
Pro tip: Start with xsmall warehouse as this will give you more than enough power for most apps. Even better use a dedicated warehouse for your app to easily monitor its usage and cost.
Clicking the “Create” button lands the user in a side-by-side editing experience. The left hand side shows the app code and the right hand side shows the app’s output. The app builder can change the code and see the impact of their changes instantly by clicking on the “Run” button.
Install additional Python packages from the Snowflake Anaconda Channel to utilize the full power of the Python ecosystem in your Streamlit app.
Viewing apps
Upon logging into Snowflake, the user can see all their Streamlit apps listed under the Streamlit tab. Streamlit apps are Snowflake objects and follow role-based access control. Apps listed under this section include the apps created by your role or apps, which have been shared with the user’s role.
Sharing
Share within your Snowflake account
Clicking on the share button opens the sharing dialog. Since Streamlit apps follow role-based access control, sharing apps is as simple as selecting a role and granting permissions to view the app.
Share with another Snowflake account
App builders may use Streamlit as the UX framework for building a Snowflake Native App. Snowflake native apps can be published for broader consumption through the Snowflake Marketplace. Learn more about Snowflake Native Apps
Get started with Streamlit in Snowflake
We’re just getting started with Streamlit apps. Check out the Quickstart to learn how to build your first app inside Snowflake. Learn more about how to leverage Streamlit inside the Native app framework to publish apps on the Snowflake Marketplace.
- Build your first Streamlit using Snowflake Marketplace data
- Access additional resources
- Build a Snowflake Native App with Streamlit UX
If you’re new to Streamlit, learn more about Streamlit at streamlit.io and become a part of the Streamlit Open source community. We’re beyond excited to hear what our customers will build as Streamlit unleashes a new wave of app innovation on the Data Cloud.