Python 저장 프로시저로 파일 읽기

Python 핸들러는 Snowpark snowflake.snowpark.files 모듈의 SnowflakeFile 클래스를 사용하여 다음 Snowflake 스테이지 중 하나에서 파일을 동적으로 읽을 수 있습니다.

  • 명명된 내부 스테이지.

  • 지정된 테이블의 내부 스테이지.

  • 현재 사용자의 내부 스테이지.

Snowflake는 저장 프로시저와 사용자 정의 함수 모두에 대해 SnowflakeFile 을 사용하여 파일 읽기를 지원합니다. 처리기 코드에서 파일 읽기에 대한 자세한 내용과 더 많은 예제는 Python UDF 처리기로 파일 읽기 를 참조하십시오.

이 예는 SnowflakeFile 클래스를 사용하여 파일을 읽는 소유자의 권한 저장 프로시저 를 만들고 호출하는 방법을 보여줍니다.

mode 인자에 대해 rb 를 전달하여 입력 모드를 바이너리로 지정하여 인라인 처리기로 저장 프로시저를 만듭니다.

CREATE OR REPLACE PROCEDURE calc_phash(file_path string)
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = '3.9'
PACKAGES = ('snowflake-snowpark-python','imagehash','pillow')
HANDLER = 'run'
AS
$$
from PIL import Image
import imagehash
from snowflake.snowpark.files import SnowflakeFile

def run(ignored_session, file_path):
    with SnowflakeFile.open(file_path, 'rb') as f:
        return imagehash.average_hash(Image.open(f))
$$;
Copy

저장 프로시저를 호출합니다.

CALL calc_phash(build_scoped_file_url(@my_files, 'my_image.jpg'));
Copy