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égioUSE CATALOGno catálogo, ou você tem o privilégioMANAGEno catálogo. - Para
USE SCHEMA: Ou todos os usuários account têm o privilégioUSE SCHEMAno esquema, ou você tem o privilégioMANAGEno esquema. - Para
EXECUTE: Ou todos os usuários account têm o privilégioEXECUTEna função, ou você tem o privilégioMANAGEna 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.
-
Ao criar ou editar um aplicativo, navegue até Configurar o passo.
-
Na seção Recurso do aplicativo , clique em + Adicionar recurso .
-
Selecione a função UC como o tipo de recurso.
-
Escolha uma UDF dentre as funções disponíveis em seu workspace. A função já deve estar registrada no Unity Catalog.
-
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.
- Pode executar: Concede ao aplicativo permissão para executar a UDF com os parâmetros fornecidos. Corresponde ao privilégio
-
(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:
env:
- name: UC_FUNCTION_NAME
valueFrom: function # Use your custom resource key if different
Utilizando a função em sua aplicação:
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.