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 오브젝트 유형입니다.accountcatalog-integrationcompute-pooldatabasedatabase-roledynamic-tableevent-tableexternal-volumefunctionimage-repositorymanaged-accountnetwork-policynotebooknotification-integrationpipeprocedureroleschemaservicestagestreamtabletaskuser-defined-functionviewwarehouse
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 --schema public
--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.9
| 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. |
+--------------------------------------+