Verwalten der Kosten für Streamlit in Snowflake

Unter diesem Thema werden die Abrechnungserwägungen für Streamlit in Snowflake erläutert.

Hinweise zur Abrechnung für Streamlit in Snowflake

Die Streamlit in Snowflake-Abrechnung erfolgt auf Basis der Laufzeitumgebung und des Abfrage-Warehouses der App. Die Laufzeitumgebung führt den Python-Code in Ihrer Streamlit-App aus und kann entweder ein Container oder ein Warehouse sein. Das Abfrage-Warehouse führt beliebige SQL-Abfragen innerhalb des Codes Ihrer App aus.

Warehouse-Abfrage

Wenn der Code Ihrer App SQL-Abfragen ausführt, verwenden diese Abfragen das Abfrage-Warehouse der App. Snowflake setzt das Abfrage-Warehouse entsprechend seiner eigenen Werte für AUTO_RESUME und AUTO_SUSPEND fort bzw. setzt es aus.

Container-Laufzeit

Wenn Ihre Streamlit-App eine Container-Laufzeit verwendet, wird Ihnen die Nutzung des zugrunde liegenden Snowpark Container Services-Computepool sin Rechnung gestellt. In diesem Fall ist die Streamlit-App ein lang laufender Dienst. Der Streamlit-Server wird kontinuierlich auf einem Knoten des Computepools ausgeführt und ermöglicht es den Betrachtenden, schnell auf die App zuzugreifen. Gleichzeitige Betrachtende verbinden sich mit einem einzigen Streamlit-Server. Nach drei Tagen Inaktivität der App endet der Streamlit-Serverprozess, und Snowflake setzt den Computepool gemäß seinem eigenen AUTO_SUSPEND-Wert aus. Weitere Informationen zur Computepool-Abrechnung finden Sie unter Erläuterungen zu den Computekosten.

Warehouse-Laufzeit

Wenn Ihre App eine Warehouse-Laufzeit verwendet, setzt Snowflake das Code-Warehouse der App fort, wenn jemand die App aufruft. Jedes Mal, wenn ein Betrachtender eine Verbindung zur App herstellt, wird ein neuer Streamlit-Serverprozess im Code-Warehouse gestartet und eine WebSocket-Verbindung hergestellt. Gleichzeitige Betrachtende verbinden sich jeweils mit einem eigenen Streamlit-Server, der in demselben Code-Warehouse läuft.

Eine WebSocket-Verbindung hält das Code-Warehouse aktiv und läuft etwa 15 Minuten nach der letzten Aktivität des zugehörigen Betrachtenden ab. Dies kann jedoch durch die Browsereinstellungen und die Aktivität des Betrachtenden beeinflusst werden. Mausbewegungen in der App zählen als Aktivität und sorgen dafür, dass die WebSocket-Verbindung bestehen bleibt. Sie können den WebSocket-Timeout-Wert für Ihr Konto ändern, indem Sie sich an den Snowflake Support wenden.

Für das Code-Warehouse wird die Zeit in Rechnung gestellt, in der es aktiv ist. Um Credits zu sparen, können Sie eine der folgenden Optionen nutzen:

  • Setzen Sie die App manuell über Snowsight aus.

  • Schließen Sie alle Browser-Registerkarten, auf denen die App ausgeführt wird, oder verlassen Sie die App. Dadurch wird die WebSocket-Verbindung beendet und ermöglicht, dass das Warehouse automatisch angehalten wird.

  • Stellen Sie einen benutzerdefinierten Sleep-Timer für die App ein. Dadurch wird das Warehouse nach einer bestimmten Zeit der Inaktivität automatisch ausgesetzt. Weitere Informationen dazu finden Sie unter Benutzerdefinierter Sleep-Timer für eine Streamlit-App.

Richtlinien für die Auswahl eines Warehouses finden Sie unter Richtlinien für die Auswahl von Ressourcen in Streamlit in Snowflake.