snow snowpark build

Cria artefatos necessários para o projeto Snowpark. Os artefatos podem ser usados pelo comando deploy. Para cada diretório em artefatos, um arquivo .zip é criado. Todas as dependências que não forem do Anaconda são empacotadas no arquivo dependencies.zip.

Sintaxe

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

Argumentos

Nenhum

Opções

--ignore-anaconda

Não procura pacotes no canal Snowflake Anaconda. Padrão: falso.

--allow-shared-libraries

Permite bibliotecas compartilhadas (.so) ao usar pacotes instalados por meio de PIP. Padrão: falso.

--index-url TEXT

URL básico do Python Package Index a ser usado para pesquisa de pacotes. Isso deve apontar para um repositório compatível com PEP 503 (a API de repositório simples) ou um diretório local disposto no mesmo formato.

--skip-version-check

Ignore a comparação de versões de dependências entre requisitos e Anaconda. Padrão: falso.

-p, --project TEXT

Caminho onde o projeto Snowflake está. O padrão é o diretório de trabalho atual.

--env TEXT

Cadeia de caracteres no formato chave=valor. Substitui variáveis da seção env usadas para modelos. Padrão: [].

--connection, -c, --environment TEXT

Nome da conexão, conforme definido no arquivo config.toml. Padrão: padrão.

--host TEXT

Endereço do host da conexão. Substitui o valor especificado para a conexão.

--port INTEGER

Porta para a conexão. Substitui o valor especificado para a conexão.

--account, --accountname TEXT

Nome atribuído à sua conta Snowflake. Substitui o valor especificado para a conexão.

--user, --username TEXT

Nome de usuário para se conectar ao Snowflake. Substitui o valor especificado para a conexão.

--password TEXT

Senha do Snowflake. Substitui o valor especificado para a conexão.

--authenticator TEXT

Autenticador Snowflake. Substitui o valor especificado para a conexão.

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

Caminho do arquivo de chave privada Snowflake. Substitui o valor especificado para a conexão.

--token-file-path TEXT

Caminho para o arquivo com um token OAuth que deve ser usado ao conectar-se ao Snowflake.

--database, --dbname TEXT

Banco de dados a ser usado. Substitui o valor especificado para a conexão.

--schema, --schemaname TEXT

Esquema de banco de dados a ser usado. Substitui o valor especificado para a conexão.

--role, --rolename TEXT

Função a ser usada. Substitui o valor especificado para a conexão.

--warehouse TEXT

Warehouse a ser usado. Substitui o valor especificado para a conexão.

--temporary-connection, -x

Usa conexão definida com parâmetros de linha de comando, em vez de uma definida na configuração. Padrão: falso.

--mfa-passcode TEXT

Token a ser usado para autenticação multifator (MFA).

--enable-diag

Execução do teste de diagnóstico do conector Python. Padrão: falso.

--diag-log-path TEXT

Caminho do relatório de diagnóstico. Padrão: <temporary_directory>.

--diag-allowlist-path TEXT

Caminho do relatório de diagnóstico para a lista de permissões opcional.

--format [TABLE|JSON]

Especifica o formato de saída. Padrão: TABLE.

--verbose, -v

Exibe entradas de log para níveis de log info e superior. Padrão: falso.

--debug

Exibe entradas de log para níveis de log de depuração e superiores; os logs de depuração contêm informações adicionais. Padrão: falso.

--silent

Desliga a saída intermediária para o console. Padrão: falso.

--help

Exibe o texto de ajuda para este comando.

Notas de uso

  • O app.zip contém tudo o que é necessário para executar as funções e procedimentos no projeto, além dos pacotes disponíveis através do Canal Snowflake Anaconda, que você pode chamar diretamente do Snowflake.-

  • O comando analisa requirements.txt para pacotes disponíveis no canal Conda. Este processo cria o arquivo requirements.snowflake.txt com as dependências do projeto disponíveis no canal Conda, que posteriormente é usado pelo comando snow snowpark deploy.

  • Por padrão, o comando procura o arquivo snowflake.yml no diretório atual. Alternativamente, você pode especificar um caminho diferente com a opção --project.

  • Este comando baixa automaticamente as dependências e as adiciona a um arquivo chamado app.zip, juntamente com o código-fonte do projeto (especificado pelo campo src no arquivo snowflake.yml.

  • Para usar um índice de pacotes Python diferente de PyPi, especifique um usando a opção --index-url.

  • Você pode usar a opção --skip-version-check para pular requisitos de versão entre dependências do projeto e o Canal Anaconda.

  • Você pode usar a opção --ignore-anaconda para incluir todas as dependências necessárias no arquivo app.zip, mesmo aqueles disponíveis no canal Snowflake Anaconda. As dependências não são baixadas do Anaconda, mas de PyPi.

  • A opção --allow-shared-libraries verifica se algum dos pacotes baixados de PyPi estão usando dependências nativas, o que pode causar problemas, pois o Snowpark atualmente suporta apenas dependências nativas para pacotes retirados do canal Conda

Exemplos

  • Crie um projeto localizado no diretório atual:

    snow snowpark build
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • Crie um projeto localizado em um diretório diferente:

    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.
    
  • Crie um projeto em um diretório sem definição do projeto 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.
    ╰──────────────────────────────────────────────────────────────────╯
    
  • Crie um projeto com bibliotecas nativas:

    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
    
  • Crie um projeto e inclua todas as dependências:

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