CREATE STREAMLIT¶
Creates a new Streamlit object in Snowflake or replaces an existing Streamlit object in the same schema.
Syntax¶
CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
[ FROM <source_location> ]
[ MAIN_FILE = '<filename>' ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>' ]
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
Die folgende Syntax ist veraltet:
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.
CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
ROOT_LOCATION = '<stage_path_and_root_directory>'
MAIN_FILE = '<path_to_main_file_in_root_directory>'
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>' ]
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
Erforderliche Parameter¶
nameSpecifies the identifier (i.e. name) for the Streamlit object. This identifier must be unique for the schema where the object is created.
In addition, the identifier must start with an alphabetic character and can’t contain spaces or special characters unless the entire identifier string is enclosed in double quotes (e.g.
"My object"). Identifiers enclosed in double quotes are also case-sensitive.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
Optionale Parameter¶
FROM source_locationKopiert die Quelldateien der App vom angegebenen Speicherort. Der Speicherort muss sich innerhalb eines internen benannten Stagingbereichs befinden. Der Pfad kann relativ oder vollqualifiziert sein. Wenn der Stagingbereich beispielsweise
@streamlit_db.streamlit_schema.streamlit_stageheißt, können Quellspeicherorte folgende sein:Ein vollqualifizierter Pfad zum Stammverzeichnis des Stagingbereichs:
FROM '@streamlit_db.streamlit_schema.streamlit_stage'Ein relativer Pfad zum Stammverzeichnis des Stagingbereichs:
FROM '@streamlit_stage'Ein vollqualifizierter oder relativer Pfad zu einem Unterverzeichnis innerhalb des Stagingbereichs:
FROM '@streamlit_db.streamlit_schema.streamlit_stage/subdir'
Dateien werden nur einmal kopiert, wenn der Befehl CREATE ausgeführt wird. Zukünftige Änderungen am Quellspeicherort führen nicht automatisch zu einer Aktualisierung der Streamlit-App.
Wenn dieser Parameter nicht angegeben ist, kopiert Snowflake die Quelldateien für eine Standard-App mit einer
streamlit_app.py-Einstiegspunkt-Datei.MAIN_FILE = 'filename'Der Dateiname der Streamlit-Einstiegspunkt-Datei. Diese Datei muss sich im Stammverzeichnis des in FROM angegebenen Quellverzeichnisses befinden.
Wenn Sie ROOT_LOCATION anstelle von FROM verwenden, dann kann MAIN_FILE ein Pfad relativ zu ROOT_LOCATION sein.
DEFAULT:
'streamlit_app.py'QUERY_WAREHOUSE = warehouse_nameSpecifies the warehouse to run the app and execute SQL queries issued by the Streamlit app.
DEFAULT: Kein Wert
Bemerkung
Obwohl Sie ein Streamlit-Objekt ohne diesen Parameter erstellen können, wird die App erst ausgeführt, wenn Sie ein Abfrage-Warehouse angeben.
COMMENT = 'string_literal'Gibt einen Kommentar für das Streamlit-Objekt an.
DEFAULT: Kein Wert
TITLE = 'app_title'Specifies a title for the Streamlit object to display in Snowsight.
DEFAULT: Der Name des Streamlit-Objekts, das an CREATE STREAMLIT übergeben wird.
IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )Der Speicherort (Stagingbereich), der Pfad und der Name der zu importierenden Datei(en).
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.
ROOT_LOCATION = 'stage_path_and_root_directory'Specifies the path to the named stage containing the Streamlit Python files, media files, and the
environment.ymlfile, for example:ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
In diesem Beispiel befinden sich die Streamlit-Dateien in einem benannten Stagingbereich namens
streamlit_stageinnerhalb einer Datenbank namensstreamlit_dbund einem Schema namensstreamlit_schema.Bemerkung
Dieser Parameter muss auf ein einzelnes Verzeichnis innerhalb eines benannten internen Stagingbereichs verweisen.
Externe Stagingbereiche werden für Streamlit in Snowflake nicht unterstützt.
Wenn Sie ein Streamlit-Anwendungsobjekt innerhalb der Snowflake Native App Framework erstellen oder ersetzen, verwenden Sie
FROM 'relative_path_from_stage_root_directory'und nichtROOT_LOCATION = 'stage_path_and_root_directory'.
Anforderungen an die Zugriffssteuerung¶
Wenn Ihre Rolle nicht Eigentümer der Objekte in der folgenden Tabelle ist, dann muss Ihre Rolle die aufgeführten Berechtigungen für diese Objekte haben:
Berechtigung |
Objekt |
Notes |
|---|---|---|
CREATE STREAMLIT |
Schema where you create the Streamlit object |
|
READ |
Stagingbereich, aus dem Sie die Quelldateien der Streamlit-App kopieren |
|
CREATE STAGE |
Schema where you create the Streamlit object |
Diese Berechtigung ist nur erforderlich, um Streamlit-Objekte mit dem ROOT_LOCATION-Parameter zu erstellen |
USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen. Beachten Sie, dass eine Rolle, die eine beliebige Berechtigung für ein Schema erhalten hat, es dieser Rolle erlaubt, das Schema aufzulösen. Zum Beispiel kann eine Rolle, der die CREATE-Berechtigung für ein Schema gewährt wurde, Objekte in diesem Schema erstellen, ohne auch USAGE für dieses Schema gewährt bekommen zu haben.
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¶
Sie müssen die App initialisieren, nachdem Sie sie erstellt haben.
Wichtig
Nachdem Sie CREATE STREAMLIT verwendet haben, ist die Streamlit-App erst verfügbar, wenn Sie eine der folgenden Aktionen ausführen:
Führen Sie ALTER STREAMLIT … ADD LIVE VERSION FROM LAST für das neue Streamlit-Objekt aus.
Rufen Sie die App in Snowsight mit der Rolle auf, der die App gehört.
Wenn Sie ein Schema oder eine Datenbank klonen, die ein Streamlit-Objekt enthält, wird das Streamlit-Objekt nicht mitgeklont.
Um die von der Streamlit-Anwendung verwendeten Pakete anzugeben, verwenden Sie eine
environment.yml-Datei.Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can’t both be used in the same statement.
CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.
Beispiele¶
Um eine Streamlit-App aus einem Stagingbereich zu erstellen, führen Sie den Befehl CREATE STREAMLIT aus, wie im folgenden Beispiel gezeigt:
CREATE STREAMLIT hello_streamlit
FROM @streamlit_db.streamlit_schema.streamlit_stage
MAIN_FILE = 'streamlit_main.py'
QUERY_WAREHOUSE = my_warehouse;
Um eine Streamlit-App aus einem Git-Repository zu erstellen, führen Sie den Befehl CREATE STREAMLIT aus, wie im folgenden Beispiel gezeigt:
CREATE STREAMLIT hello_streamlit
FROM @streamlit_db.streamlit_schema.streamlit_repo/branches/streamlit_branch/
MAIN_FILE = 'streamlit_main.py'
QUERY_WAREHOUSE = my_warehouse;