Python 워크시트에 Snowpark 코드 작성하기

Snowsight 에서 Snowpark Python을 사용하여 데이터를 처리하려면 Python 워크시트에 Snowpark 코드를 작성하십시오. Python 워크시트에 코드를 작성하면 종속 라이브러리를 설치할 필요 없이 Snowflake에서 개발과 테스트를 수행할 수 있습니다.

Python 워크시트로 개발하려면 다음을 수행하십시오.

  1. Snowflake에서 역할과 패키지를 준비합니다.

  2. 개발을 위한 워크시트를 설정합니다.

  3. Python 워크시트에 Snowpark 코드를 작성합니다.

  4. Python 워크시트를 실행합니다.

예를 들어 Snowflake의 스테이지 또는 데이터베이스 오브젝트에서 데이터를 추출하고 데이터를 변환하고 변환된 데이터를 Snowflake에 저장하는 코드를 Python 워크시트에 작성할 수 있습니다. 그런 다음 Snowflake를 종료하지 않고도 해당 코드를 저장 프로시저로 변환 하고 데이터 파이프라인을 만들 수 있습니다.

이 항목의 내용:

Python 워크시트 정보

Python 워크시트를 사용하면 Snowsight 에서 Snowpark Python을 사용하여 데이터 조작 및 변환을 수행할 수 있습니다. Anaconda에서 사용 가능한 패키지 를 사용하거나 스테이지에서 자체적인 Python 파일을 가져와 스크립트에서 사용할 수 있습니다.

Python 워크시트를 실행한 후 스크립트에서 반환된 결과와 출력을 검토합니다. 결과는 코드에 따라 문자열, 베리언트 또는 테이블로 표시됩니다. Python 워크시트 실행하기 섹션을 참조하십시오.

참고

Python 워크시트는 로컬 개발 환경이 아닌 Snowflake 내에서 실행되므로, session.add_import 를 사용하여 Python 코드가 의존하는 파일을 추가하거나 session.add_packages 또는 session.add_requirements 를 사용하여 Python 코드에서 사용해야 하는 패키지를 추가할 수 없습니다. 대신, 해당 파일을 스테이지에 추가하고 코드에서 참조합니다. 스테이지의 Python 파일을 워크시트에 추가하기 섹션을 참조하십시오.

Python 워크시트에는 다음과 같은 제한 사항이 있습니다.

  • WARN보다 낮은 로그 수준은 기본적으로 Python 워크시트의 Output 에 나타나지 않습니다. 대신 logging 모듈과 같은 로깅 라이브러리를 사용하여 로깅되는 메시지 수준을 설정하십시오. 로그에 기록하는 모든 메시지가 출력에 나타납니다.

  • 중단점을 지원하지 않거나 워크시트에서 Python 코드의 일부만 실행합니다.

  • 이미지나 웹 페이지를 지원하지 않습니다. Python 코드로 생성된 이미지 또는 웹 페이지는 Python 워크시트에 표시할 수 없습니다.

  • Snowpark Python은 Python 3.8을 사용합니다.

이러한 옵션에 대한 지원이 필요한 경우 로컬 개발 환경을 대신 사용하는 것이 좋습니다. Snowpark Python을 위한 개발 환경 설정하기 섹션을 참조하십시오.

Python 워크시트의 전제 조건

Python 워크시트를 사용하려면 다음을 수행해야 합니다.

  • Snowsight 에서 Anaconda 서비스 약관을 검토하고 수락합니다. 시작하기 섹션을 참조하십시오.

  • (선택 사항) Python 워크시트에서 사용하려는 Anaconda에 포함 되지 않은 Python 파일과 패키지를 명명된 스테이지에 추가합니다. 스테이지의 Python 파일을 워크시트에 추가하기 섹션을 참조하십시오.

  • Python 워크시트에 사용할 웨어하우스를 선택합니다. 개발에 X-Small 웨어하우스를 사용하는 것이 좋습니다. 매우 큰 Snowpark 워크로드를 실행 중인 경우 Snowpark 최적화 웨어하우스 를 사용하십시오. 웨어하우스 크기에 대한 자세한 내용은 웨어하우스 크기 섹션을 참조하십시오.

스테이지의 Python 파일을 워크시트에 추가하기

Snowflake에는 Python 워크시트에 있는 Snowflake conda 채널 의 Anaconda 패키지가 포함됩니다. Python 워크시트에서 Anaconda에 포함된 것 이외의 다른 Python 파일 또는 패키지를 사용하려면 파일을 Snowflake의 명명된 스테이지에 업로드한 다음 Python 워크시트의 패키지 목록에 추가해야 합니다.

워크시트에서 기본적으로 포함되지 않은 Python 패키지를 사용하려면 다음을 수행하십시오.

  1. Snowsight 에 로그인합니다.

  2. Worksheets 를 엽니다.

  3. + » Python Worksheet 를 선택합니다.

  4. 데이터베이스와 스키마를 선택합니다.

  5. Packages » Stage Packages 를 선택합니다.

  6. 스테이지에서 패키지의 경로를 입력합니다.

    • 워크시트에 대해 선택한 데이터베이스와 스키마에 패키지가 있는 스테이지가 포함된 경우 정규화되지 않은 이름을 사용하여 스테이지를 참조할 수 있습니다. 예: @YourStage/path/to/package.py.

    • 다른 데이터베이스와 스키마의 스테이지를 참조하려면 스테이지의 이름을 정규화하십시오. 예: @Database.Schema.Stage/path/to/package.py.

  7. 설치된 패키지의 목록에 패키지를 추가하려면 Import 를 선택하십시오. 그런 다음 import 문을 사용하여 Python 워크시트에서 패키지를 사용할 수 있습니다.

참고

워크시트에 추가하는 패키지는 해당 워크시트에만 사용할 수 있습니다. 다른 Python 워크시트에서 동일한 패키지를 사용하려면 다음 단계에 따라 해당 워크시트에 패키지를 추가하십시오.

자세한 내용은 코드에 종속성을 사용할 수 있도록 만들기 섹션을 참조하십시오.

Python 워크시트로 개발 시작하기

워크시트를 열고 개발 환경을 구성하려면 다음을 수행하십시오.

  1. Snowsight 에 로그인합니다.

  2. Worksheets 를 엽니다.

  3. + » Python Worksheet 를 선택합니다.

  4. 데이터베이스와 스키마를 선택합니다.

  5. 워크시트 실행에 사용할 웨어하우스를 선택합니다. 사용자를 위한 기본 웨어하우스가 있으면 이 웨어하우스가 미리 선택됩니다.

    Python 워크시트에서 Python 패키지를 로드하고 Python 코드를 실행하려면 실행 중인 웨어하우스가 필요합니다.

  6. (선택 사항) Python 라이브러리를 추가하려면 Packages 를 선택하십시오.

    • numpy, pandas, requests, urllib3과 같이, Anaconda에 포함된 패키지는 이미 설치되어 있습니다.

    • scikit-learn과 같이 워크시트에서 설치하고 사용하려는 다른 패키지를 검색합니다. 검색 결과에서 패키지를 선택하고 선택 사항으로서 기본적으로 선택된 패키지 버전을 수정합니다. 사용자가 설치한 패키지는 패키지 목록의 맨 위에 나타납니다.

    • Stage Packages 를 선택하고 스테이지와 패키지의 파일 경로를 지정한 다음 Import 를 선택하여 자체 패키지와 Python 파일을 추가합니다.

    워크시트에 Python 라이브러리를 추가하는 경우 import 문을 사용하여 라이브러리를 워크시트로 가져오도록 코드를 업데이트합니다.

  7. 샘플 Python 코드를 실행하여 구성의 유효성을 검사합니다.

오류 메시지 또는 코드의 반환 값은 Results 섹션에 나타납니다. 로그 메시지를 보려면 Output 을 선택하십시오. Python 워크시트 실행하기 섹션을 참조하십시오.

Python 워크시트에 Snowpark 코드 작성하기

Python 워크시트로 개발을 시작 하는 단계를 완료한 후 샘플 코드를 자신의 코드로 바꿀 수 있습니다.

처리기 함수 내에서 Snowpark Python 코드를 작성합니다.

import snowflake.snowpark as snowpark

def main(session: snowpark.Session):
    # your code goes here
Copy

기본 처리기 함수는 main 이지만 워크시트의 Settings 에서 이를 변경할 수 있습니다.

상용구 코드에 제공된 session 오브젝트를 사용하여 Snowpark API 라이브러리로 Snowflake의 데이터에 액세스합니다. 예를 들어, 테이블에 대한 DataFrame 을 만들거나 SQL 문을 실행할 수 있습니다. Python용 Snowpark 개발자 가이드 섹션을 참조하십시오.

입력함에 따라 Python 메서드, 정의된 변수, 데이터베이스 오브젝트 등이 자동 완성으로 채워지는 것을 볼 수 있습니다. 스테이지에서 가져온 일부 서드 파티 패키지 또는 파일의 경우에는 자동 완성되지 않습니다. Python 워크시트에는 메서드 매개 변수에 대한 구문 강조와 지침도 포함되어 있습니다. 워크시트의 Settings 에서 린팅과 줄 바꿈을 활성화할 수 있습니다.

다른 데이터 타입의 결과 반환하기

Python 코드를 작성할 때 코드의 return 문에서 반환되는 데이터 타입을 고려하고 워크시트가 결과를 반환하는 방식을 조정합니다. 기본적으로, 자리 표시자 코드가 DataFrame을 반환하므로 Python 워크시트의 반환 유형은 Table()입니다.

Python 코드가 반환하는 내용에 따라 워크시트 설정을 변경하여 출력을 다르게 표시할 수 있습니다.

  • 처리기 함수가 DataFrame 을 반환하는 경우 Table() 의 기본 반환 유형을 사용합니다.

  • 처리기 함수가 collect 메서드를 사용할 때처럼 Row 오브젝트의 목록을 반환하는 경우 반환 유형을 Variant 로 변경합니다.

  • 처리기 함수가 return "Hello Python" 과 같은 문자열을 반환하거나 문자열로 캐스팅하려는 값을 반환하는 경우 반환 유형을 String 으로 변경합니다.

  • 처리기 함수가 count 메서드를 사용할 때처럼 정수를 반환하는 경우 Variant 또는 String 반환 유형을 사용합니다.

몇 가지 DataFrame 메서드의 반환 유형에 대한 자세한 내용은 DataFrame 평가 동작 수행하기 섹션을 참조하십시오.

다른 유형의 결과를 반환하도록 워크시트 설정을 업데이트하려면 다음을 수행하십시오.

  1. Snowsight 에 로그인합니다.

  2. Worksheets 를 엽니다.

  3. 결과를 테이블로 표시하려는 Python 워크시트를 엽니다.

  4. 워크시트 실행에 사용할 웨어하우스를 선택합니다. 사용자를 위한 기본 웨어하우스가 있으면 이 웨어하우스가 미리 선택됩니다. 웨어하우스가 실행 중인지 확인하십시오.

  5. Settings 를 선택하고 Return Type 에 대해 처리기 함수에서 반환되는 유형을 선택합니다.

  6. Python 워크시트를 실행합니다.

  7. Results 패널에서 결과를 검토합니다.

Python 워크시트 실행하기

Python 워크시트를 작성 한 후 Run 을 선택하여 Python 워크시트를 실행합니다. 워크시트를 실행하면 Python 워크시트의 모든 코드가 실행됩니다. 코드의 부분적 실행이나 증분 실행은 지원되지 않습니다.

코드에서 생성된 출력 검토하기

Python 워크시트의 Output 패널에서 Python 코드의 표준 출력(stdout) 또는 표준 오류(stderr) 메시지를 검토할 수 있습니다.

Output 패널에서 다음 함수 유형의 출력을 볼 수 있습니다.

  • print() 와 같이 콘솔에 쓰는 함수.

  • Snowpark Python에서 DataFrame 클래스의 show 메서드와 같이 DataFrame을 인쇄하는 함수.

참고

출력은 코드가 실행될 때 스트림에 나타나는 것이 아니라 모든 Python 프로세스의 실행이 완료된 후에 나타납니다.

로그 출력은 임시 스테이지에 작성되며 다음 조건이 충족되는 경우에만 캡처됩니다.

  • 워크시트에 대한 데이터베이스와 스키마를 선택합니다.

  • 선택한 데이터베이스가 공유에서 생성되지 않았습니다.

  • 선택한 데이터베이스와 스키마에 대한 USAGE 권한이 있는 역할을 사용하여 워크시트를 실행합니다.

Python 워크시트에 대한 쿼리 기록 검토하기

Python 워크시트가 Snowsight 에서 실행되면 익명 저장 프로시저가 코드를 실행하고 코드에서 Snowpark 명령을 실행하는 쿼리를 생성합니다.

Snowsight 의 Query History 페이지를 사용하여 실행된 쿼리를 검토할 수 있습니다. 쿼리 내역 섹션을 참조하십시오.

예를 들어 워크시트를 실행한 후 다음을 수행하여 실행된 쿼리를 검토할 수 있습니다.

  1. 워크시트의 Results 를 검토합니다.

  2. 워크시트의 Query Details 에서 More options » Copy Query ID 를 선택합니다.

  3. Worksheets 를 선택하여 워크시트 목록으로 돌아갑니다.

  4. Activity » Query History 를 선택합니다.

  5. Query History 페이지에서 Python 워크시트의 쿼리만 표시합니다.

    1. Filters 를 선택하고 Query ID 옵션을 활성화합니다.

    2. Python 워크시트의 쿼리 ID를 입력합니다.

    3. Apply Filters 를 선택합니다.

  6. 워크시트에 대해 실행된 쿼리를 검토합니다.