Snowflakeオブジェクトの管理

snow object コマンドを使用すると、ステージ、Snowpark関数、Streamlitアプリなど、ほとんどのSnowflakeオブジェクトを簡単に管理できます。オブジェクトの種類ごとに別々のコマンドを使用する代わりに、これらのコマンドを使用して、次のような一般的なタスクを実行できます。

サポートされているタイプのリストを表示するには、次のように、いずれかの snow object コマンドの --help オプションを使用します。

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

...

オブジェクトのサブコマンドを使用すると、サービス固有の操作専用のサービス固有のコマンドグループを残しながら、一般的な操作を実行できます。

指定したタイプのオブジェクトを作成する

snow object create コマンドは、指定された定義に基づいて、以下の構文で指定されたオブジェクトを作成します。

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

条件:

  • TYPE は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 は、<key>=<value> ペアのリストの形でオブジェクト定義が含まれています。例:

    snow object create database name=my_db comment="Created with Snowflake CLI"
    
    Copy
  • --json {OBJECT_DEFINITION} は、 JSON のオブジェクト定義を含んでいます。

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

注釈

以下のオブジェクト・タイプでは、 config.toml のように接続構成でデータベースを特定するか、 --database オプションを使用してコマンドに渡す必要があります。

  • イメージリポジトリ

  • スキーマ

  • サービス

  • テーブル

  • タスク

option-attributes パラメーターを使ってデータベース・オブジェクトを作成します。

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

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

--json object-definition オプションを使ってデータベースを作成します。

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

--json object-definition オプションを使ってテーブルを作成します。

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

table.json が次を含む場所。

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

特定のタイプのすべてのオブジェクトを一覧表示する

snow object list コマンドは、権限で使用可能な指定されたタイプのすべてのオブジェクトを一覧表示します。

snow object list TYPE
Copy

ここで、 TYPE はオブジェクトのタイプです。サポートされているタイプの完全なリストについては、 snow object list --help を使用してください。

すべてのロールオブジェクトを一覧表示するには、次のコマンドを入力します。

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

--like [-l] <パターン > を使用し、 SQL LIKE パターンを使用して、名前でオブジェクトをフィルタリングすることもできます。たとえば、 list function --like "my%"my で始まるすべての関数を一覧表示します。SQL パターン構文の詳細については、 SQL LIKE キーワード をご参照ください。

文字列 public で始まるロールオブジェクトのみを一覧表示するには、次のコマンドを入力します。

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

指定されたタイプのオブジェクトの説明を表示する

snow object describe コマンドは、指定したタイプのオブジェクトの説明を提供します。

snow object describe TYPE IDENTIFIER
Copy

条件:

  • TYPE はオブジェクトのタイプです。サポートされているタイプの完全なリストについては、 snow object describe --help を使用してください。

  • IDENTIFIER はオブジェクトの名前です。プロシージャーや関数の場合、識別子は "hello(int,string)" のように引数タイプを指定する必要があります。

関数オブジェクトを記述するには、次のようなコマンドを入力します。

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

指定したタイプのオブジェクトを削除する。

snow object drop コマンドは、指定された名前とタイプのSnowflakeオブジェクトを削除します。

snow object drop TYPE IDENTIFIER
Copy

条件:

  • TYPE はオブジェクトのタイプです。サポートされているタイプの完全なリストについては、 snow object drop --help を使用してください。

  • IDENTIFIER はオブジェクトの名前です。プロシージャーや関数の場合、識別子は "hello(int,string)" のように引数タイプを指定する必要があります。

プロシージャーをドロップするには、次のようなコマンドを入力します。

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