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
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}])
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"
--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"}'
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'
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
So erstellen Sie eine Datenbank mit der --json object-definition
-Option:
snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
So erstellen Sie eine Tabelle mit der --json object-definition
-Option:
snow object create table --json "$(cat table.json)" --database my_db
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"
}
]
}
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
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
+--------------------------------------------------------------------------------------------------------------------------------+
| | | | | 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%
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
Wobei:
TYPE
ist der Typ des Objekts. Untersnow 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)"
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
Wobei:
TYPE
ist der Typ des Objekts. Untersnow 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()"
drop procedure test_procedure()
+--------------------------------------+
| status |
|--------------------------------------|
| TEST_PROCEDURE successfully dropped. |
+--------------------------------------+