CREATE STREAMLIT

Erstellt ein neues Streamlit-Objekt in Snowflake oder ersetzt ein vorhandenes Streamlit-Objekt in demselben Schema.

Siehe auch:

SHOW STREAMLITS, DESCRIBE STREAMLIT, ALTER STREAMLIT, DROP STREAMLIT, UNDROP STREAMLIT

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> [ , ... ] ) ]
Copy

Die folgende Syntax ist veraltet:

Wichtig

ROOT_LOCATION ist ein Legacy-Parameter und kann in einem zukünftigen Release veraltet sein. Für Streamlit-Apps, die mit ROOT_LOCATION erstellt wurden, wird die Bearbeitung mehrerer Dateien und die Git-Integration nicht unterstützt.

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> [ , ... ] ) ]
Copy

Erforderliche Parameter

name

Gibt den Bezeichner (d. h. den Namen) des Streamlit-Objekts an. Dieser Bezeichner muss für das Schema, in dem das Objekt erstellt wird, eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

FROM source_location

Kopiert 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_stage heiß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_name

Gibt das Warehouse an, in dem die App ausgeführt und SQL-Abfragen ausgeführt werden sollen, die von der Streamlit-App ausgegeben werden.

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'

Gibt einen Titel für das Streamlit-Objekt an, der in Snowsight angezeigt wird.

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'

Gibt den Pfad zum benannten Stagingbereich an, der z. B. die Streamlit-Python-Dateien, die Mediendateien und die Datei environment.yml enthält:

ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
Copy

In diesem Beispiel befinden sich die Streamlit-Dateien in einem benannten Stagingbereich namens streamlit_stage innerhalb einer Datenbank namens streamlit_db und einem Schema namens streamlit_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 nicht ROOT_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

Anmerkungen

CREATE STREAMLIT

Schema, in dem Sie das Streamlit-Objekt erstellen

READ

Stagingbereich, aus dem Sie die Quelldateien der Streamlit-App kopieren

CREATE-STAGE

Schema, in dem Sie das Streamlit-Objekt erstellen

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.

  • Die Klauseln OR REPLACE und IF NOT EXISTS schließen sich gegenseitig aus. Sie können nicht beide in der gleichen Anweisung verwendet werden.

  • 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;
Copy

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;
Copy