Partilhar via


Adicionar um recurso de função definida pelo utilizador (UDF) a uma aplicação Databricks

Adicione funções definidas pelo utilizador (UDFs) registadas no Unity Catalog como recursos Databricks Apps para permitir que a sua aplicação execute funções SQL e Python registadas. Os UDFs fornecem lógica de negócio reutilizável, transformações de dados e operações personalizadas que podem ser partilhadas em toda a sua organização com governação centralizada.

Requisitos de privilégio

Para executar um UDF, o principal de serviço da aplicação 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. Quando adiciona o recurso UDF, o Azure Databricks concede automaticamente estes privilégios ao principal de serviço da aplicação.

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

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

Consulte privilégios do Catálogo Unity e objetos securitizáveis.

Adicionar um recurso de função definida pelo utilizador (UDF)

Antes de adicionares um UDF como recurso, revê os pré-requisitos de recursos da aplicação.

  1. Quando criar ou editar uma aplicação, navegue até ao passo Configurar .
  2. Na secção de recursos da App , clique em + Adicionar recurso.
  3. Selecione a função UC como tipo de recurso.
  4. Escolha um UDF entre as funções disponíveis no seu espaço de trabalho. A função deve já estar registada no Unity Catalog.
  5. Selecione o nível de permissão para seu aplicativo:
    • Pode executar: Concede à aplicação permissão para executar o UDF com os parâmetros fornecidos. Corresponde ao privilégio EXECUTE.
  6. (Opcional) Especifica uma chave de recurso personalizada, que é como referencias o UDF na configuração da tua aplicação. A chave padrão é function.

Variáveis de ambiente

Quando implementas uma aplicação com um recurso UDF, o Azure Databricks expõe o nome completo de três níveis através de variáveis de ambiente que podes consultar usando o valueFrom campo.

Exemplo de configuração:

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

Usando a função na 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 obter mais informações, consulte Usar variáveis de ambiente para acessar recursos.

Remover um recurso de função definida pelo utilizador (UDF)

Quando remove um recurso UDF de uma aplicação, o principal de serviço da aplicação perde o acesso à função. O próprio UDF mantém-se inalterado e continua disponível para outros utilizadores e aplicações que tenham permissões apropriadas.

Melhores práticas

Considere o seguinte ao trabalhar com recursos da UDF:

  • Certifique-se de que os UDFs estão bem documentados, com descrições claras dos parâmetros e tipos de retorno.
  • Trate os erros UDF de forma elegante no código da sua aplicação, incluindo validação de parâmetros e gestão de exceções.
  • Teste o comportamento do UDF no contexto da aplicação antes da implementação para verificar os resultados esperados.
  • Considere as dependências do UDF em tabelas ou fontes de dados subjacentes ao planear permissões de aplicações.