Python을 사용하여 Snowflake 가상 웨어하우스 관리하기¶
Python을 사용하여 Snowflake의 컴퓨팅 리소스 클러스터인 Snowflake 가상 웨어하우스를 관리할 수 있습니다. 웨어하우스의 개요는 가상 웨어하우스 섹션을 참조하십시오.
Snowflake Python API는 다음 두 가지 별개 유형의 웨어하우스를 나타냅니다.
Warehouse
: 이름, 크기, 유형, 자동 재개, 자동 일시 중단 설정 등 웨어하우스의 속성을 노출합니다.WarehouseResource
: 해당Warehouse
오브젝트를 가져오고, 웨어하우스를 일시 중단 및 재개하고, 웨어하우스를 삭제하는 데 사용할 수 있는 메서드를 노출합니다.
전제 조건¶
이 항목의 예제에서는 Snowflake와 연결하고 Snowflake Python API를 사용할 Root
오브젝트를 생성하는 코드를 추가했다고 가정합니다.
예를 들어, 다음 코드는 구성 파일에 정의된 연결 매개 변수를 사용하여 Snowflake에 대한 연결을 생성합니다.
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
해당 코드에서는 결과 Session
오브젝트를 사용하여 API의 유형과 메서드를 사용하기 위해 Root
오브젝트를 생성합니다. 자세한 내용은 Snowflake Python API를 사용하여 Snowflake에 연결하기 섹션을 참조하십시오.
웨어하우스 만들기¶
웨어하우스를 만들려면 먼저 Warehouse
오브젝트를 만든 다음 API Root
오브젝트에서 WarehouseCollection
오브젝트를 만드십시오. WarehouseCollection.create
를 사용하여 Snowflake에 새 웨어하우스를 추가합니다.
다음 예제의 코드는 my_wh
라는 웨어하우스를 나타내는 Warehouse
오브젝트를 생성합니다.
from snowflake.core import Root
from snowflake.core.warehouse import Warehouse
my_wh = Warehouse(
name="my_wh",
warehouse_size="SMALL",
auto_suspend=600,
)
warehouses = root.warehouses
warehouses.create(my_wh)
이 코드는 WarehouseCollection
변수 warehouses
를 생성하고 WarehouseCollection.create
를 사용하여 Snowflake에 새 웨어하우스를 생성합니다.
웨어하우스 세부 정보 가져오기¶
Warehouse
오브젝트를 반환하는 WarehouseResource.fetch
메서드를 호출하여 웨어하우스에 대한 정보를 얻을 수 있습니다.
다음 예제의 코드로 my_wh
라는 웨어하우스에 대한 정보를 가져옵니다.
from snowflake.core import Root
from snowflake.core.warehouse import Warehouse
my_wh = root.warehouses["my_wh"].fetch()
print(my_wh.to_dict())
웨어하우스 생성 또는 업데이트하기¶
웨어하우스를 나타내는 Warehouse
오브젝트의 속성을 설정한 다음 WarehouseResource.create_or_update
메서드로 이 오브젝트를 Snowflake에 전달하여 기존 웨어하우스의 특성을 업데이트할 수 있습니다.
웨어하우스를 생성하려는 경우 새 웨어하우스를 설명하는 Warehouse
오브젝트를 전달할 수도 있습니다.
다음 예제의 코드는 웨어하우스의 이름, 크기 및 자동 일시 중단 설정을 설정한 다음 Snowflake에서 웨어하우스를 업데이트하고 웨어하우스가 아직 없으면 생성합니다.
from snowflake.core import Root
from snowflake.core.warehouse import Warehouse
my_wh = Warehouse(
name="my_wh",
warehouse_size="LARGE",
auto_suspend=1800,
)
my_wh_res = root.warehouses["my_wh"]
my_wh_res.create_or_update(my_wh)
이 경우 이전에 다른 속성으로 생성한 경우 my_wh
웨어하우스의 크기를 LARGE
로 변경하고 자동 일시 중단 설정을 1800
으로 변경합니다.
웨어하우스 나열하기¶
Warehouse
오브젝트의 PagedIter
반복기를 반환하는 WarehouseCollection.iter
메서드를 사용하여 웨어하우스를 나열할 수 있습니다.
다음 예제의 코드로 이름에 my 라는 텍스트가 포함되는 웨어하우스를 나열하고 각 작업의 이름을 인쇄합니다.
from snowflake.core import Root
from snowflake.core.warehouse import Warehouse, WarehouseCollection
warehouses: WarehouseCollection = root.warehouses
wh_iter = warehouses.iter(like="my%") # returns a PagedIter[Warehouse]
for wh_obj in wh_iter:
print(wh_obj.name)
웨어하우스 작업 수행하기¶
WarehouseResource
오브젝트를 사용하여 웨어하우스 일시 중단 및 재개, 웨어하우스에 대한 모든 쿼리 중단 등 일반적인 웨어하우스 작업을 수행할 수 있습니다.
다음 예제의 코드는 my_wh
웨어하우스를 일시 중단 및 재개하고, 웨어하우스에서 실행 중이거나 대기 중인 쿼리를 모두 중단한 다음, 웨어하우스를 삭제합니다.
from snowflake.core import Root
from snowflake.core.warehouse import Warehouse
my_wh_res = root.warehouses["my_wh"]
my_wh_res.suspend()
my_wh_res.resume()
my_wh_res.abort_all_queries()
my_wh_res.delete()