ALTER STREAMLIT¶
Ändert die Eigenschaften eines vorhandenen Streamlit-Objekts.
- Siehe auch:
CREATE STREAMLIT, SHOW STREAMLITS, DESCRIBE STREAMLIT, DROP STREAMLIT
Syntax¶
ALTER STREAMLIT [ IF EXISTS ] <name> SET
[ MAIN_FILE = '<filename>']
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ RUNTIME_NAME = '<runtime_name>' ]
[ COMPUTE_POOL = <compute_pool_name> ]
[ COMMENT = '<string_literal>']
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
[ SECRETS = ( '<snowflake_secret_name>' = <snowflake_secret> [ , ... ] ) ]
ALTER STREAMLIT [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER STREAMLIT <name> COMMIT
ALTER STREAMLIT <name> PUSH [ TO <git_branch_uri> ]
[
{
GIT_CREDENTIALS = <snowflake_secret>
| USERNAME = <git_username> PASSWORD = <git_password>
}
NAME = <git_author_name>
EMAIL = <git_author_email>
]
[ COMMENT = <git_push_comment> ]
ALTER STREAMLIT <name> ABORT
ALTER STREAMLIT <name> PULL
ALTER STREAMLIT <name> ADD LIVE VERSION FROM LAST
For Streamlit objects created with ROOT_LOCATION, only the following syntax is supported:
Wichtig
ROOT_LOCATION is a legacy parameter and may be deprecated in a future release. For Streamlit apps created using ROOT_LOCATION, multi-file editing and Git integration are not supported.
ALTER STREAMLIT [ IF EXISTS ] <name> SET
[ ROOT_LOCATION = '<stage_path_and_root_directory>' ]
[ MAIN_FILE = '<path_to_main_file>']
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>']
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
ALTER STREAMLIT [ IF EXISTS ] <name> RENAME TO <new_name>
Parameter¶
nameBezeichner für das Streamlit-Objekt. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
SET ...Gibt die Eigenschaft an, die für das Streamlit-Objekt festgelegt werden soll:
MAIN_FILE = 'filename'Gibt die Streamlit-Einstiegspunktdatei an. Die Anforderungen hängen vom Laufzeittyp ab:
Warehouse-Laufzeiten: Die Datei muss sich im Stammverzeichnis des in FROM angegebenen Quellverzeichnisses befinden. Es ist nur ein Dateiname erlaubt, kein Pfad.
Container-Laufzeiten: Die Datei kann sich im Stammverzeichnis oder in einem Unterverzeichnis befinden. Sie können einen relativen Pfad vom Stamm des Quellverzeichnisses angeben, beispielsweise
'subdir/my_app.py'.If your app was created with ROOT_LOCATION instead of FROM, then MAIN_FILE can be a path relative to ROOT_LOCATION even though ROOT_LOCATION only supports warehouse runtimes.
QUERY_WAREHOUSE = warehouse_nameSpecifies the warehouse used by the Streamlit app. The behavior depends on the runtime type:
Warehouse-Laufzeiten: Gibt das Warehouse an, in dem der App-Code und SQL-Abfragen ausgeführt werden Dies ist das Code-Warehouse. Es wird empfohlen, innerhalb Ihres App-Codes für Abfragen manuell zu einem anderen Warehouse zu wechseln.
Container-Laufzeiten: Gibt das Warehouse an, das SQL-Abfragen ausführen soll, die von der App ausgegeben werden. Der Code der App wird in dem von COMPUTE_POOL angegebenen Computepool ausgeführt.
RUNTIME_NAME = 'runtime_name'Gibt die Laufzeitumgebung für die Streamlit-App an. Ändern Sie damit die Laufzeitumgebung von Warehouse zu Container, von Container zu Warehouse oder von einer Version zur anderen. Die Namen von Laufzeitumgebungen folgen dem Muster
SYSTEM$ST_<Typ>_RUNTIME_PY<version>.Warehouse-Laufzeiten: Führen Sie die App in einem virtuellen Warehouse aus. Jeder Betrachter erhält eine persönliche Instanz der App. Die folgenden Warehouse-Laufzeiten sind gültig:
SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_9SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_10SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_11
Container-Laufzeiten: Führen Sie die App in einem Snowpark Container Services-Computepool aus. Alle Betrachter teilen sich eine einzige, langlaufende Instanz der App. Die folgenden Container-Laufzeiten sind gültig:
SYSTEM$ST_CONTAINER_RUNTIME_PY3_11
Wichtig
Beim Wechsel von einer Warehouse-Laufzeit zu einer Container-Laufzeit müssen Sie auch den COMPUTE_POOL-Parameter entsprechend festlegen. Container-Laufzeitumgebungen erfordern einen Computepool.
COMPUTE_POOL = compute_pool_nameGibt den Computepool an, in dem die Streamlit-App ausgeführt wird. Dieser Parameter ist erforderlich, wenn Sie eine Container-Laufzeit verwenden, und wird bei Warehouse-Laufzeiten ignoriert.
COMMENT = 'string_literal'Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für das Streamlit-Objekt.
TITLE = 'app_title'Fügt einen Titel für die Streamlit-App hinzu, der in Snowsight angezeigt wird.
IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )The location (stage), path, and name of the file(s) to import. This only applies to warehouse runtimes and is ignored for container runtimes.
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )Die Namen der Integrationen für den externen Zugriff, die benötigt werden, damit der Code der Streamlit-App auf externe Netzwerke zugreifen kann.
Für Container-Laufzeitumgebungen sind Integrationen für den externen Zugriff erforderlich, um Pakete aus externen Paketindizes wie PyPI zu installieren. Für alle Laufzeittypen ermöglichen die Integrationen für den externen Zugriff der App, ausgehende Netzwerkanfragen zu stellen.
SECRETS = ( 'snowflake_secret_name' = snowflake_secret [ , ... ] )Ordnet Snowflake-Geheimnisse den Geheimnisnamen zu, auf die im Code der Streamlit-App verwiesen werden kann. Anhand des Geheimnisnamens (links) referenzieren Sie das Geheimnis in Ihrem Code, und das geheime Objekt (rechts) ist der Bezeichner des Snowflake-Geheimnisses.
Beispiel:
SECRETS = ('api_key' = my_database.my_schema.my_secret)Geheimnisse sind in Warehouse-Laufzeiten nur über das
_snowflake-Modul verfügbar und müssen mit einer Integration für den externen Zugriff in EXTERNAL_ACCESS_INTEGRATIONS verknüpft sein. In Container-Laufzeiten wird dieser Parameter nicht unterstützt, und Sie müssen SQL-Funktionen erstellen, um stattdessen auf Geheimnisse zuzugreifen. Weitere Informationen dazu finden Sie unter Verwalten von Geheimnissen und Konfigurieren der Streamlit-App.ROOT_LOCATION = 'stage_path_and_root_directory'Specifies the root stage name and prefix containing the Streamlit Python files, media files, and
environment.ymlfile. This parameter must point to a single directory inside a named internal stage.
RENAME TO new_nameSpecifies the new identifier for the Streamlit object. The identifier must be unique for the schema where the object was created.
Weitere Informationen zu Bezeichnern finden Sie unter Anforderungen an Bezeichner.
COMMITFührt ein Commit für die ausstehenden Änderungen in der LIVE-Version auf eine neue LAST-Version aus. Unmittelbar nach dem Commit ist die LIVE-Version identisch mit der LAST-Version.
PUSHÜberträgt die neuesten Änderungen in das Git-Repository. Dabei wird der in der Basisversion gespeicherte Zweig verwendet, wenn
TO git_branch_urinicht angegeben ist.If the base version is not based on a Git branch, this throws an error.
TO git_branch_uriSendet übertragene Änderungen an den angegebenen Zweig.
GIT_CREDENTIALS = snowflake_secretGibt das Snowflake-Geheimnis an, das die Anmeldeinformationen enthält, die für die Authentifizierung mit dem Repository zu verwenden sind.
USERNAME = git_usernameGibt einen Git-Benutzernamen an.
PASSWORD = git_passwordGibt ein Git-Kennwort an.
NAME = git_author_nameGibt den zu verwendenden Namen des Git-Autors an.
EMAIL = git_author_emailGibt eine gültige E-Mail-Adresse an, die als Name des Git-Autors verwendet werden soll.
COMMENT = git_push_commentGibt einen Kommentar an, der in den Git-Push aufgenommen wird.
ABORTEntfernt die aktuelle Live-Version der App, einschließlich aller in Snowsight vorgenommenen Änderungen, die nicht mit Commit bestätigt wurden.
PULLRuft die letzten Änderungen ab. Sie müssen die aktuelle Live-Version abbrechen, bevor Sie diese abrufen.
ADD LIVE VERSION FROM LASTErstellt eine neue Live-Version der App basierend auf der letzten bestätigten Version.
Wenn der Eigentümer einer Streamlit-App die App in Snowsight öffnet und keine Live-Version existiert, wird dieser Befehl automatisch ausgeführt. Wenn andere Benutzende die App besuchen und keine Live-Version vorhanden ist, wird ein Fehler zurückgegeben.
Anforderungen an die Zugriffssteuerung¶
If your role does not own the objects in the following table, then your role must have the listed privileges on those objects:
Berechtigung |
Objekt |
Notes |
|---|---|---|
OWNERSHIP |
Streamlit-Objekt, das Sie ändern |
|
USAGE |
Warehouse, das von der Streamlit-App verwendet wird |
Diese Berechtigung ist nur erforderlich, wenn Sie einen neuen Wert für QUERY_WAREHOUSE festlegen. |
USAGE |
Computepool, der von der Streamlit-App verwendet wird |
Diese Berechtigung ist nur erforderlich, wenn Sie einen neuen Wert für COMPUTE_POOL festlegen. |
USAGE |
Integrationen für den externen Zugriff, die von der Streamlit-App verwendet werden |
Diese Berechtigung ist nur erforderlich, wenn Sie einen neuen Wert für EXTERNAL_ACCESS_INTEGRATIONS festlegen. |
USAGE |
Geheimnisse, die von der Streamlit-App verwendet werden |
Diese Berechtigung ist nur erforderlich, wenn Sie einen neuen Wert für SECRETS festlegen. |
Für das Ausführen von Operationen auf einem Objekt in einem Schema ist mindestens eine Berechtigung für die übergeordnete Datenbank und mindestens eine Berechtigung für das übergeordnete Schema erforderlich.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Wenn Sie die Live-Version der App entfernen, können Benutzende die App erst wieder besuchen, wenn Sie eine der folgenden Aktionen ausführen:
Führen Sie ALTER STREAMLIT … ADD LIVE VERSION FROM LAST für das Streamlit-Objekt aus.
Rufen Sie die App in Snowsight mit der Rolle auf, der die App gehört.
If you run the ALTER STREAMLIT command while viewing a Streamlit app in Snowsight, the app reflects the changes differently depending on the runtime type:
Warehouse-Laufzeit: Die App übernimmt die Änderungen erst, wenn Sie Run auswählen.
Container-Laufzeit: Die App spiegelt die Änderungen sofort wider, wenn Sie das nächste Mal mit der App interagieren.
Wenn Sie möchten, dass Ihre Änderungen in die App übernommen werden, müssen Sie die App neu laden oder neu starten.
Bei der Migration von der Warehouse-Laufzeit zur Container-Laufzeit:
Sie müssen RUNTIME_NAME und COMPUTE_POOL einstellen.
Ihre App muss Python 3.11 und Streamlit 1.49 oder höher verwenden.
Stellen Sie sicher, dass Ihr App-Code threadsicher und für gleichzeitige Betrachter optimiert ist.
Ersetzen Sie
get_active_session()durchst.connection("snowflake").Ersetzen Sie das
_snowflake-Modul mit nativen Python-Äquivalenten.
Eine vollständige Checkliste für die Migration finden Sie unter Migrieren zwischen Laufzeitumgebungen.
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Ändern des Abfrage-Warehouse¶
Um das von einer Streamlit-App verwendete Warehouse zu ändern, führen Sie den Befehl ALTER STREAMLIT aus, wie im folgenden Beispiel gezeigt:
ALTER STREAMLIT my_app
SET QUERY_WAREHOUSE = new_warehouse;
Migration von einer Warehouse-Laufzeit zu einer Container-Laufzeit¶
Um eine Streamlit-App von der Warehouse-Laufzeit zur Container-Laufzeit zu migrieren, führen Sie den Befehl ALTER STREAMLIT aus, wie im folgenden Beispiel gezeigt:
ALTER STREAMLIT my_app SET
RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
COMPUTE_POOL = my_compute_pool
EXTERNAL_ACCESS_INTEGRATIONS = (pypi_access_integration);
Container-Laufzeiten erfordern eine externe Zugriffsintegration, um Pakete aus einem externen Paketindex wie PyPI zu installieren. Andernfalls können sie nur die vorinstallierten Standardpakete verwenden. Weitere Informationen dazu finden Sie unter Verwalten von Abhängigkeiten für Ihre Streamlit-App.
Geheimnisse zu einer bestehenden Warehouse-Laufzeit-App hinzufügen¶
Um Geheimnisse zu einer bestehenden Streamlit-App mit Warehouse-Laufzeit hinzuzufügen, führen Sie den Befehl ALTER STREAMLIT wie im folgenden Beispiel aus:
ALTER STREAMLIT my_app SET
EXTERNAL_ACCESS_INTEGRATIONS = (my_access_integration)
SECRETS = ('api_key' = my_database.my_schema.my_api_secret);
Geheimnisse sind nur in Warehouse-Laufzeiten verfügbar und müssen mit einer Integration für den externen Zugriff verbunden sein. Streamlit-Apps mit Container-Laufzeit müssen für den Zugriff auf Geheimnisse SQL-Funktionen verwenden. Weitere Informationen dazu finden Sie unter Verwalten von Geheimnissen und Konfigurieren der Streamlit-App.
Rename a Streamlit app¶
Um eine Streamlit-App umzubenennen, führen Sie den Befehl ALTER STREAMLIT wie im folgenden Beispiel aus:
ALTER STREAMLIT old_app_name
RENAME TO new_app_name;
