snow snowpark build

Snowpark 프로젝트에 필요한 아티팩트를 빌드합니다. 아티팩트는 deploy 명령으로 사용할 수 있습니다. 아티팩트의 각 디렉터리에 대해 .zip 파일이 생성됩니다. anaconda가 아닌 모든 종속성은 dependencies.zip 파일에 패키징됩니다.

구문

snow snowpark build
  --ignore-anaconda
  --allow-shared-libraries
  --index-url <index_url>
  --skip-version-check
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
Copy

인자

없음

선택 사항

--ignore-anaconda

Snowflake Anaconda 채널에서 패키지를 조회하지 마십시오. 기본값: False.

--allow-shared-libraries

PIP를 통해 설치된 패키지를 사용할 때 공유(.so) 라이브러리를 허용합니다. 기본값: False.

--index-url TEXT

패키지 조회에 사용할 Python 패키지 인덱스의 기본 URL입니다. 이는 PEP 503을 준수하는 리포지토리(단순 리포지토리 API) 또는 동일한 형식으로 배치된 로컬 디렉터리를 가리켜야 합니다.

--skip-version-check

요구 사항과 Anaconda 간의 종속성 버전 비교는 건너뜁니다. 기본값: False.

-p, --project TEXT

Snowflake 프로젝트가 있는 경로입니다. 기본값은 현재 작업 디렉터리입니다.

--env TEXT

키=값 형식의 문자열. 템플릿에 사용되는 env 섹션의 변수를 재정의합니다. 기본값: [].

--connection, -c, --environment TEXT

config.toml 파일에 정의된 연결의 이름입니다. 기본값: default.

--host TEXT

연결을 위한 호스트 주소입니다. 연결에 지정된 값을 재정의합니다.

--port INTEGER

연결의 포트입니다. 연결에 지정된 값을 재정의합니다.

--account, --accountname TEXT

Snowflake 계정에 할당된 이름입니다. 연결에 지정된 값을 재정의합니다.

--user, --username TEXT

Snowflake에 연결할 사용자 이름입니다. 연결에 지정된 값을 재정의합니다.

--password TEXT

Snowflake 비밀번호입니다. 연결에 지정된 값을 재정의합니다.

--authenticator TEXT

Snowflake 인증자입니다. 연결에 지정된 값을 재정의합니다.

--private-key-file, --private-key-path TEXT

Snowflake 개인 키 파일 경로입니다. 연결에 지정된 값을 재정의합니다.

--token-file-path TEXT

Snowflake에 연결할 때 사용해야 하는 OAuth 토큰이 포함된 파일 경로입니다.

--database, --dbname TEXT

사용할 데이터베이스입니다. 연결에 지정된 값을 재정의합니다.

--schema, --schemaname TEXT

사용할 데이터베이스 스키마입니다. 연결에 지정된 값을 재정의합니다.

--role, --rolename TEXT

사용할 역할입니다. 연결에 지정된 값을 재정의합니다.

--warehouse TEXT

사용할 웨어하우스입니다. 연결에 지정된 값을 재정의합니다.

--temporary-connection, -x

config에서 정의된 연결 대신, 명령줄 매개 변수로 정의된 연결을 사용합니다. 기본값: False.

--mfa-passcode TEXT

다단계 인증(MFA)에 사용할 토큰입니다.

--enable-diag

Python 커넥터 진단 테스트를 실행합니다. 기본값: False.

--diag-log-path TEXT

진단 보고서 경로입니다. 기본값: <temporary_directory>.

--diag-allowlist-path TEXT

선택적 허용 목록에 대한 진단 보고서 경로입니다.

--format [TABLE|JSON]

출력 형식을 지정합니다. 기본값: TABLE.

--verbose, -v

로그 수준 info 이상의 로그 항목을 표시합니다. 기본값: False.

--debug

로그 수준 디버그 이상에 대한 로그 항목을 표시하며, 디버그 로그에는 추가 정보가 포함됩니다. 기본값: False.

--silent

콘솔로의 중간 출력을 끕니다. 기본값: False.

--help

이 명령에 대한 도움말 텍스트를 표시합니다.

사용법 노트

  • app.zip 에는 프로젝트의 함수와 절차를 실행하는 데 필요한 모든 것이 포함되어 있으며, Snowflake Anaconda 채널 을 통해 제공되는 패키지를 제외하고는 Snowflake에서 직접 호출할 수 있습니다.

  • 이 명령은 Conda 채널에서 사용 가능한 패키지에 대해 requirements.txt 를 구문 분석합니다. 이 프로세스는 나중에 snow snowpark deploy 명령에서 사용되는 Conda 채널에서 사용할 수 있는 프로젝트 종속성을 포함하는 requirements.snowflake.txt 파일을 생성합니다.

  • 기본적으로 이 명령은 현재 디렉터리에서 snowflake.yml 파일을 찾습니다. 또는 --project 옵션을 사용하여 다른 경로를 지정할 수 있습니다.

  • 이 명령은 종속성을 자동으로 다운로드하여 프로젝트 원본 코드(snowflake.yml 파일의 src 필드에 지정됨)와 함께 app.zip 이라는 파일에 추가합니다.

  • PyPi 이외의 다른 Python 패키지 인덱스를 사용하려면 --index-url 옵션을 사용하여 지정합니다.

  • --skip-version-check 옵션을 사용하면 프로젝트 종속성과 Anaconda 채널 간의 버전 요구 사항을 건너뛸 수 있습니다.

  • --ignore-anaconda 옵션을 사용하여 필요한 모든 종속성을 app.zip 파일에 포함할 수 있으며, 여기에는 Snowflake Anaconda 채널에서 사용할 수 있는 종속성도 포함됩니다. 종속성은 Anaconda에서 다운로드하는 것이 아니라 PyPi에서 다운로드합니다.

  • --allow-shared-libraries 옵션은 PyPi에서 다운로드한 패키지 중 네이티브 종속성을 사용하는 패키지가 있는지 확인하며, 현재 Snowpark는 Conda 채널에서 가져온 패키지에 대한 네이티브 종속성만 지원하므로 문제가 발생할 수 있습니다.

  • 현재 디렉터리에 있는 프로젝트를 빌드합니다.

    snow snowpark build
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • 다른 디렉터리에 있는 프로젝트를 빌드합니다.

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build -p project_dir
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • snowflake.yml 프로젝트 정의가 없는 디렉터리에서 프로젝트를 빌드합니다.

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build
    
    Copy
    ╭─ Error ──────────────────────────────────────────────────────────╮
      Cannot find project definition (snowflake.yml). Please provide
      a path to the project or run this command in a valid
      project directory.
    ╰──────────────────────────────────────────────────────────────────╯
    
  • 네이티브 라이브러리로 프로젝트를 빌드합니다.

    snow snowpark build --ignore-anaconda --allow-shared-libraries
    
    Copy
    2024-04-16 16:05:52 ERROR Following dependencies utilise shared libraries, not supported by Conda:
    2024-04-16 16:05:52 ERROR contourpy
    pillow
    numpy
    kiwisolver
    fonttools
    matplotlib
    2024-04-16 16:05:52 ERROR You may still try to create your package with --allow-shared-libraries, but the might not work.
    2024-04-16 16:05:52 ERROR You may also request adding the package to Snowflake Conda channel
    2024-04-16 16:05:52 ERROR at https://support.anaconda.com/
    Build done. Artifact path: /Path/to/current/dir/project_dir/app.zip
    
  • 프로젝트를 빌드하고 모든 종속성을 포함합니다.

    snow snowpark build --ignore-anaconda
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.