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
Copy
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}])
Copy

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"
    
    Copy
  • --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"}'
    
    Copy

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

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
Copy

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"}'
Copy

Pour créer une table en utilisant l’option --json object-definition :

snow object create table --json "$(cat table.json)" --database my_db
Copy

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"
    }
  ]
}
Copy

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
Copy

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
Copy
+--------------------------------------------------------------------------------------------------------------------------------+
|            |            |            |            | 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%
Copy
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
Copy

où :

  • TYPE est le type de l’objet. Utilisez snow 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)"
Copy
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
Copy

où :

  • TYPE est le type de l’objet. Utilisez snow 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()"
Copy
drop procedure test_procedure()
+--------------------------------------+
| status                               |
|--------------------------------------|
| TEST_PROCEDURE successfully dropped. |
+--------------------------------------+