Snowflake Python API: Python으로 Snowflake 오브젝트 관리하기¶
Snowflake Python API는 Python을 Snowflake 워크로드와 원활하게 연결하는 통합 라이브러리입니다. 이는 SQL 명령을 사용하지 않고도 데이터 엔지니어링, Snowpark 및 애플리케이션 워크로드 전반에서 핵심 Snowflake 리소스와 상호 작용하기 위한 포괄적인 API를 제공하기 위한 것입니다.
Snowflake Python API를 사용하면 Snowflake 리소스를 생성, 삭제 또는 수정하는 방식으로 관리할 수 있습니다. Python을 사용하면 Snowflake SQL 명령 으로 수행했어야 할지 모르는 작업을 수행할 수 있습니다.
Snowflake Python API를 사용하면 현재 다음과 같은 Snowflake 오브젝트를 관리할 수 있습니다.
Tasks, with which you can execute SQL statements, procedure calls, and logic in Snowflake Scripting
자세한 내용은 Python을 사용하여 Snowflake 작업 및 작업 그래프 관리하기 섹션을 참조하십시오.
컴퓨팅 풀, 이미지 리포지토리, 서비스를 포함한 Snowpark Container Services 의 리소스입니다.
자세한 내용은 Python으로 Snowpark Container Services 관리하기 섹션을 참조하십시오.
Snowflake Python API 사용에 대한 입문용 자습서는 빠른 시작: Snowflake Python API 시작하기 를 참조하십시오.
예¶
다음 예제의 코드는 my_task
라는 작업을 실행합니다. 이 코드는 구성 파일에 정의된 연결 매개 변수를 사용하여 Snowflake에 대한 연결을 생성합니다. 해당 코드에서는 결과 Session
오브젝트를 사용하여 API의 유형과 메서드를 사용하기 위해 Root
오브젝트를 생성합니다. 이 코드는 API를 사용하여 my_task
를 나타내는 Task
오브젝트를 생성합니다. 이 코드는 task_res
라는 TaskResource
오브젝트를 사용하여 작업을 실행합니다.
from snowflake.core import Root
from snowflake.core.task import Task
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
tasks = root.databases["mydb"].schemas["myschema"].tasks
task_res = tasks['my_task']
task_res.execute()
API로 수행할 수 있는 작업 관련 조치 사항에 대한 자세한 내용은 Python을 사용하여 Snowflake 작업 및 작업 그래프 관리하기 섹션을 참조하십시오.
제한 사항¶
Snowflake Python API는 현재 Snowflake Anaconda 채널에서 사용할 수 없습니다.
지원되는 버전¶
지원되는 Python 버전은 다음과 같습니다.
3.8
3.9
3.10
3.11
개발자 가이드¶
가이드 |
설명 |
---|---|
Snowflake Python API 패키지를 설치합니다. |
|
Python 코드에서 Snowflake에 연결합니다. |
|
API를 사용하여 작업과 작업 그래프를 생성, 실행, 관리합니다. |
|
데이터베이스, 스키마, 테이블을 생성하고 관리하려면 API를 사용합니다. |
|
API를 사용하여 가상 웨어하우스를 만들고 관리합니다. |
|
API를 사용하여 컴퓨팅 풀, 이미지 리포지토리, 서비스 등 Snowpark Container Services의 구성 요소를 관리합니다. |
참조¶
Snowflake 액세스 비용¶
사용 크레딧과 네트워크 활동 모두의 비용을 줄이기 위해 Snowflake Python API는 Snowflake와 동기화하도록 설계된 메서드를 호출할 때만 Snowflake와 통신하도록 설계되었습니다.
API의 오브젝트는 로컬 참조(또는 핸들)이거나 Snowflake에 저장된 상태의 스냅샷입니다. 일반적으로 Snowflake에서 검색된 정보를 처리할 때는 로컬 메모리 내 참조 오브젝트를 통해 처리합니다.
이러한 참조는 메서드를 호출해야 Snowflake와 동기화됩니다. 메서드를 호출하면 일반적으로 사용 크레딧과 네트워크 활동에서 모두 비용이 발생합니다. 반대로, 속성에 액세스할 때와 같이 인메모리 참조를 사용할 때는 작업이 로컬에서 수행되므로 그러한 비용이 발생하지 않습니다.