Verwalten von Snowflake-Objekten

Mit den snow object-Befehlen können Sie die meisten Snowflake-Objekte wie Stagingbereiche, Snowpark-Funktionen oder Streamlit-Apps effizient verwalten. Anstatt für jeden Typ von Objekt separate Befehle zu verwenden, können Sie diese Befehle verwenden, um allgemeine Aufgaben auszuführen, einschließlich der folgenden:

Um eine Liste der unterstützten Typen anzuzeigen, verwenden Sie die Option --help für einen der snow object-Befehle, wie z. B. den folgenden:

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

...

Mit den Objektunterbefehlen können Sie allgemeine Operationen ausführen, während die Gruppen der dienstspezifischen Befehle für dienstspezifische Operationen reserviert bleiben.

Ein Objekt eines bestimmten Typs erstellen

Der snow object create-Befehl erstellt ein bestimmtes Objekt auf der Grundlage der angegebenen Definition unter Verwendung der folgenden Syntax:

snow object create TYPE ([OBJECT_ATTRIBUTES]|[--json {OBJECT_DEFINITION}])
Copy

Wobei:

  • TYPE ist ein Snowflake-Objekttyp:

    • 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 enthält die Objektdefinition in Form einer Liste von <key>=<value>- Paaren, wie z. B.:

    snow object create database name=my_db comment="Created with Snowflake CLI"
    
    Copy
  • --json {OBJECT_DEFINITION} enthält die Objektdefinition in JSON, wie z. B.:

    snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
    
    Copy

Bemerkung

Für die folgenden Objekttypen muss eine Datenbank in der Konfiguration der Verbindung identifiziert werden, z. B. config.toml, oder dem Befehl mit der --database-Option übergeben werden.

  • image-repository

  • schema

  • service

  • table

  • task

So erstellen Sie ein Datenbankobjekt unter Verwendung des option-attributes-Parameters:

snow object create database name=my_db comment='Created with Snowflake CLI'
Copy

So erstellen Sie ein Tabellenobjekt unter Verwendung des option-attributes-Parameters:

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

So erstellen Sie eine Datenbank mit der --json object-definition-Option:

snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
Copy

So erstellen Sie eine Tabelle mit der --json object-definition-Option:

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

wobei table.json Folgendes enthält:

{
  "name": "my_table",
  "columns": [
    {
      "name": "col1",
      "datatype": "number",
      "nullable": false
    }
  ],
  "constraints": [
    {
      "name": "prim_key",
      "column_names": ["col1"],
      "constraint_type": "PRIMARY KEY"
    }
  ]
}
Copy

Alle Objekte eines bestimmten Typs auflisten

Der snow object list-Befehl listet alle Objekte des angegebenen Typs auf, die mit Ihren Berechtigungen verfügbar sind.

snow object list TYPE
Copy

Wobei: TYPE ist der Typ des Objekts. Unter snow object list --help finden Sie eine vollständige Liste der unterstützten Typen.

Um alle Rollenobjekte aufzulisten, geben Sie den folgenden Befehl ein:

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

Sie können auch --like [-l] <pattern> verwenden, um Objekte nach dem Namen zu filtern, indem Sie ein SQL-LIKE-Muster verwenden. Beispielsweise listet list function --like "my%" alle Funktionen auf, die mit my beginnen. Weitere Informationen zur Syntax von SQL-Mustern finden Sie unter SQL LIKE Keyword.

Um nur Rollenobjekte aufzulisten, die mit der Zeichenfolge public beginnen, geben Sie den folgenden Befehl ein:

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          | ...
+-------------------------------------------------------------------------------

Beschreibung von Objekten eines bestimmten Typs anzeigen

Der snow object describe-Befehl liefert eine Beschreibung eines Objekts des angegebenen Typs.

snow object describe TYPE IDENTIFIER
Copy

Wobei:

  • TYPE ist der Typ des Objekts. Unter snow object describe --help finden Sie eine vollständige Liste der unterstützten Typen.

  • IDENTIFIER ist der Name des Objekts. Bei Prozeduren und Funktionen muss der Bezeichner die Argumenttypen angeben, z. B. "hello(int,string)".

Um ein Funktionsobjekt zu beschreiben, geben Sie einen Befehl ähnlich dem folgenden ein:

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',...
+---------------------------------------------------------------------

Objekt eines bestimmten Typs löschen

Der snow object drop-Befehl löscht ein Snowflake-Objekt des angegebenen Namens und Typs.

snow object drop TYPE IDENTIFIER
Copy

Wobei:

  • TYPE ist der Typ des Objekts. Unter snow object drop --help finden Sie eine vollständige Liste der unterstützten Typen.

  • IDENTIFIER ist der Name des Objekts. Bei Prozeduren und Funktionen muss der Bezeichner die Argumenttypen angeben, z. B. "hello(int,string)".

Um eine Prozedur zu löschen, geben Sie einen Befehl ähnlich dem folgenden ein:

snow object drop procedure "test_procedure()"
Copy
drop procedure test_procedure()
+--------------------------------------+
| status                               |
|--------------------------------------|
| TEST_PROCEDURE successfully dropped. |
+--------------------------------------+