SQL 및 Python으로 저장 프로시저 작성하기

처리기가 Python으로 코딩된 저장 프로시저를 작성할 수 있습니다. 처리기 내 Snowpark 라이브러리 에서 API를 사용하여 Snowflake 테이블에 대한 쿼리, 업데이트 및 기타 작업을 수행할 수 있습니다.

저장 프로시저를 사용하면 Snowflake 웨어하우스를 컴퓨팅 프레임워크로 사용하여 Snowflake 내에서 데이터 파이프라인을 구축하고 실행할 수 있습니다. Python용 Snowpark API 를 사용하여 데이터 파이프라인을 만들어 저장 프로시저를 작성합니다. 이러한 저장 프로시저의 실행을 예약하려면 작업 을 사용합니다.

머신 러닝 모델과 Snowpark Python에 대한 자세한 내용은 Snowpark Python으로 머신 러닝 모델 학습시키기 섹션을 참조하십시오.

Python 워크시트를 사용 하거나 로컬 개발 환경을 사용하여 Python용 저장 프로시저를 작성할 수 있습니다.

처리기 코드가 실행될 때 로그 및 추적 데이터를 캡처할 수 있습니다. 자세한 내용은 로깅, 추적 및 메트릭 섹션을 참조하십시오.

참고

익명 프로시저를 만들기도 하고 호출도 하려면 CALL(익명 프로시저 사용) 를 사용하십시오. 익명 프로시저를 만들고 호출하는 데는 CREATE PROCEDURE 스키마 권한이 있는 역할이 필요하지 않습니다.

저장 프로시저를 로컬에서 작성하기 위한 전제 조건

로컬 개발 환경에서 Python 저장 프로시저를 작성하려면 다음 전제 조건을 충족해야 합니다.

  • 버전 0.4.0 또는 최신 버전의 Snowpark 라이브러리를 사용해야 합니다.

  • Snowpark Python이 필요한 서드 파티 종속성을 로드할 수 있도록 Anaconda 패키지를 활성화합니다. Anaconda의 서드 파티 패키지 사용하기 섹션을 참조하십시오.

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

    • 3.9

    • 3.10

    • 3.11

Snowpark 라이브러리를 사용하기 위한 개발 환경을 설정해야 합니다. Snowpark를 위한 개발 환경 설정하기 를 참조하십시오.

Anaconda의 서드 파티 패키지 사용하기

Python 저장 프로시저를 만들 때 설치할 Anaconda 패키지를 지정할 수 있습니다. Anaconda의 서드 파티 패키지 목록을 보려면 Anaconda Snowflake 채널 을 참조하십시오. 이러한 서드 파티 패키지는 Anaconda에서 만들어 제공합니다. Anaconda의 서비스 약관에 대한 추가 포함 소프트웨어 약관에 따라 현지 테스트 및 개발을 위한 Snowflake conda 채널을 무료로 사용할 수 있습니다.

제한 사항은 Python 저장 프로시저 제한 사항 섹션을 참조하십시오.

시작하기

Snowflake 내부에서 Anaconda가 제공하는 패키지를 처음 사용하기 전에 먼저 외부 제공 서비스 약관 에 동의해야 합니다.

참고

약관에 동의하려면 ORGADMIN 역할을 사용해야 합니다. Snowflake 계정에 대해 외부 서비스 약관 을 한 번만 수락하면 됩니다. ORGADMIN 역할에 대한 액세스 권한이 없는 경우 계정에서 ORGADMIN 역할 활성화하기 섹션을 참조하십시오.

  1. Snowsight 에 로그인합니다.

  2. Admin » Billing & Terms 를 선택합니다.

  3. Anaconda 섹션에서 Enable 을 선택합니다.

  4. Anaconda Packages 대화 상자에서 링크를 클릭하여 외부 제공 서비스 약관 페이지 를 검토하십시오.

  5. 약관에 동의하면 Acknowledge & Continue 를 선택합니다.

외부 서비스 약관 에 동의하려고 할 때 오류가 발생하면 이름, 성 또는 이메일 주소와 같은 사용자 프로필 정보가 누락되었기 때문일 수 있습니다. 관리자 권한이 있는 경우 Snowsight 를 사용하여 프로필을 업데이트하려면 사용자 프로필에 사용자 세부 정보 추가하기 섹션을 참조하십시오. 그렇지 않으면 관리자에게 문의하여 계정을 업데이트하십시오.

참고

위에서 설명한 대로 Snowflake 외부 제공 약관 을 수락하지 않는 경우에도 저장 프로시저를 계속 사용할 수 있지만, 다음 제한이 적용됩니다.

  • Anaconda의 서드 파티 패키지는 사용할 수 없습니다.

  • Snowpark Python을 저장 프로시저의 패키지로 계속 지정할 수 있지만, 특정 버전을 지정할 수는 없습니다.

  • DataFrame 오브젝트와 상호 작용할 때는 to_pandas 메서드를 사용할 수 없습니다.

패키지 표시 및 사용하기

Information Schema에서 PACKAGES 뷰를 쿼리하여 사용 가능한 모든 패키지와 해당 버전 정보를 표시할 수 있습니다.

SELECT * FROM information_schema.packages WHERE LANGUAGE = 'python';
Copy

자세한 내용은 Snowflake Python UDF 설명서의 서드 파티 패키지 사용하기 섹션을 참조하십시오.

저장 프로시저 호출하기

저장 프로시저를 만든 후에는 다음과 같은 방법으로 호출할 수 있습니다.