Snowflake 오브젝트 관리하기¶
snow object
명령은 스테이지, Snowpark 함수 또는 Streamlit 앱과 같은 대부분의 Snowflake 오브젝트를 편리하게 관리할 수 있는 방법을 제공합니다. 각 오브젝트 유형에 대해 별도의 명령을 사용하는 대신, 이러한 명령을 사용하여 다음을 포함한 일반적인 작업을 수행할 수 있습니다.
지원되는 유형 목록을 보려면 다음과 같이 snow object
명령에 --help
옵션을 사용합니다.
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
...
오브젝트 하위 명령을 사용하면 공통 작업을 수행할 수 있으며, 서비스별 명령 그룹은 서비스별 작업 전용으로 남겨둘 수 있습니다.
특정 유형의 오브젝트 만들기¶
snow object create
명령은 다음 구문을 사용하여 제공된 정의에 따라 지정된 오브젝트를 생성합니다.
snow object create TYPE ([OBJECT_ATTRIBUTES]|[--json {OBJECT_DEFINITION}])
여기서,
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"
--json {OBJECT_DEFINITION}
에는 다음과 같이 JSON 형식의 오브젝트 정의가 포함되어 있습니다.snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
참고
다음 오브젝트 유형은 config.toml
같이 연결 구성에서 데이터베이스를 식별하거나 --database
옵션을 사용하여 명령에 전달해야 합니다.
image-repository
스키마
서비스
테이블
작업
option-attributes
매개 변수를 사용하여 데이터베이스 오브젝트를 생성하려면 다음을 수행합니다.
snow object create database name=my_db comment='Created with Snowflake CLI'
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
--json object-definition
옵션을 사용하여 데이터베이스를 생성하려면 다음을 수행합니다.
snow object create database --json '{"name":"my_db", "comment":"Created with Snowflake CLI"}'
--json object-definition
옵션을 사용하여 테이블을 생성하려면 다음을 수행합니다.
snow object create table --json "$(cat table.json)" --database my_db
여기서 table.json
에는 다음이 포함됩니다.
{
"name": "my_table",
"columns": [
{
"name": "col1",
"datatype": "number",
"nullable": false
}
],
"constraints": [
{
"name": "prim_key",
"column_names": ["col1"],
"constraint_type": "PRIMARY KEY"
}
]
}
특정 유형의 모든 오브젝트 나열¶
snow object list
명령은 사용자의 권한에 따라 사용 가능한 지정된 유형의 모든 오브젝트를 나열합니다.
snow object list TYPE
여기서 TYPE
은 오브젝트의 유형입니다. 지원되는 전체 유형 목록을 보려면 snow object list --help
를 사용합니다.
모든 역할 오브젝트를 나열하려면 다음 명령을 입력합니다.
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 |
+--------------------------------------------------------------------------------------------------------------------------------+
--like [-l] <pattern>
을 사용하여 SQL LIKE 퍄턴으로 이름별로 오브젝트를 필터링하는 데 사용할 수도 있습니다. 예를 들어, list function --like "my%"
는 my 로 시작하는 모든 함수를 나열합니다. SQL 패턴 구문에 대한 자세한 내용은 SQL LIKE 키워드 섹션을 참조하시오.
public 문자열로 시작하는 역할 오브젝트만 나열하려면 다음 명령을 입력합니다.
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 | ...
+-------------------------------------------------------------------------------
지정된 유형의 오브젝트에 대한 설명을 표시합니다.¶
snow object describe
명령은 주어진 유형의 오브젝트에 대한 설명을 제공합니다.
snow object describe TYPE IDENTIFIER
여기서,
TYPE
은 오브젝트의 유형입니다. 지원되는 전체 유형 목록을 보려면snow object describe --help
를 사용합니다.IDENTIFIER
은 오브젝트의 이름입니다. 프로시저와 함수의 경우 식별자는"hello(int,string)"
같은 인자 유형을 지정해야 합니다.
함수 오브젝트를 설명하려면 다음과 유사한 명령을 입력합니다.
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',...
+---------------------------------------------------------------------
지정된 유형의 오브젝트 삭제¶
snow object drop
명령은 주어진 이름과 유형의 Snowflake 오브젝트를 삭제합니다.
snow object drop TYPE IDENTIFIER
여기서,
TYPE
은 오브젝트의 유형입니다. 지원되는 전체 유형 목록을 보려면snow object drop --help
를 사용합니다.IDENTIFIER
은 오브젝트의 이름입니다. 프로시저와 함수의 경우 식별자는"hello(int,string)"
같은 인자 유형을 지정해야 합니다.
프로시저를 삭제하려면 다음과 유사한 명령을 입력합니다.
snow object drop procedure "test_procedure()"
drop procedure test_procedure()
+--------------------------------------+
| status |
|--------------------------------------|
| TEST_PROCEDURE successfully dropped. |
+--------------------------------------+