Pular para o conteúdo principal

Adicionar um recurso de função definida pelo usuário (UDF) a um aplicativo Databricks

Adicione funções definidas pelo usuário (UDFs) registradas no Unity Catalog como recurso Databricks Apps para permitir que seu aplicativo execute funções SQL e Python registradas. As UDFs (Funções Definidas pelo Usuário) fornecem lógica de negócios reutilizável, transformações de dados e operações personalizadas que podem ser compartilhadas em toda a sua organização com governança centralizada.

Requisitos de privilégio

Para executar uma UDF, a entidade de serviço do aplicativo deve ter o privilégio USE CATALOG no catálogo pai, o privilégio USE SCHEMA no esquema pai e o privilégio EXECUTE na função. Ao adicionar o recurso UDF, o Databricks concede automaticamente esses privilégios à entidade de serviço do aplicativo.

Para que essa concessão automática seja bem-sucedida, uma das seguintes condições deve ser verdadeira para cada privilégio:

  • Para USE CATALOG: Ou todos os usuários account têm o privilégio USE CATALOG no catálogo, ou você tem o privilégio MANAGE no catálogo.
  • Para USE SCHEMA: Ou todos os usuários account têm o privilégio USE SCHEMA no esquema, ou você tem o privilégio MANAGE no esquema.
  • Para EXECUTE: Ou todos os usuários account têm o privilégio EXECUTE na função, ou você tem o privilégio MANAGE na função.

Consulte PrivilégiosUnity Catalog e objetos protegíveis.

Adicionar um recurso de função definida pelo usuário (UDF)

Antes de adicionar uma UDF como recurso, revise os pré-requisitos do recurso do aplicativo.

  1. Ao criar ou editar um aplicativo, navegue até Configurar o passo.

  2. Na seção Recurso do aplicativo , clique em + Adicionar recurso .

  3. Selecione a função UC como o tipo de recurso.

  4. Escolha uma UDF dentre as funções disponíveis em seu workspace. A função já deve estar registrada no Unity Catalog.

  5. Selecione o nível de permissão para seu aplicativo:

    • Pode executar: Concede ao aplicativo permissão para executar a UDF com os parâmetros fornecidos. Corresponde ao privilégio EXECUTE .
  6. (Opcional) Especifique uma key de recurso personalizada, que é como você referencia a UDF na configuração do seu aplicativo. A key default é function.

variável de ambiente

Quando você implanta um aplicativo com um recurso UDF , Databricks expõe o nome completo de três níveis por meio de variável de ambiente que você pode referenciar usando o campo valueFrom .

Configuração de exemplo:

YAML
env:
- name: UC_FUNCTION_NAME
valueFrom: function # Use your custom resource key if different

Utilizando a função em sua aplicação:

Python
import os
from databricks.sdk import WorkspaceClient

# Access the function name
function_name = os.getenv("UC_FUNCTION_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Execute the function via SQL
result = w.statement_execution.execute_statement(
warehouse_id="your_warehouse_id",
statement=f"SELECT {function_name}('parameter_value')"
)

# Process the result
print(f"Function result: {result}")

Para mais informações, veja Usar variável de ambiente para acessar recurso.

Remover um recurso de função definida pelo usuário (UDF)

Ao remover um recurso UDF de um aplicativo, a entidade de serviço do aplicativo perde o acesso à função. A UDF em si permanece inalterada e continua disponível para outros usuários e aplicativos que possuam as permissões apropriadas.

Melhores práticas

Considere o seguinte ao trabalhar com recursos UDF :

  • Certifique-se de que as UDFs estejam bem documentadas, com descrições de parâmetros e tipos de retorno claros.
  • Lide com erros de UDF de forma adequada no código do seu aplicativo, incluindo validação de parâmetros e tratamento de exceções.
  • Teste o comportamento da UDF no contexto do aplicativo antes da implantação para verificar os resultados esperados.
  • Ao planejar as permissões do aplicativo, leve em consideração as dependências UDF em relação às tabelas subjacentes ou à fonte de dados.