Snowflake Python APIs: Python으로 Snowflake 오브젝트 관리하기

Snowflake Python APIs 은 Python을 Snowflake 워크로드와 원활하게 연결하는 통합 라이브러리입니다. 이는 최고 수준의 Python API를 사용하여 데이터 엔지니어링, Snowpark, Snowpark ML 및 애플리케이션 워크로드 전반에서 Snowflake 리소스와 상호 작용할 수 있는 포괄적인 APIs를 제공하기 위한 것입니다.

Snowflake Python APIs 을 사용하여 생성, 삭제, 변경 등의 방법으로 Snowflake 리소스를 관리할 수 있습니다. Python을 사용하면 Snowflake SQL 명령 으로 수행했어야 할지 모르는 작업을 수행할 수 있습니다.

다음 다이어그램은 높은 수준의 Snowflake Python APIs 패키징 구조를 보여줍니다.

높은 수준의 Snowflake APIs 패키징 구조를 보여주는 다이어그램

일반 개념 및 디자인 패턴 등 API에 대해 자세히 알아보려면 Snowflake Python APIs: 일반 개념 섹션을 참조하십시오.

지원되는 Snowflake 리소스 오브젝트

Snowflake Python APIs 을 사용하면 현재 다음과 같은 Snowflake 리소스 오브젝트를 관리할 수 있습니다(괄호 안의 최소 API 버전 필요).

Snowflake의 Python 에코시스템

Snowflake Python APIs, Python용 Snowpark API, Python용 Snowflake Connector 는 각각 고유한 목적을 가진 인터페이스이며 Snowflake에서 사용됩니다. 이 섹션에서는 각각의 차이점을 설명하고, 각 기능의 일반적인 사용 사례를 설명합니다.

Snowflake Python APIs

이 일급 함수 Python APIs 세트를 사용하여 Snowflake 워크로드 전반에서 핵심 리소스(예: 테이블, 웨어하우스, 작업)를 정의하고 관리할 수 있습니다. Python Connector와 달리 이러한 APIs는 SQL을 사용할 필요 없이 네이티브 Python을 사용하여 Snowflake와 상호 작용합니다.

Snowflake Python APIs 패키지는 모든 Snowflake Python 라이브러리(connector, core, snowpark, ml 포함)를 통합하여 pip install snowflake 명령으로 간단히 시작할 수 있도록 합니다.

선언적 프로그래밍 접근법에 따라 이 API는 리소스 변경을 관리하고 Snowflake에서 코드 및 인프라 배포를 자동화하는 DevOps 도구로 사용할 수 있습니다.

Snowpark

이러한 라이브러리와 코드 실행 환경 세트를 사용하면 Snowflake에서 데이터와 함께 Python 및 기타 프로그래밍 언어를 실행할 수 있습니다.

  • 라이브러리: Snowpark API 를 사용하면 코드에서 Snowpark DataFrames를 사용하여 Snowflake 내에서만 데이터를 쿼리하고 변환할 수 있습니다. Snowpark 애플리케이션은 애플리케이션 코드가 실행되는 시스템으로 데이터를 이동하지 않고도 Snowflake 엔진에서 직접 대규모 데이터를 처리합니다.

    Snowpark API는 Python, Java, Scala로 사용할 수 있습니다.

  • 코드 실행 환경: Snowpark 런타임 환경은 컨테이너 이미지와 Python, Java, Scala 코드를 지원합니다.

    • 데이터 파이프라인, 앱 등을 구축하기 위해 Python 사용자 지정 함수(UDFs) 또는 저장 프로시저를 통해 사용자 지정 Python 코드를 실행할 수 있습니다. Python 런타임 환경은 Anaconda의 패키지 리포지토리와 패키지 관리자에 액세스할 수 있습니다.

      런타임 환경은 Scala와 Java로도 사용할 수 있습니다.

    • 컨테이너화된 애플리케이션은 Snowpark Container Services 를 사용하여 Snowflake 내에서 직접 실행할 수 있습니다.

Python용 Snowflake 커넥터

이 SQL 드라이버를 사용하여 Snowflake에 연결하고 SQL 문을 실행한 다음 Python 클라이언트를 사용하여 결과를 얻습니다.

Python Connector를 사용하면 SQL 문 문자열을 사용하여 Snowflake와의 모든 상호 작용을 작성할 수 있습니다.

Snowflake Python APIs 시작하기

Snowflake Python APIs 을 시작하려면 다음 항목의 지침을 참조하십시오.

  1. 라이브러리를 설치 합니다.

  2. Snowflake에 연결 합니다.

Snowflake Python APIs 시작하기 자습서는 자습서: Snowflake Python APIs 시작하기 섹션을 참조하십시오.

지원되는 Python 버전

지원되는 Python 버전은 다음과 같습니다.

  • 3.9

  • 3.10

  • 3.11

  • 3.12

개발자 가이드

가이드

설명

Snowflake Python APIs 라이브러리 설치

Snowflake Python APIs 패키지를 설치합니다.

Snowflake Python APIs 을 사용하여 Snowflake에 연결

Python 코드에서 Snowflake에 연결합니다.

Python을 사용하여 Snowflake 계정 및 관리 계정 관리

API를 사용하여 계정 및 관리 계정을 생성하고 관리합니다.

Python을 사용하여 Snowflake 경고 관리하기

API를 사용하여 경고를 생성하고 관리합니다.

Python을 사용하여 데이터 로딩 및 언로딩 리소스 관리

API를 사용하여 외부 볼륨, 파이프, 스테이지를 포함한 데이터 로딩 및 언로딩 리소스를 생성하고 관리합니다.

Python을 사용하여 Snowflake 데이터베이스, 스키마, 테이블 및 뷰 관리하기

데이터베이스, 스키마, 테이블을 생성하고 관리하려면 API를 사용합니다.

Python을 사용하여 Snowflake 동적 테이블 관리하기

API를 사용하여 동적 테이블을 생성하고 관리합니다.

Python을 사용하여 Snowflake 함수 및 저장 프로시저 관리하기

API를 사용하여 사용자 정의 함수(UDFs)와 저장 프로시저를 생성하고 관리할 수 있습니다.

Python을 사용하여 Snowflake 통합 관리

API를 사용하여 카탈로그 통합 및 알림 통합을 생성하고 관리합니다.

Python을 사용하여 Snowflake 네트워크 정책 관리하기

API를 사용하여 네트워크 정책을 생성하고 관리합니다.

Python에서 Snowflake Notebooks 관리하기

API를 사용하여 Snowflake Notebooks 을 생성하고 관리합니다.

Python을 사용하여 Snowpark 컨테이너 서비스(서비스 함수 포함) 관리하기

API를 사용하여 컴퓨팅 풀, 이미지 리포지토리, 서비스, 서비스 함수 등 Snowpark Container Services의 구성 요소를 관리합니다.

Python을 사용하여 Snowflake 스트림 관리하기

API를 사용하여 스트림을 생성하고 관리합니다.

Python을 사용하여 Snowflake 작업 및 작업 그래프 관리하기

API를 사용하여 작업과 작업 그래프를 생성, 실행, 관리합니다.

Python을 사용하여 Snowflake 사용자, 역할 및 권한 관리

API를 사용하여 사용자, 역할 및 보조금을 생성하고 관리합니다.

Python을 사용하여 Snowflake 가상 웨어하우스 관리하기

API를 사용하여 가상 웨어하우스를 만들고 관리합니다.

참조

Snowflake Python APIs 참조

Snowflake 액세스 비용

사용 크레딧과 네트워크 활동 모두에 대한 비용을 줄이기 위해 Snowflake Python APIs 은 Snowflake와 동기화하도록 설계된 메서드를 호출할 때만 Snowflake와 통신하도록 설계되었습니다.

API의 오브젝트는 로컬 참조(또는 핸들)이거나 Snowflake에 저장된 상태의 스냅샷입니다. 일반적으로 Snowflake에서 검색된 정보를 처리할 때는 로컬 메모리 내 참조 오브젝트를 통해 처리합니다.

이러한 참조는 메서드를 호출해야 Snowflake와 동기화됩니다. 메서드를 호출하면 일반적으로 사용 크레딧과 네트워크 활동에서 모두 비용이 발생합니다. 반대로, 속성에 액세스할 때와 같이 인메모리 참조를 사용할 때는 작업이 로컬에서 수행되므로 그러한 비용이 발생하지 않습니다.