CREATE STREAMLIT¶
Crée un nouvel objet Streamlit dans Snowflake ou remplace un objet Streamlit existant dans le même schéma.
- Voir aussi :
SHOW STREAMLITS, DESCRIBE STREAMLIT, ALTER STREAMLIT, DROP STREAMLIT, UNDROP STREAMLIT
Syntaxe¶
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> [ , ... ] ) ]
La syntaxe suivante est héritée :
Important
ROOT_LOCATION est un paramètre hérité et peut devenir obsolète dans une future version. Pour les applications Streamlit créées à l’aide de ROOT_LOCATION, la modification de plusieurs fichiers et l’intégration Git ne sont pas pris en charge.
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> [ , ... ] ) ]
Paramètres requis¶
nameSpécifie l’identificateur (c’est-à-dire le nom) de l’objet Streamlit. Cet identificateur doit être unique pour le schéma dans lequel l’objet est créé.
De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex.
"My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.Pour plus de détails, voir Exigences relatives à l’identificateur.
Paramètres facultatifs¶
FROM source_locationCopie les fichiers sources de l’application à partir de l’emplacement spécifié. L’emplacement doit se trouver dans une zone de préparation interne nommée. Le chemin peut être relatif ou entièrement qualifié. Par exemple, si la zone de préparation est nommée
@streamlit_db.streamlit_schema.streamlit_stage, les emplacements sources valides peuvent inclure :Un chemin d’accès complet à la racine de la zone de préparation :
FROM '@streamlit_db.streamlit_schema.streamlit_stage'Un chemin d’accès relatif à la racine de la zone de préparation :
FROM '@streamlit_stage'Un chemin relatif ou complet vers un sous-répertoire de la zone de préparation :
FROM '@streamlit_db.streamlit_schema.streamlit_stage/subdir'
Les fichiers sont copiés une seule fois lorsque la commande CREATE est exécutée ; les modifications ultérieures de l’emplacement source ne mettent pas automatiquement à jour l’application Streamlit.
Si ce paramètre n’est pas spécifié, Snowflake copie les fichiers sources d’une application par défaut avec un fichier de point d’entrée
streamlit_app.py.MAIN_FILE = 'filename'Nom de fichier du fichier de point d’entrée Streamlit. Ce fichier doit se trouver à la racine du répertoire source spécifié dans FROM.
Si vous utilisez ROOT_LOCATION au lieu de FROM, alors MAIN_FILE peut être un chemin relatif à ROOT_LOCATION.
DEFAULT :
'streamlit_app.py'QUERY_WAREHOUSE = warehouse_nameSpécifie l’entrepôt pour exécuter l’application et exécuter les requêtes SQL émises par l’application Streamlit.
DEFAULT : aucune valeur
Note
Bien que vous puissiez créer un objet Streamlit sans ce paramètre, l’application ne s’exécutera pas tant que vous n’aurez pas spécifié un entrepôt de requêtes.
COMMENT = 'string_literal'Spécifie un commentaire pour l’objet Streamlit.
DEFAULT : aucune valeur
TITLE = 'app_title'Spécifie un titre pour l’objet Streamlit à afficher dans Snowsight.
DEFAULT : Nom de l’objet Streamlit transmis à CREATE STREAMLIT.
IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )L’emplacement (zone de préparation), le chemin et le nom du ou des fichiers à importer.
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )Les noms des intégrations d’accès externe nécessaires pour que le code de l’application Streamlit puisse accéder aux réseaux externes.
ROOT_LOCATION = 'stage_path_and_root_directory'Spécifie le chemin vers la zone de préparation nommée contenant les fichiers Python Streamlit, les fichiers média et le fichier
environment.yml, par exemple :ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
Dans cet exemple, les fichiers Streamlit sont situés sur une zone de préparation nommée
streamlit_stageau sein d’une base de données nomméestreamlit_dbet d’un schéma nomméstreamlit_schema.Note
Ce paramètre doit pointer vers un répertoire unique à l’intérieur d’une zone de préparation interne nommée.
Les zones de préparation externes ne sont pas prises en charge pour Streamlit in Snowflake.
Si vous créez ou remplacez un objet d’application Streamlit dans Snowflake Native App Framework, utilisez
FROM 'relative_path_from_stage_root_directory'et nonROOT_LOCATION = 'stage_path_and_root_directory'.
Exigences en matière de contrôle d’accès¶
Si votre rôle ne possède pas les objets de la table suivante, votre rôle doit disposer des privilèges répertoriés sur ces objets :
Privilège |
Objet |
Remarques |
|---|---|---|
CREATE STREAMLIT |
Schéma dans lequel vous créez l’objet Streamlit |
|
READ |
Zone de préparation à partir de laquelle vous copiez les fichiers sources de l’application Streamlit |
|
CREATE STAGE |
Schéma dans lequel vous créez l’objet Streamlit |
Ce privilège n’est requis que pour créer des objets Streamlit avec le paramètre ROOT_LOCATION. |
Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma. Notez qu’un rôle doté d’un privilège quelconque sur un schéma permet à ce rôle de résoudre le schéma. Par exemple, un rôle doté du privilège CREATE sur un schéma peut créer des objets sur ce schéma sans également avoir le privilège USAGE attribué sur ce schéma.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Vous devez initialiser l’application après l’avoir créée.
Important
Après avoir utilisé CREATE STREAMLIT, l’application Streamlit n’est pas active tant que vous n’avez pas effectué l’une des actions suivantes :
Exécutez ALTER STREAMLIT … ADD LIVE VERSION FROM LAST sur le nouvel objet Streamlit.
Consultez l’application dans Snowsight avec le rôle qui possède l’application.
Lorsque vous clonez un schéma ou une base de données contenant un objet Streamlit, l’objet Streamlit n’est pas cloné.
Pour spécifier les paquets utilisés par l’application Streamlit, utilisez un fichier
environment.yml.Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Les clauses OR REPLACE et IF NOT EXISTS s’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.
Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.
Exemples¶
Pour créer une application Streamlit à partir d’une zone de préparation, exécutez la commande CREATE STREAMLIT, comme indiqué dans l’exemple suivant :
CREATE STREAMLIT hello_streamlit
FROM @streamlit_db.streamlit_schema.streamlit_stage
MAIN_FILE = 'streamlit_main.py'
QUERY_WAREHOUSE = my_warehouse;
Pour créer une application Streamlit à partir d’un référentiel Git, exécutez la commande CREATE STREAMLIT, comme indiqué dans l’exemple suivant :
CREATE STREAMLIT hello_streamlit
FROM @streamlit_db.streamlit_schema.streamlit_repo/branches/streamlit_branch/
MAIN_FILE = 'streamlit_main.py'
QUERY_WAREHOUSE = my_warehouse;