Visão geral da orquestração no Databricks
O Azure Databricks fornece uma experiência interna para orquestrar cargas de trabalho de processamento de dados, para que você possa coordenar e executar várias tarefas como parte de um fluxo de trabalho maior. Você pode simplificar, otimizar e agendar a execução de tarefas frequentes e repetíveis, o que facilita o gerenciamento de fluxos de trabalho complexos.
Este artigo apresenta conceitos e opções relacionados ao gerenciamento de cargas de trabalho de produção usando trabalhos Databricks.
O que são empregos?
No Databricks, uma tarefa é usada para agendar e orquestrar tarefas no Databricks num fluxo de trabalho . Os fluxos de trabalho comuns de processamento de dados incluem fluxos de trabalho ETL, blocos de anotações em execução e fluxos de trabalho de aprendizado de máquina (ML), bem como a integração com sistemas externos como dbt e Azure Data Factory (ADF).
Os trabalhos consistem em uma ou mais tarefas e oferecem suporte à lógica de fluxo de controle personalizada, como ramificações (instruções if / else) ou looping (para cada instrução) usando uma interface do usuário de criação visual. As tarefas podem carregar ou transformar dados em um fluxo de trabalho ETL ou criar, treinar e implantar modelos de ML de forma controlada e repetível como parte de seus pipelines de aprendizado de máquina.
Exemplo: Trabalho diário de processamento e validação de dados
O exemplo abaixo mostra um trabalho no Azure Databricks.
Este trabalho de exemplo tem as seguintes características:
- A primeira tarefa ingere dados de receita.
- A segunda tarefa é uma verificação do tipo se / senão para valores nulos.
- Caso contrário, uma tarefa de transformação é executada.
- Caso contrário, ele executa uma tarefa de notebook com validação da qualidade dos dados.
- Está programado para funcionar todos os dias às 11h29.
Para obter uma introdução rápida de como criar a sua própria tarefa, consulte Criar o seu primeiro fluxo de trabalho com uma tarefa do Azure Databricks.
Casos comuns de utilização
De princípios básicos de engenharia de dados a aprendizado de máquina avançado e integração perfeita de ferramentas, esses casos de uso comuns mostram a amplitude dos recursos que impulsionam análises modernas, automação de fluxo de trabalho e escalabilidade de infraestrutura.
|
Engenharia de dados | pipelines ETL (Extract, Transform, Load): automatizar a extração de dados de várias fontes, transformar os dados num formato adequado e carregá-los num data warehouse ou data lake. Consulte executar sua primeira carga de trabalho ETL no Azure Databricks
Migração de dados: Mova dados de um sistema para outro.
Processamento contínuo de dados: Use Jobs para tarefas de processamento contínuo de dados, como streaming de dados de fontes como Kafka e gravá-los em tabelas Delta. | | Ciência de dados e aprendizado de máquina | Treinamento de modelo: Agende e execute tarefas de treinamento de modelos de aprendizado de máquina para garantir que os modelos sejam treinados com os dados mais recentes.
Inferência em Lote: Automatize o processo de executar trabalhos de inferência em lote para gerar previsões a partir de modelos treinados.
Ajuste de hiperparâmetros: Orquestar trabalhos de ajuste de hiperparâmetros para otimizar modelos de aprendizagem automática. | | Analytics e relatórios | Consultas agendadas: Executar consultas SQL num trabalho segundo um cronograma para gerar relatórios ou atualizar painéis.
Agregação de dados: Execute tarefas regulares de agregação de dados para preparar dados para análise. | | Automatização de tarefas | Fluxos de trabalho multitarefas: crie fluxos de trabalho complexos que envolvem várias tarefas, como executar uma série de blocos de anotações, arquivos JAR, consultas SQL ou pipelines Delta Live Tables.
Lógica condicional: Use a lógica condicional para controlar o fluxo de tarefas com base no sucesso ou fracasso de tarefas anteriores. | | Integração com outras ferramentas | Airflow e Azure Data Factory (ADF): Acione trabalhos do Azure Databricks usando ferramentas de orquestração externas, como Apache Airflow e Azure Data Factory, permitindo fluxos de trabalho mais complexos e integrados.
Notificações ede monitorização: configure notificações e monitorize os resultados da execução de tarefas utilizando a interface do utilizador, CLI ou API do Azure Databricks, ou usando integrações com ferramentas como o Slack e webhooks. | | Infrastructure as code (IaC) | Databricks Asset Bundles: Gerencie trabalhos e outros recursos como código para facilitar o controlo de versão, a revisão de código e as práticas de CI/CD (Integração Contínua/Desdobramento Contínuo). |
Conceitos de orquestração
Há três conceitos principais ao usar orquestração no Azure Databricks: trabalhos, tarefas e gatilhos.
Job - Um trabalho é o principal recurso para coordenar, agendar e executar as suas operações. Os trabalhos podem variar em complexidade, desde uma única tarefa executando um bloco de anotações do Azure Databricks até centenas de tarefas com lógica condicional e dependências. As tarefas em um trabalho são representadas visualmente por um Gráfico Acíclico Direcionado (DAG). Você pode especificar propriedades para o trabalho, incluindo:
- Trigger - define quando executar a tarefa.
- Parâmetros - parâmetros de tempo de execução que são automaticamente enviados para tarefas dentro do trabalho.
- Notificações - e-mails ou webhooks a serem enviados quando um trabalho falha ou demora demasiado.
- Git - configurações de controle do código-fonte para as tarefas de trabalho.
Tarefa - Uma tarefa é uma unidade específica de trabalho dentro de uma tarefa. Cada tarefa pode executar uma variedade de operações, incluindo:
- Uma tarefa de notebook executa um caderno Databricks. Você especifica o caminho para o bloco de anotações e todos os parâmetros necessários.
- Uma tarefa de pipeline executa um pipeline. Você pode especificar um pipeline Delta Live Tables existente, como por exemplo uma vista materializada ou uma tabela de streaming.
- Uma tarefa de script Python executa um arquivo Python. Você fornece o caminho para o arquivo e quaisquer parâmetros necessários.
Existem muitos tipos de tarefas. Para obter uma lista completa, consulte Tipos de tarefas. As tarefas podem ter dependências em outras tarefas e executar condicionalmente outras tarefas, permitindo que você crie fluxos de trabalho complexos com lógica condicional e dependências.
Trigger - Um gatilho é um mecanismo que inicia a execução de um trabalho com base em condições ou eventos específicos. Um gatilho pode ser baseado em tempo, como executar um trabalho em um horário agendado (por exemplo, todos os dias às 2 da manhã), ou baseado em eventos, como executar um trabalho quando novos dados chegam ao armazenamento em nuvem.
Monitorização e observabilidade
Os trabalhos fornecem suporte integrado para monitoramento e observabilidade. Os tópicos a seguir fornecem uma visão geral desse suporte. Para obter mais detalhes sobre monitoramento de trabalhos e orquestração, consulte Monitoramento e observabilidade para trabalhos do Databricks.
Monitorização e observabilidade das tarefas na interface do utilizador - Na interface do utilizador do Azure Databricks, pode-se visualizar tarefas, incluindo detalhes como o proprietário da tarefa e o resultado da última execução, bem como filtrar por propriedades das tarefas. Você pode exibir um histórico de execuções de trabalho e obter informações detalhadas sobre cada tarefa no trabalho.
Status e métricas de execução de tarefa - O Databricks relata o sucesso da execução da tarefa e registra os logs e as métricas para cada tarefa dentro de uma execução de trabalho para diagnosticar problemas e entender o desempenho.
Notificações e alertas - Você pode configurar notificações para eventos de trabalho por e-mail, Slack, webhooks personalizados e uma série de outras opções.
Consultas personalizadas por meio de tabelas do sistema - O Azure Databricks fornece tabelas do sistema que registram execuções de tarefas e tarefas em toda a conta. Você pode usar essas tabelas para consultar e analisar o desempenho e os custos do trabalho. Você pode criar painéis para visualizar métricas e tendências de trabalho, para ajudar a monitorar a integridade e o desempenho de seus fluxos de trabalho.
Limitações
As seguintes limitações existem:
- Um espaço de trabalho é limitado a 2000 execuções de tarefas simultâneas. É devolvida uma resposta
429 Too Many Requests
quando pede uma execução que não pode ser iniciada imediatamente. - O número de trabalhos que um espaço de trabalho pode criar em uma hora é limitado a 10000 (inclui "envio de execuções"). Este limite também afeta as tarefas criadas pela API REST e os fluxos de trabalho do bloco de notas.
- Um espaço de trabalho pode conter até 12000 empregos salvos.
- Um trabalho pode conter até 100 tarefas.
Posso gerenciar fluxos de trabalho programaticamente?
O Databricks tem ferramentas e APIs que permitem agendar e orquestrar seus fluxos de trabalho programaticamente, incluindo o seguinte:
- CLI do Databricks
- Pacotes de ativos Databricks
- Extensão Databricks para Visual Studio Code
- Databricks SDKs
- Trabalhos REST API
Para obter exemplos de como usar ferramentas e APIs para criar e gerenciar trabalhos, consulte Automatizar a criação e o gerenciamento de trabalhos. Para obter documentação sobre todas as ferramentas de desenvolvedor disponíveis, consulte Ferramentas de desenvolvimento local.
As ferramentas externas usam as ferramentas e APIs do Databricks para agendar fluxos de trabalho de forma programática. Você pode agendar seus trabalhos usando ferramentas como o Azure Data Factory ou o Apache AirFlow.
Orquestração de fluxo de trabalho com Apache AirFlow
Você pode usar o Apache Airflow para gerenciar e agendar seus fluxos de trabalho de dados. Com o Airflow, você define seu fluxo de trabalho em um arquivo Python e o Airflow gerencia o agendamento e a execução do fluxo de trabalho. Consulte Orquestrar trabalhos do Azure Databricks com o Apache Airflow.
Orquestração do fluxo de trabalho com o Azure Data Factory
O Azure Data Factory (ADF) é um serviço de integração de dados na nuvem que permite compor serviços de armazenamento, movimentação e processamento de dados em pipelines de dados automatizados. Você pode usar o ADF para orquestrar um trabalho do Azure Databricks como parte de um pipeline do ADF.
O ADF também tem suporte interno para executar notebooks Databricks, scripts Python ou código empacotado em JARs em um pipeline do ADF.
Para saber como executar um bloco de anotações Databricks em um pipeline do ADF, consulte Executar um bloco de anotações Databricks com a atividade do bloco de anotações Databricks no Azure Data Factory, seguido por Transformar dados executando um bloco de anotações Databricks.
Para saber como executar um script Python em um pipeline do ADF, consulte Transformar dados executando uma atividade Python no Azure Databricks.
Para saber como executar código empacotado em um JAR em um pipeline do ADF, consulte Transformar dados executando uma atividade JAR no Azure Databricks.