웨어하우스 관련 작업하기¶
모든 웨어하우스 작업은 Snowflake 웹 인터페이스에서 또는 웨어하우스를 위한 DDL 명령을 사용하여 수행할 수 있습니다.
이 항목의 내용:
웨어하우스 만들기¶
웨어하우스는 웹 인터페이스를 통해 또는 SQL을 사용하여 생성할 수 있습니다.
- Snowsight:
Admin » Warehouses » Warehouse 를 선택합니다.
- Classic Console:
- SQL:
CREATE WAREHOUSE 명령을 실행합니다.
웨어하우스를 생성할 때 웨어하우스가 처음에 “시작됨”(즉, 실행 중) 또는 “중단됨” 상태로 생성되는지 여부를 지정할 수 있습니다. “시작됨”을 선택한 경우 웨어하우스에 대해 모든 컴퓨팅 리소스가 프로비저닝되면 웨어하우스에서 크레딧을 사용하기 시작합니다.
참고
“시작됨” 상태에서 웨어하우스를 생성하는 경우 Snowflake가 웨어하우스에 대한 모든 컴퓨팅 리소스를 프로비저닝하므로 웨어하우스를 완전히 사용할 수 있을 때까지는 시간이 걸릴 수 있습니다.
웨어하우스 시작 또는 재개하기¶
초기 생성을 포함하여 웨어하우스는 언제든지 시작할 수 있습니다. 웨어하우스가 생성된 이후에 웨어하우스를 재개하는 것은 웨어하우스를 시작하는 것과 같습니다.
일시 중단된(즉, 비활성) 웨어하우스는 웹 인터페이스를 통해 또는 SQL을 사용하여 다음과 같이 재개할 수 있습니다.
- Snowsight:
Admin » Warehouses » <suspended_warehouse_name> » » Resume 선택
- Classic Console:
- SQL:
RESUME
키워드를 사용하여 ALTER WAREHOUSE 명령을 실행합니다.
일반적으로 웨어하우스를 시작하는 시작하기 위해서는 몇 초밖에 걸리지 않지만, Snowflake가 웨어하우스에 대한 컴퓨팅 리소스를 프로비저닝하므로 드물게 시간이 더 오래 걸리는 경우가 있습니다.
다음을 실행하는 동안 웨어하우스는 크레딧을 소비합니다.
모든 컴퓨팅 리소스가 웨어하우스에 프로비저닝되면 웨어하우스는 크레딧을 소비하기 시작합니다.
드문 경우지만, 일부 컴퓨팅 리소스의 프로비저닝이 실패하는 경우 웨어하우스는 프로비저닝된 컴퓨팅 리소스에 대한 크레딧만 소비합니다.
나머지 컴퓨팅 리소스가 성공적으로 프로비저닝되면 웨어하우스는 요청된 모든 컴퓨팅 리소스에 대한 크레딧을 소비하기 시작합니다.
일반적으로는 웨어하우스를 시작하거나 재개하기 위해서는 몇 초 밖에 걸리지 않지만, Snowflake가 웨어하우스에 대한 컴퓨팅 리소스를 프로비저닝하므로 시간이 더 오래 걸릴 수 있습니다.
리소스가 프로비저닝에 실패하는 경우를 제외하고, Snowflake는 웨어하우스에 대한 모든 컴퓨팅 리소스가 성공적으로 프로비저닝될 때까지 웨어하우스에 제출된 SQL 문의 실행을 시작하지 않습니다.
시작하는 동안 웨어하우스의 컴퓨팅 리소스가 프로비저닝에 실패하면 Snowflake는 실패한 리소스의 복구를 시도합니다.
복구 프로세스 동안 웨어하우스는 요청된 컴퓨팅 리소스의 50% 이상이 성공적으로 프로비저닝되면 SQL 문의 처리를 시작합니다.
크레딧은 웨어하우스의 실행 중에 1초 단위로 과금되며 웨어하우스가 재개될 때마다 1분의 최소 요금이 부과되지만, 크레딧 사용량은 60분(즉, 1시간) 증가 단위로 보고됩니다.
참고
세션에서 제출된 SQL 문을 처리하려면 웨어하우스가 실행 중이고 세션의 현재 웨어하우스(즉, 사용 중인 웨어하우스)가 있어야 합니다. 자세한 내용은 이 항목의 웨어하우스 사용하기 를 참조하십시오.
웨어하우스 일시 중단하기¶
실행 중인 웨어하우스는 언제라도 일시 중단할 수 있으며, SQL 문을 실행 중인 경우에도 마찬가지입니다. 웨어하우스를 일시 중단하면 모든 컴퓨팅 리소스가 종료된 후 웨어하우스가 크레딧을 소비하지 않습니다.
웨어하우스는 웹 인터페이스를 통해 또는 SQL을 사용하여 일시 중단할 수 있습니다.
- Snowsight:
Admin » Warehouses » <started_warehouse_name> » » Suspend 선택
- Classic Console:
- SQL:
SUSPEND
키워드를 사용하여 ALTER WAREHOUSE 명령을 실행합니다.
웨어하우스를 일시 중단하면 Snowflake는 웨어하우스의 모든 유휴 컴퓨팅 리소스를 즉시 종료하지만, 문이 완료될 때까지 문을 실행하는 모든 컴퓨팅 리소스를 계속 허용하여, 이 시점에 리소스가 종료되고 웨어하우스의 상태가 “일시 중단됨”으로 변경됩니다. 종료 대기 중인 컴퓨팅 리소스는 “정지” 모드로 간주됩니다.
웨어하우스 크기 조정하기¶
실행 중이거나 문을 처리하는 동안 등 언제든지 웨어하우스의 크기를 늘리거나 줄일 수 있습니다.
웨어하우스는 웹 인터페이스를 통해 또는 SQL을 사용하여 크기를 조정할 수 있습니다.
- Snowsight:
- Classic Console:
- SQL:
SET WAREHOUSE_SIZE = ...
을 사용하여 ALTER WAREHOUSE 명령을 실행합니다.
웨어하우스의 크기를 더 크게 조정하면 웨어하우스에서 수행 중인 작업이 더 많은 컴퓨팅 리소스의 이점을 활용할 수 있는 경우에 유용하며, 그러한 이점은 다음과 같습니다.
대규모 데이터 세트에 대한 크고 복잡한 쿼리의 성능을 향상합니다.
상당한 양의 데이터를 로드 및 언로드하는 동안 성능이 향상됩니다.
실행 중인 웨어하우스 크기 조정의 영향¶
실행 중인 웨어하우스의 크기를 조정하면 웨어하우스의 각 클러스터에 리소스가 추가되거나 제거됩니다. 웨어하우스 시작 또는 일시 중단과 관련된 모든 사용 및 크레딧 규칙은 시작된 웨어하우스 크기 조정에 적용되며, 그러한 예는 다음과 같습니다.
웨어하우스에 추가된 컴퓨팅 리소스는 프로비저닝될 때 크레딧을 소비하기 시작하지만, 일부 리소스가 프로비저닝에 실패하는 경우를 제외하고 추가 컴퓨팅 리소스는 모두 프로비저닝될 때까지 문의 실행을 시작하지 않습니다.
현재 문을 실행하기 위해 더 이상 사용되지 않는 경우에만 컴퓨팅 리소스가 웨어하우스에서 제거됩니다.
웨어하우스의 크기를 조정해도 웨어하우스에서 현재 실행 중인 문에는 영향을 미치지 않습니다. 더 큰 크기로 크기를 조정하는 경우, 프로비저닝이 완료된 새 컴퓨팅 리소스는 이미 웨어하우스 큐에서 대기 중인 문과 웨어하우스에 제출되는 향후의 모든 문을 실행하기 위해서만 사용됩니다.
팁
웨어하우스에 대한 추가 컴퓨팅 리소스가 완전히 프로비저닝되었는지 확인하려면 ALTER WAREHOUSE 명령에 WAIT_FOR_COMPLETION
매개 변수를 추가합니다. 또한, SHOW WAREHOUSES 를 사용하여 state
를 확인할 수도 있습니다.
일시 중단된 웨어하우스 크기 조정의 영향¶
일시 중단된 웨어하우스의 크기를 조정해도 웨어하우스에 대한 새 컴퓨팅 리소스는 프로비저닝되지 않습니다. 이를 통해 웨어하우스가 다음에 재개되어 웨어하우스 시작과 관련된 모든 사용 및 크레딧 규칙이 적용될 때 추가 컴퓨팅 리소스를 프로비저닝하도록 Snowflake에 편리하게 지시할 수 있습니다.
웨어하우스 사용하기¶
Snowflake에서 쿼리 또는 DML 문을 실행하려면 웨어하우스가 실행 중이어야 하며 쿼리/문이 제출된 세션의 현재 웨어하우스로 지정되어야 합니다.
Snowflake 세션은 한 번에 1개의 현재 웨어하우스만 가질 수 있습니다. 세션의 현재 웨어하우스는 USE WAREHOUSE 명령을 통해 언제든지 지정하거나 변경할 수 있습니다.
실행 중인 웨어하우스가 세션의 현재 웨어하우스로 설정되면 세션 내에서 제출된 쿼리 및 DML 문이 웨어하우스에서 처리됩니다. Classic Console 의 History 및 Worksheets 페이지에서 각 쿼리/문을 처리하기 위해 사용된 웨어하우스를 확인할 수 있습니다.
웨어하우스 관리 위임하기¶
기본적으로, ACCOUNTADMIN 역할에는 계정의 모든 웨어하우스에서 변경, 일시 중단, 설명, 기타 작업 수행을 위한 권한이 부여됩니다.
이러한 권한을 계정의 사용자 지정 역할에 위임해야 하는 경우 GRANT <권한> 명령을 사용하여 해당 역할에 MANAGE WAREHOUSES 권한을 부여할 수 있습니다. MANAGE WAREHOUSES 권한을 부여하는 것은 계정의 모든 웨어하우스에 대해 MODIFY, MONITOR 및 OPERATE 권한을 부여하는 것과 같습니다.
다음 예에서는 웨어하우스 관리 권한을 manage_wh_role
이라는 사용자 지정 역할에 위임하는 방법을 보여줍니다. 이 예에서는 manage_wh_role
을 사용하여 다른 역할(create_wh_role
)이 소유한 웨어하우스 test_wh
를 변경합니다.
새 웨어하우스를 만들고 소유할 새 역할을 만들고 그 역할에 CREATE WAREHOUSE 권한을 부여합니다.
CREATE ROLE create_wh_role;
GRANT CREATE WAREHOUSE ON ACCOUNT TO ROLE create_wh_role;
GRANT ROLE create_wh_role TO ROLE SYSADMIN;
계정의 모든 웨어하우스를 관리할 두 번째 역할을 만들고 그 역할에 MANAGE WAREHOUSES 권한을 부여합니다.
CREATE ROLE manage_wh_role;
GRANT MANAGE WAREHOUSES ON ACCOUNT TO ROLE manage_whs_role;
GRANT ROLE manage_whs_role TO ROLE SYSADMIN;
create_wh_role
역할을 사용하여 새 웨어하우스를 만듭니다.
USE ROLE create_wh_role;
CREATE OR REPLACE WAREHOUSE test_wh
WITH WAREHOUSE_SIZE= XSMALL;
현재 역할을 manage_wh_role
로 변경합니다.
USE ROLE manage_whs_role;
manage_wh_role
이 test_wh
를 소유하고 있지 않더라도 해당 역할에는 MANAGE WAREHOUSES 권한이 있으므로 다음을 수행할 수 있습니다.
웨어하우스 일시 중단하고 재개할 수 있습니다.
ALTER WAREHOUSE test_wh SUSPEND; ALTER WAREHOUSE test_wh RESUME;
웨어하우스의 크기를 변경할 수 있습니다.
ALTER WAREHOUSE test_wh SET WAREHOUSE_SIZE = SMALL;
웨어하우스를 설명할 수 있습니다.
DESC WAREHOUSE test_wh;