Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo apresenta recomendações e recursos para configurar a computação dos Trabalhos do Lakeflow.
Importante
As limitações da computação sem servidor para trabalhos incluem o seguinte:
- Não há suporte para agendamento contínuo.
- Não há suporte para gatilhos de intervalo padrão ou baseados em tempo no Streaming estruturado.
Para ver mais limitações, confira Limitações da computação sem servidor.
Cada trabalho pode ter uma ou mais tarefas. Você define recursos de computação para cada tarefa. Várias tarefas definidas para o mesmo trabalho podem usar o mesmo recurso de computação.
Qual é a computação recomendada para cada tarefa?
A tabela a seguir indica os tipos de computação recomendados e com suporte para cada tipo de tarefa.
Observação
A computação sem servidor para trabalhos tem limitações e não dá suporte a todas as cargas de trabalho. Confira Limitações de computação sem servidor.
| Tarefa | Computação recomendada | Computação com suporte |
|---|---|---|
| Notebooks | Trabalhos sem servidor | Trabalhos sem servidor, trabalhos clássicos, clássicos para todas as finalidades |
| Script Python | Trabalhos sem servidor | Trabalhos sem servidor, trabalhos clássicos, clássico para todas as finalidades |
| Python wheel | Trabalhos sem servidor | Trabalhos sem servidor, trabalhos clássicos, trabalhos clássicos para todas as finalidades |
| SQL | SQL warehouse sem servidor | SQL warehouse sem servidor, SQL warehouse profissional |
| Pipelines Declarativos do Lakeflow Spark | Pipeline sem servidor | Pipeline sem servidor, pipeline clássico |
| dbt | SQL warehouse sem servidor | SQL warehouse sem servidor, SQL warehouse profissional |
| Comandos de CLI do dbt | Trabalhos sem servidor | Tarefas sem servidor, tarefas clássicas, clássico para todas as finalidades |
| JAR | Trabalhos clássicos | Trabalhos clássicos, clássicos para todas as finalidades |
| Envio do Spark | Trabalhos clássicos | Trabalhos clássicos |
Os preços dos trabalhos do Lakeflow estão vinculados à computação utilizada na execução de tarefas. Para mais detalhes, confira Preços do Databricks.
Como configurar recursos de computação para tarefas?
A computação de trabalhos clássicos é configurada diretamente da interface do usuário do Lakeflow Jobs e essas configurações fazem parte da definição do trabalho. Todos os outros tipos de computação disponíveis armazenam suas configurações com outros ativos de workspace. A tabela a seguir apresenta mais detalhes:
| Tipo de computação | Detalhes |
|---|---|
| Computação de tarefas clássicas | Você configura a computação para trabalhos clássicos usando a mesma interface do usuário e as configurações disponíveis para computação de uso geral. Consulte Referência de configuração de computação. |
| Computação sem servidor para trabalhos | A computação sem servidor para trabalhos é o padrão para todas as tarefas que dão suporte a ela. O Databricks gerencia as configurações de computação para computação sem servidor. Consulte Executar seus Trabalhos do Lakeflow com computação sem servidor para fluxos de trabalho. |
| Armazenamentos SQL | Os SQL warehouses sem servidor e profissional são configurados por administradores de workspace ou usuários com privilégios irrestritos de criação de cluster. Você configura tarefas para execução em SQL warehouses existentes. Confira Conectar-se a um armazém de dados SQL. |
| Computação do Lakeflow Spark Declarative Pipelines | Você define as configurações de computação para o Lakeflow Spark Declarative Pipelines durante a configuração do pipeline. Consulte Configuração clássica de computação para pipelines. O Azure Databricks gerencia recursos de computação para Pipelines Declarativos do Lakeflow Spark sem servidor. Consulte Configurar um pipeline sem servidor. |
| Computação para todas as finalidades | Opcionalmente, você pode configurar tarefas usando a computação clássica para todas as finalidades. O Databricks não recomenda essa configuração para trabalhos de produção. Confira Referência de configuração de computação e A computação de uso geral deve ser utilizada para tarefas?. |
Compartilhar computação entre tarefas
Configure tarefas para usar os mesmos recursos de computação de trabalhos a fim de otimizar o uso de recursos com trabalhos que orquestram várias tarefas. O compartilhamento de computação entre tarefas pode reduzir a latência associada aos tempos de inicialização.
Você pode usar um único recurso de computação de trabalhos para executar todas as tarefas que façam parte do trabalho ou vários recursos de trabalho otimizados para cargas de trabalho específicas. Qualquer computação de trabalhos configurada como parte de um trabalho está disponível para todas as outras tarefas no trabalho.
A tabela a seguir destaca as diferenças entre a computação de trabalho configurada para uma única tarefa e a computação de trabalho compartilhada entre tarefas:
| Tarefa única | Compartilhado entre tarefas | |
|---|---|---|
| Iniciar | Quando a execução da tarefa começa. | Quando a primeira execução de tarefa configurada para usar o recurso de computação começa. |
| Encerrar | Após a execução da tarefa. | Após a execução da última tarefa configurada para usar o recurso de computação. |
| Computação ociosa | Não aplicável. | A computação permanece ativada e ociosa enquanto as tarefas que não usam o recurso de computação são executadas. |
Um cluster de trabalho compartilhado tem como escopo uma única execução de trabalho e não pode ser usado por outros trabalhos ou execuções do mesmo trabalho.
As bibliotecas não podem ser declaradas em uma configuração de cluster de trabalho compartilhado. Você precisa adicionar bibliotecas dependentes usando as configurações da tarefa.
Estado do driver compartilhado entre tarefas
Quando várias tarefas compartilham um recurso de computação de trabalhos, as tarefas são executadas na mesma JVM do driver. O estado da classe e os singletons persistem entre as tarefas durante a execução do trabalho. Para a maioria das cargas de trabalho, isso é transparente, mas esteja ciente das seguintes implicações:
- Singletons do Scala e objetos companheiros são compartilhados em tarefas. O estado mutável em um objeto complementar Scala persiste entre as tarefas executadas no mesmo cluster compartilhado. Se as tarefas paralelas forem lidas ou gravadas na mesma variável de objeto complementar, o valor de uma tarefa poderá substituir o de outra. Para obter um exemplo funcional, consulte o artigo da Base de Conhecimento Workflows de várias tarefas usando valores incorretos de parâmetro.
- As bibliotecas carregadas por uma tarefa permanecem disponíveis para tarefas subsequentes durante a execução do trabalho.
Se o código exigir isolamento no nível da tarefa, use uma das seguintes abordagens:
- Configure cada tarefa para usar um recurso de computação de trabalhos separados.
- Adicione dependências de tarefa explícitas para que as tarefas sejam executadas sequencialmente em vez de paralelamente.
- Refatore o código para evitar depender de singleton ou estado mutável compartilhado. Por exemplo, passe parâmetros explicitamente para cada função em vez de lê-los de um objeto complementar.
Revisar, configurar e alternar tarefas de computação
A seção Computação no painel Detalhes do trabalho lista todas as computações configuradas para tarefas no trabalho atual.
As tarefas configuradas para usar um recurso de computação são realçadas no gráfico de tarefas quando você passa o mouse sobre a especificação de computação.
Use o botão Trocar para alterar a computação de todas as tarefas associadas a um recurso de computação.
Os recursos de computação de trabalhos clássicos têm uma opção Configurar. Outros recursos de computação oferecem opções para exibir e modificar detalhes de configuração de computação.
Mais informações
Para obter detalhes adicionais sobre como configurar trabalhos clássicos do Azure Databricks, consulte as práticas recomendadas para configurar trabalhos clássicos do Lakeflow.