Skip to content

Verbinden von Streamlit mit Snowflake: Die Kraft datengetriebener Webanwendungen entfesseln

Wenn Sie sich in der Welt der Datenanalyse, Softwareentwicklung oder einfach als Technikbegeisterte mit Interesse an der Erstellung von Webanwendungen mit Python befinden, ist diese umfassende Anleitung genau das Richtige für Sie. Mit dem Wachstum der Datenwelt steigt auch der Bedarf an effizienten Werkzeugen, um wertvolle Erkenntnisse aus ihnen zu gewinnen und zu verarbeiten. Genau hier kommen Streamlit und Snowflake ins Spiel.

Streamlit, ein schnell wachsendes Low-Code-Webframework für Python, ermöglicht es Ihnen, interaktive und datengetriebene Webanwendungen mit minimalem Codeaufwand zu erstellen. Snowflake hingegen, eine cloudbasierte Data-Warehousing-Plattform, bietet eine robuste Lösung für die Datenverwaltung, Berechnung und Analyse. Gemeinsam bilden sie ein beeindruckendes Duo, das Komfort und Effizienz in die Welt der Daten bringt.

Snowflake Native Application Framework

Bevor wir in unser Abenteuer starten, machen wir zunächst einen Zwischenstopp im Zentrum des Snowflake-Universums – dem Native Application Framework. Stellen Sie sich eine Werkzeugkiste vor, die mit Funktionen wie gespeicherten Prozeduren, Aufgaben, Streams, UDFs, Snowpark und einer ganzen Reihe anderer Möglichkeiten gefüllt ist. Genau darum geht es bei diesem Framework!

Dank dieses umfangreichen Werkzeugsatzes können Anbieter von Anwendungen Folgendes tun:

  • Die Kernfunktionalitäten von Snowflake für die Entwicklung ihrer Anwendungen nutzen
  • Diese Anwendungen im Snowflake Marketplace vertreiben und monetarisieren (denken Sie an einen App Store!)
  • Die Anwendungen direkt im Snowflake-Account des Kunden bereitstellen.

Sobald eine App erstellt wurde, können die robusten Datenfreigabefunktionen von Snowflake sie dank des Snowflake Marketplace weltweit verteilen. Benutzer können diese Anwendung dann direkt aus dem Marketplace in ihren Snowflake-Account bereitstellen.

Das Native Application Framework ist nicht nur eine Sammlung von Funktionen, sondern ein Tor zu unzähligen Möglichkeiten. Wenn es mit einem Low-Code-UX-Framework wie Streamlit kombiniert wird, entsteht eine magische Kombination.

Streamlit in Snowflake

Tauchen wir nun in die Welt von Streamlit ein. Dieses kostenlose Open-Source-Framework ist ein echter Glücksgriff für all diejenigen, die wunderschöne Web-Apps für maschinelles Lernen und Data Science entwickeln möchten.

Streamlit wurde mit dem Ziel entwickelt, das Leben von Datenwissenschaftlern und Machine-Learning-Entwicklern zu vereinfachen. Mit Streamlit ist es leicht, fantastische Anwendungen mit nur wenigen Codezeilen zu erstellen.

Möchten Sie eine kostenlose Datenanalyse- und Datenvisualisierungs-App mit Streamlit erstellen?

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, mit der Sie ganz einfach eine benutzerfreundliche Benutzeroberfläche ähnlich wie Tableau in Ihre eigene Streamlit-App integrieren können. Schauen Sie sich dieses erstaunliche Video von Wie man Daten mit PyGWalker in Python erkundet (opens in a new tab) an, in dem die detaillierten Schritte zur Stärkung Ihrer Streamlit-App mit dieser leistungsstarken Python-Bibliothek für Datenvisualisierung gezeigt werden!


Ein besonderer Dank geht an Sven und seine großartigen Beiträge (opens in a new tab) zur PyGWalker-Community!

Darüber hinaus können Sie auch die PyGWalker GitHub-Seite (opens in a new tab) für weitere PyGWalker-Beispiele besuchen.

Wenn es mit Snowflake integriert wird (clever als SiS bezeichnet), ermöglicht es Ihnen, direkt in Snowflake Streamlit-Code mit Python zu schreiben. Sie erstellen einfach ein Streamlit-Objekt (wie andere Schemaobjekte in Snowflake), geben Ihrer App einen Namen, weisen ihr ein Warehouse zu und legen den Speicherort der App fest. Da sie eng mit Snowflake verzahnt ist, werden rollenbasierte Zugriffskontrollen konsequent durchgesetzt.

Das Sahnehäubchen? Sie können Ihre Streamlit-App bereitstellen, sie über einen Link mit anderen teilen und sie sogar auf Ihrem mobilen Gerät anzeigen lassen. Ziemlich cool, oder?

Vorbereitung für die Integration von Streamlit + Snowflake

Erstellen einer Snowflake-Datenbank

Bevor Sie sich in die Erstellung der Webanwendung stürzen, ist es wichtig, eine Snowflake-Datenbank einzurichten, die später mit der Streamlit-App verbunden wird. Führen Sie die folgenden Schritte aus, um eine Snowflake-Datenbank zu erstellen:

  1. Melden Sie sich für ein Snowflake-Konto unter https://signup.snowflake.com (opens in a new tab) an.
  2. Überprüfen Sie Ihre E-Mail "Willkommen bei Snowflake!" auf die Kontoadresse, um auf Ihr Snowflake-Konto zuzugreifen. Verwenden Sie die Schaltfläche BEI SNOWFLAKE EINLOGGEN oder kopieren Sie die Kontoadresse in Ihren Browser.
  3. Geben Sie Ihre Snowflake-Anmeldeinformationen ein.
  4. Sobald Sie angemeldet sind, gelangen Sie zum Panel Worksheets.
  5. Führen Sie die bereitgestellten Anweisungen in der Snowflake-Oberfläche aus, um ein neues SQL-Arbeitsblatt zu erstellen.
  6. Geben Sie die folgende SQL-Abfrage in das Abfragefeld ein, um eine einfache PETS-Datenbank zu erstellen und mit einigen Daten zu füllen:
CREATE DATABASE PETS;
 
CREATE TABLE MYTABLE (
    NAME varchar(80),
    PET varchar(80)
);
 
INSERT INTO MYTABLE VALUES ('Mary', 'dog'), ('John', 'cat'), ('Robert', 'bird');
 
SELECT * FROM MYTABLE;
  1. Nach Ausführen der Abfrage wird die PETS-Datenbank erstellt. Kehren Sie zur Hauptseite zurück.
  2. Klicken Sie auf der Hauptseite auf die Registerkarte Data, um unsere neu erstellte PETS-Datenbank anzuzeigen.

Umgebung einrichten

Nun gehen wir zur Einrichtung unserer Coding-Umgebung mit Anaconda über:

conda create -n snowpark python=3.8
conda activate snowpark
pip install snowflake-snowpark-python streamlit

Denken Sie daran, die Conda-Umgebung nach der Codierungssitzung mit conda deactivate zu deaktivieren.

Lassen Sie uns nun die Verzeichnisse und Dateien für unsere Streamlit-App einrichten:

Wir erstellen zuerst ein neues Verzeichnis für unser Projekt. Öffnen Sie Ihr Terminal und geben Sie ein:

mkdir streamlit-snowflake-app && cd streamlit-snowflake-app
touch main.py secrets.py .gitignore
  • Die Datei main.py ist der Ort, an dem wir unsere Streamlit-Anwendung schreiben werden.
  • Die Datei secrets.py wird unsere Snowflake-Zugriffsinformationen speichern.
  • Die Datei .gitignore wird sicherstellen, dass wir diese sensiblen Zugangsdaten nicht versehentlich in einem öffentlichen Repository veröffentlichen.

Lassen Sie uns eine Streamlit-App mit Snowflake erstellen

Nun kommt der spannende Teil: die Erstellung der Streamlit-Anwendung. Hier werden wir die zuvor erstellte PETS-Datenbank abfragen und die Ergebnisse in unserer Streamlit-Anwendung anzeigen.

  1. Importieren Sie die erforderlichen Bibliotheken in der Datei main.py:
import streamlit as st
from snowflake.snowpark import Session
from secrets import SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD
  1. Richten Sie eine Snowflake-Sitzung ein, indem Sie die in secrets.py gespeicherten Anmeldeinformationen verwenden:
session = Session(url=SNOWFLAKE_ACCOUNT, user=SNOWFLAKE_USER, password=SNOWFLAKE_PASSWORD)
  1. Holen Sie Daten von Snowflake ab:
df = session.sql("SELECT * FROM PETS.MYTABLE").to_pandas()
 
4. Zeigen Sie die Daten in Streamlit an:
 
```python
st.write(df)
  1. Speichern Sie Bildschirme in secrets.toml
touch secrets.toml

In secrets.toml fügen Sie Ihre Snowflake-Anmeldeinformationen hinzu:

[secrets]
SNOWFLAKE_ACCOUNT = "Ihr_Account"
SNOWFLAKE_USER = "Ihr_Benutzername"
SNOWFLAKE_PASSWORD = "Ihr_Passwort"

Aktualisieren Sie die Datei main.py, um die Secret-Verwaltung von Streamlit zu verwenden:

session = Session(url=st.secrets["SNOWFLAKE_ACCOUNT"], user=st.secrets["SNOWFLAKE_USER"], password=st.secrets["SNOWFLAKE_PASSWORD"])

Vergessen Sie nicht, auch die Datei .gitignore zu aktualisieren.

Voilà! Sie haben gerade Ihre erste Streamlit-App erstellt, die eine Verbindung zu einer Snowflake-Datenbank herstellt. Führen Sie zum Ausführen der App streamlit run main.py in Ihrem Terminal aus.

So veröffentlichen Sie eine Streamlit-App

Mit der App bereit und Secrets sicher verwaltet, ist es Zeit, Ihre Arbeit mit der Welt zu teilen. Streamlit bietet eine Plattform namens Streamlit Share zum Bereitstellen von Anwendungen:

  1. Committen Sie Ihr Projekt in ein öffentliches GitHub-Repository (außer der Datei secrets.toml).
  2. Besuchen Sie share.streamlit.io (opens in a new tab) und klicken Sie auf Deploy an app.
  3. Wählen Sie Ihr GitHub-Repository und Ihren Branch aus und geben Sie main.py als Anwendungsdatei an.
  4. Klicken Sie im Abschnitt Secrets auf Add a secret und geben Sie die Schlüssel-Wert-Paare aus secrets.toml ein.
  5. Klicken Sie auf Deploy. Streamlit Share kümmert sich um den Rest!

Fazit

Die Verbindung von Streamlit mit Snowflake eröffnet Ihnen eine Vielzahl von Möglichkeiten zur Erstellung effizienter, interaktiver Webanwendungen mit Python. Diese Anleitung hat Ihnen einen schrittweisen Prozess gezeigt, um diese beiden leistungsfähigen Plattformen zu integrieren, angefangen bei der Einrichtung einer Snowflake-Datenbank und der Streamlit-Anwendung bis hin zur Verwaltung von Secrets und der Bereitstellung der App. Mit ein wenig Kreativität können Sie diesen Prozess an verschiedene Anwendungen und Workflows anpassen.

Jetzt, da Sie über dieses Wissen verfügen, setzen Sie es ein und erstellen Sie datengetriebene Apps, die einen Unterschied machen.


Möchten Sie jetzt Ihre Snowflake-Datenbank mit RATH verbinden? Schauen Sie sich die RATH-Dokumentation an, um eine schrittweise Anleitung zur Snowflake-Integration zu erhalten: Step-by-Step-Anleitung zur Snowflake-Integration.

Neben Snowflake unterstützt RATH eine Vielzahl von Datenquellen. Hier sind einige der wichtigsten Datenbanklösungen, mit denen Sie RATH verbinden können: Unterstützte Datenbanken

Interessiert? Probieren Sie RATH jetzt aus auf der RATH-Website (opens in a new tab).

Visualisieren Sie Snowflake-Daten mit RATH (opens in a new tab)

Häufig gestellte Fragen

Was ist Snowflake in Streamlit?

Snowflake in Streamlit (SiS) bezieht sich auf die Integration von Streamlit in die Snowflake-Plattform. SiS ermöglicht es Benutzern, Streamlit-Code direkt in Snowflake zu schreiben und dabei die Funktionen von Snowflake für Datenspeicherung, -verarbeitung und Sicherheit zu nutzen.

Ist Streamlit im Besitz von Snowflake?

Nein, Streamlit ist ein unabhängiges Open-Source-Projekt und gehört nicht zu Snowflake. Streamlit wird in der Data-Science-Community häufig für den Aufbau interaktiver Webanwendungen verwendet, während Snowflake eine cloudbasierte Datenplattform ist.

Was ist Snowpark für Python und Streamlit?

Snowpark ist eine Funktion in Snowflake, die es Entwicklern ermöglicht, Code in verschiedenen Programmiersprachen zu schreiben. Snowpark for Python ermöglicht es Benutzern, Python-Code zu schreiben und ihn mit den Datenverarbeitungsfunktionen von Snowflake zu integrieren. Streamlit in Snowflake nutzt Snowpark für Python, um Benutzern zu ermöglichen, Streamlit-Code direkt in Snowflake zu schreiben und interaktive Datenanwendungen zu erstellen.