Especificação do pacote de código¶
Esta especificação define um pacote de uma ou mais funções ou procedimentos de código que podem ser chamados por um modelo.
Uma especificação de pacote de código pode conter um máximo combinado de 5 funções e procedimentos.
Para obter exemplos de diferentes tipos de pacotes de código, consulte Exemplos de especificações.
Os identificadores na especificação do pacote de código têm os seguintes requisitos gerais:
Nomes: devem ser identificadores válidos do Snowflake, que começam com uma letra e contêm apenas caracteres alfanuméricos e sublinhados.
Identificadores entre aspas: identificadores entre aspas duplas são permitidos para nomes com caracteres especiais.
Diferenciação entre maiúsculas e minúsculas: identificadores sem aspas não diferenciam maiúsculas de minúsculas. Identificadores entre aspas preservam o uso de maiúsculas e minúsculas.
api_versionA versão da API do Collaboration utilizada. Deve ser
2.0.0.spec_typeIdentificador do tipo de especificação. Deve ser
code_spec.name: identifierUm nome exclusivo para esta especificação de pacote de código neste registro. Deve ser um identificador válido do Snowflake com no máximo 75 caracteres. Ele é usado como o segmento do sobrenome ao chamar a função em um modelo:
cleanroom.code_spec_name$function_nameversion: version_idIdentificador de versão personalizado. Deve ser alfanumérico com sublinhados e, no máximo, 20 caracteres.
description: description_text(opcional)Uma descrição da especificação do pacote de código (máximo de 1.000 caracteres).
artifacts(opcional)Uma lista de arquivos ou pacotes preparados que podem ser importados por suas funções ou procedimentos e opcionalmente expostos por meio de funções do manipulador. Máximo de 5 por especificação.
alias: identifierUm alias para referenciar este artefato nas importações. Ao referenciar este alias nesta especificação, use o nome do alias simples em vez de
cleanroom.spec_name$alias; ou seja, use o nome da função simples para fazer referência a outra função nesta especificação.stage_path: stage_pathCaminho completo da área de preparação para o arquivo de artefato. Por exemplo,
@DB.SCHEMA.STAGE/path/file.whl.
A área de preparação deve ser interna. Áreas de preparação externas não são compatíveis.
A área de preparação deve ter o DIRECTORY habilitado: a área de preparação que contém artefatos deve ter
DIRECTORY = TRUEdefinido.Formato do caminho da área de preparação: deve seguir o formato
@[DB.]SCHEMA.STAGE/path/to/file.ext.Sem travessia de caminho: os caminhos de área de preparação não podem conter
..ou\.Este artefato deve existir: o arquivo deve existir no caminho da área de preparação especificado quando o pacote de código for registrado.
A área de preparação deve ter a criptografia do lado do servidor SNOWFLAKE_SSE habilitada. Ao criar ou alterar a área de preparação, defina
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE').Se você enviar, excluir ou atualizar um arquivo de código preparado, deverá chamar
ALTER STAGE stage name REFRESHpara garantir que a colaboração tenha as informações mais recentes da área de preparação. As atualizações de código são permitidas apenas antes de você registrar a especificação do código, pois é quando a versão é atribuída e a soma de verificação do hash é calculada.
description: description_text(opcional)Uma descrição do artefato (máximo de 500 caracteres).
content_hash: sha256_hash(opcional)Hash SHA-256 em minúsculas para verificação de integridade (64 caracteres hexadecimais).
functions(obrigatório se nenhum procedimento for definido)Uma lista de definições de UDF ou UDTF.
name: identifierO nome da função a ser exposta ao modelo de chamada. Deve ser um identificador válido do Snowflake.
typeO tipo de função.
UDFouUDTF.languageA linguagem da função. Atualmente, somente
PYTHONé compatível.runtime_version: python_version(opcional)Versão de tempo de execução do Python a ser usada. Versões compatíveis:
3.10a3.14.handler: handlerO nome da função do manipulador no código da função a ser chamada quando
nameé chamado.arguments(opcional)Argumentos de função como uma lista de pares nome-tipo. Devem ser tipos SQL válidos do Snowflake.
returns: sql_typeO tipo de retorno. Para UDFs, use um tipo SQL, como STRING ou FLOAT. Para UDTFs, use
TABLE(column_definitions):packages(opcional)Uma lista de pacotes usados por este código. Pode ser qualquer um destes pacotes Anaconda Python ou destes pacotes da API Snowpark. Por exemplo:
snowflake-snowpark-python,numpy.imports(opcional)Uma lista de artefatos a serem importados. Eles devem ser aliases da lista de artefatos nesta especificação.
code_body(opcional)Código Python em linha. Mutualmente exclusivo com importações preparadas. O tamanho máximo é 12 MB.
description: description_text(opcional)Uma descrição da função (máximo de 500 caracteres).
procedures(obrigatório se nenhuma função for definida)Uma lista de definições de procedimentos armazenados. Os campos são semelhantes a
functions, exceto que não há um campotype.