Gestion des objets Snowflake¶
Les commandes snow object
vous offrent un moyen pratique de gérer la plupart des objets de Snowflake, tels que les zones de préparation, les fonctions Snowpark ou les applis Streamlit. Au lieu d’utiliser des commandes distinctes pour chaque type d’objet, vous pouvez utiliser ces commandes pour effectuer des performances communes, notamment les suivantes :
Pour obtenir la liste des types pris en charge, utilisez l’option --help
pour l’une des commandes snow object
, comme la suivante :
snow object list --help
Usage: snow object list [OPTIONS] OBJECT_TYPE
Lists all available Snowflake objects of given type.
Supported types: compute-pool, database, function, image-repository, integration, network-rule,
procedure, role, schema, secret, service, stage, stream, streamlit, table, task,
user, view, warehouse
...
Les sous-commandes d’objets vous permettent d’effectuer des opérations courantes, tandis que les groupes de commandes spécifiques aux services sont dédiés aux opérations spécifiques aux services.
Créer un objet d’un type spécifié¶
La commande snow object create
crée un objet spécifié en fonction de la définition fournie, en utilisant la syntaxe suivante :
snow object create TYPE ([OBJECT_ATTRIBUTES]|[--json {OBJECT_DEFINITION}])
où :
TYPE
est un type d’objet Snowflake :account
catalog-integration
compute-pool
database
database-role
dynamic-table
event-table
external-volume
function
image-repository
managed-account
network-policy
notebook
notification-integration
pipe
procedure
role
schema
service
stage
stream
table
task
user-defined-function
view
warehouse
OBJECT_ATTRIBUTES
contient la définition de l’objet sous la forme d’une liste de paires<key>=<value>
, telles que :snow object create database name=my_db comment="Created with Snowflake CLI"
--json {OBJECT_DEFINITION}
contient la définition de l’objet dans JSON, telle que :snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
Note
Les types d’objets suivants nécessitent qu’une base de données soit identifiée dans la configuration de connexion, par exemple config.toml
, ou transmis à la commande à l’aide de l’option --database
.
image-repository
schéma
service
table
task
Pour créer un objet de base de données à l’aide du paramètre option-attributes
:
snow object create database name=my_db comment='Created with Snowflake CLI'
Pour créer un objet de table à l’aide du paramètre option-attributes
:
snow object create table name=my_table columns='[{"name":"col1","datatype":"number", "nullable":false}]' constraints='[{"name":"prim_key", "column_names":["col1"], "constraint_type":"PRIMARY KEY"}]' --database my_db
Pour créer une base de données à l’aide de l’option --json object-definition
:
snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
Pour créer une table en utilisant l’option --json object-definition
:
snow object create table --json "$(cat table.json)" --database my_db
où table.json
contient les éléments suivants :
{
"name": "my_table",
"columns": [
{
"name": "col1",
"datatype": "number",
"nullable": false
}
],
"constraints": [
{
"name": "prim_key",
"column_names": ["col1"],
"constraint_type": "PRIMARY KEY"
}
]
}
Lister tous les objets d’un type spécifique¶
La commande snow object list
dresse la liste de tous les objets d’un type donné disponibles avec vos autorisations.
snow object list TYPE
où TYPE
est le type de l’objet. Utilisez snow object list --help
pour obtenir la liste complète des types pris en charge.
Pour dresser la liste de tous les objets de rôle, entrez la commande suivante :
snow object list role
+--------------------------------------------------------------------------------------------------------------------------------+
| | | | | is_inherit | assigned_t | granted_to | granted_ro | | |
| created_on | name | is_default | is_current | ed | o_users | _roles | les | owner | comment |
|------------+------------+------------+------------+------------+------------+------------+------------+------------+-----------|
| 2023-07-24 | ACCOUNTADM | N | N | N | 2 | 0 | 2 | | Account |
| 06:05:49-0 | IN | | | | | | | | administr |
| 7:00 | | | | | | | | | ator can |
| | | | | | | | | | manage |
| | | | | | | | | | all |
| | | | | | | | | | aspects |
| | | | | | | | | | of the |
| | | | | | | | | | account. |
| 2023-07-24 | PUBLIC | N | N | Y | 0 | 0 | 0 | | Public |
| 06:05:48.9 | | | | | | | | | role is |
| 56000-07:0 | | | | | | | | | automatic |
| 0 | | | | | | | | | ally |
| | | | | | | | | | available |
| | | | | | | | | | to every |
| | | | | | | | | | user in |
| | | | | | | | | | the |
| | | | | | | | | | account. |
| 2023-07-24 | SYSADMIN | N | N | N | 0 | 1 | 0 | | System |
| 06:05:49.0 | | | | | | | | | administr |
| 33000-07:0 | | | | | | | | | ator can |
| 0 | | | | | | | | | create |
| | | | | | | | | | and |
| | | | | | | | | | manage |
| | | | | | | | | | databases |
| | | | | | | | | | and |
| | | | | | | | | | warehouse |
| | | | | | | | | | s. |
| 2023-07-24 | USERADMIN | N | N | N | 0 | 1 | 0 | | User |
| 06:05:49.0 | | | | | | | | | administr |
| 45000-07:0 | | | | | | | | | ator can |
| 0 | | | | | | | | | create |
| | | | | | | | | | and |
| | | | | | | | | | manage |
| | | | | | | | | | users and |
| | | | | | | | | | roles |
+--------------------------------------------------------------------------------------------------------------------------------+
Vous pouvez également utiliser l’option --like [-l] <pattern>
pour filtrer les objets par nom à l’aide d’un modèle SQL LIKE. Par exemple, list function --like "my%"
répertorie toutes les fonctions commençant par my. Pour plus d’informations sur la syntaxe des modèles SQL, voir Mot clé SQL LIKE.
Pour dresser la liste des objets de rôle commençant par la chaîne public, entrez la commande suivante :
snow object list role --like public%
show roles like 'public%'
+-------------------------------------------------------------------------------
| created_on | name | is_default | is_current | ...
|----------------------------------+-------------+------------+------------+----
| 2023-02-01 15:25:04.105000-08:00 | PUBLIC | N | N | ...
| 2024-01-15 12:55:05.840000-08:00 | PUBLIC_TEST | N | N | ...
+-------------------------------------------------------------------------------
Afficher la description d’un objet d’un type spécifié¶
La commande snow object describe
fournit une description d’un objet d’un type donné.
snow object describe TYPE IDENTIFIER
où :
TYPE
est le type de l’objet. Utilisezsnow object describe --help
pour obtenir la liste complète des types pris en charge.IDENTIFIER
est le nom de l’objet. Pour les procédures et les fonctions, l’identificateur doit spécifier les types d’arguments, tels que"hello(int,string)"
.
Pour décrire un objet de fonction, entrez une commande similaire à la suivante :
snow object describe function "hello_function(string)"
describe function hello_function(string)
+---------------------------------------------------------------------
| property | value
|--------------------+------------------------------------------------
| signature | (NAME VARCHAR)
| returns | VARCHAR(16777216)
| language | PYTHON
| null handling | CALLED ON NULL INPUT
| volatility | VOLATILE
| body | None
| imports |
| handler | functions.hello_function
| runtime_version | 3.8
| packages | ['snowflake-snowpark-python']
| installed_packages | ['_libgcc_mutex==0.1','_openmp_mutex==5.1',...
+---------------------------------------------------------------------
Supprimer un objet d’un type spécifié¶
La commande snow object drop
supprime un objet Snowflake d’un nom et d’un type donnés.
snow object drop TYPE IDENTIFIER
où :
TYPE
est le type de l’objet. Utilisezsnow object drop --help
pour obtenir la liste complète des types pris en charge.IDENTIFIER
est le nom de l’objet. Pour les procédures et les fonctions, l’identificateur doit spécifier les types d’arguments, tels que"hello(int,string)"
.
Pour supprimer une procédure, entrez une commande similaire à la suivante :
snow object drop procedure "test_procedure()"
drop procedure test_procedure()
+--------------------------------------+
| status |
|--------------------------------------|
| TEST_PROCEDURE successfully dropped. |
+--------------------------------------+