Operadores personalizados no Lakeflow Designer
O Lakeflow Designer permite que você crie operadores personalizados que aparecem diretamente na tela junto com os operadores integrados. Use-os para estender o Lakeflow Designer com sua própria lógica de negócios, cálculos ou integrações. Os operadores personalizados eram anteriormente chamados de operadores definidos pelo usuário (UDOs).
Os operadores personalizados vêm em dois escopos:
- Local : O operador pertence a um arquivo de preparação visual de dados. Descreva a transformação e o Genie Code gera o operador. Consulte Criar um operador personalizado local com o Genie Code.
- Compartilhado : o operador é registrado no workspace, para que você e outros usuários possam adicioná-lo a qualquer arquivo visual de preparação de dados. Sua lógica é uma função Python ou uma função Unity Catalog, descrita em YAML. Escreva você mesmo ou peça ao Genie Code para criá-lo. Consulte Como funcionam os operadores personalizados.
Ao adicionar um operador personalizado que precisa de pacotes Python ou bibliotecas de sistema que o ambiente de notebook não possui, o Designer solicita que você os adicione. Selecione Adicionar dependências e, em seguida, selecione Aplicar no painel lateral Ambiente para instalá-las. Consulte Selecionar o ambiente serverless.
Criar um operador personalizado local com o Genie Code
Quando o Genie Code está disponível no seu workspace, pode criar um operador personalizado local a partir da tela do Lakeflow Designer:
-
No painel Operadores , selecione Criar operador personalizado .
-
Enter a description and, optionally, a name. Select Generate preview .
Por exemplo, insira a seguinte descrição:
Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.
- Revise a configuração gerada e a função Python e selecione Approve and create .
O Designer armazena a definição do operador local no arquivo atual e a adiciona ao painel Operadores . Use o menu de ações do operador para editar ou excluir a definição. Você deve remover todas as instâncias do operador do canvas antes de poder excluir sua definição.
Publicar um operador personalizado local
Para reutilizar um operador personalizado local em outras preparações de dados visuais, publique-o: no painel Operadores , abra o menu de ações do operador e selecione Publicar . A publicação cria um operador personalizado compartilhado, atualiza cada instância no arquivo atual para usá-lo e remove a definição local. Na caixa de diálogo, escolha o local do arquivo do operador e se deseja adicionar o operador ao seu registro de Usuário ou Workspace .
Escolha um tipo de operador compartilhado
Os operadores personalizados compartilhados têm três tipos:
python-run-function: Um arquivo YAML independente com Python embutido armazenado no workspace. Ideal para transformações em nível de DataFrame e integrações externas. As permissões são gerenciadas no nível do arquivo workspace .uc-udf: Envolve uma função escalar Unity Catalog . Ideal para transformações em nível de coluna. O acesso é regido pelas permissões Unity Catalog .uc-udtf: Envolve uma função com valor de tabela Unity Catalog . Ideal para transformações em nível de tabela, como clustering e agregação de ML . O acesso é regido pelas permissões Unity Catalog .
Recurso |
|
|
|
|---|---|---|---|
Exemplo de caso de uso | Transformações DataFrame , integrações API , notificações email | Cálculos em nível de coluna (IMC, taxas de juros) | clustering ML , agregação entre linhas |
Entrada | DataFrames | Valores únicos | Tabela inteira, linha por linha |
Saída | DataFrames | Valor único | Tabela (várias linhas) |
Requer a função Unity Catalog. | Não | Sim | Sim |
Governança de acesso | permissões de arquivo do espaço de trabalho | Permissões Unity Catalog ( | Permissões Unity Catalog ( |
Idiomas suportados | Somente Python | SQL ou Python em um wrapper SQL | SQL ou Python em um wrapper SQL |
Como os operadores customizados funcionam
Um operador personalizado compartilhado consiste em:
- Lógica do operador : o código que execução quando o operador é executado. Esta é uma função
run()Python em linha para operadorespython-run-function, ou uma função Unity Catalog para operadoresuc-udfeuc-udtf. Consulte Referência de YAML do operador personalizado Lakeflow Designer. - Configuração YAML : diz ao Lakeflow Designer como apresentar o operador na interface do usuário, incluindo o nome do operador, descrição, parâmetros de entrada, widgets da interface do usuário e portas. Todos os tipos de operador usam o esquema
custom-operator-v0.1.0. Para um operadorpython-run-function, o YAML é um arquivo de workspace independente que também contém o código em linha. Para uma função do Unity Catalog, o YAML é incorporado ao corpo da função. Consulte Referência de YAML do operador personalizado. - Arquivo de registro : uma entrada em
.custom_operators.yamlque permite que o Lakeflow Designer descubra o operador. Consulte registro e implantar o operador no Lakeflow Designer.
Criar um operador compartilhado
Para criar um operador personalizado compartilhado do começar ao fim:
- Escolha um tipo de operador. Consulte Escolha um tipo de operador compartilhado.
- Escreva e teste a lógica do operador. Veja Gravar lógica para operadores personalizados do Lakeflow Designer.
- Descreva o operador em YAML : seu nome, propriedades de configuração, widgets de UI e portas. Consulte Referência de YAML de operador personalizado.
- Registro o operador : Adicione-o ao
.custom_operators.yaml. Consulte registro e implantar seu operador no Lakeflow Designer. - Conceder permissões para que outros usuários possam descobrir e executar a execução do operador. Consulte Permissões.
- Use o operador. Ele aparece no painel Operadores no Lakeflow Designer, junto com os operadores integrados.
Cada tutorial apresenta estes os passos para um operador completo.
Para criar um operador compartilhado python-run-function sem escrevê-lo você mesmo, descreva-o para o Genie Code no painel lateral. O Genie Code pergunta se deve registro o operador para você ou para todo o workspace, depois escreve o arquivo YAML e o registro. Você ainda precisa conceder permissões para outros usuários.
cadastre-se e implante sua operadora no Lakeflow Designer
Para que seu operador apareça no Lakeflow Designer, registre-o em um arquivo .custom_operators.yaml :
- Nível do espaço de trabalho: Coloque o arquivo na raiz do seu workspace para que o operador fique visível para todos os usuários.
- Nível de usuário: Coloque o arquivo em seu diretório de pastas de usuário (
/Workspace/Users/<user-name>/.custom_operators.yaml) para tornar os operadores visíveis apenas para você.
O Lakeflow Designer ainda lê arquivos de registro chamados .user_defined_operators.yaml, então os registros existentes continuam funcionando.
Registro novos operadores em .custom_operators.yaml. Se a mesma pasta já tiver um arquivo .user_defined_operators.yaml, mova suas entradas para .custom_operators.yaml. Quando ambos os arquivos existem em uma pasta, o Lakeflow Designer lê apenas .custom_operators.yaml.
A seção operators: suporta caminhos de arquivos, referências de funções Unity Catalog e padrões glob. Você pode combinar tipos de entrada:
operators:
# File path (python-run-function operators)
- /Workspace/Users/me/operators/my_operator.yaml
# Glob pattern (registers all matching files)
- /Workspace/Users/me/operators/transforms/*.yaml
# UC function reference (uc-udf and uc-udtf operators)
- catalog: my_catalog
schema: my_schema
functionName: my_function
Atualizar ou remover um operador
Quando você altera o código de um operador, refresh seus operadores personalizados para carregar a alteração. Na tab Operadores do menu, clique em .
- Se o operador mantiver o mesmo
version, a atualização carregará o código atualizado. - Se o operador tiver um novo
version, o operador na tela solicitará que você atualize para ele (ou mantenha a versão atual) após o refresh.
Para remover um operador do Lakeflow Designer, exclua sua entrada de .custom_operators.yaml. Para operadores uc-udf e uc-udtf, você também pode descartar a função subjacente do Unity Catalog com DROP FUNCTION, caso não precise mais dela.
Permissões
Permissão | Propósito |
|---|---|
Acesso de leitura a | Descubra a operadora. |
Acesso de leitura ao arquivo YAML (somente | Carregar a definição do operador. |
EXECUTE na função do Unity Catalog (somente operadores baseados em funções do Unity Catalog). | execução o operador. |
USE SCHEMA no esquema (operadores baseados apenas em funções do Unity Catalog). | Acesse o esquema onde a função foi criada. |
Outras permissões | Dependendo da sua operadora, os usuários podem precisar de outras permissões. Por exemplo, |
Solução de problemas
Problema | soluções |
|---|---|
O operador não aparece no LakeFlow Designer. | Verifique se |
A validação do esquema falhou. | Verifique seu YAML em relação ao esquema oficial em |
Permissão negada. | Para operadores baseados em funções do Unity Catalog, verifique se os usuários têm |
| Verifique se a assinatura da função |
UDTF retorna tipos incorretos. | Os tipos de retorno UDTF devem ser explícitos; não é possível referenciar os tipos de coluna de entrada. |
Outros recursos
Explore o seguinte tutorial:
Exemplo | Tipo | Descrição |
|---|---|---|
| Enviar dados do DataFrame como um anexo de email CSV pelo Gmail. | |
| Calcule os valores futuros do investimento usando a fórmula de juros compostos. | |
| Segmentar dados em clusters usando scikit-learn. | |
| Envie notificações para canais do Slack através da API do Slack. | |
| Operador de referência que exibe todos os widgets de interface do usuário disponíveis. |
Para escrever a lógica do operador, consulte Escrever lógica para operadores personalizados do Lakeflow Designer. Para obter uma referência completa do esquema YAML, consulte Referência de YAML de operador personalizado.