Visão geral da orquestração no Databricks

Databricks fornece uma experiência integrada para orquestrar cargas de trabalho de processamento de dados, para que o senhor possa coordenar e executar várias tarefas como parte de um fluxo de trabalho maior. O senhor pode agilizar, otimizar e programar a execução de tarefas frequentes e repetíveis, o que facilita a gestão de fluxos de trabalho complexos.

Este artigo apresenta conceitos e opções relacionados ao gerenciamento de cargas de trabalho de produção usando o Databricks Job.

O que são empregos?

Em Databricks, um Job é usado para programar e orquestrar tarefas em Databricks em um fluxo de trabalho. O fluxo de trabalho comum de processamento de dados inclui ETL fluxo de trabalho, execução de Notebook e fluxo de trabalho de aprendizado de máquina (ML), bem como a integração com sistemas externos como dbt.

Os trabalhos consistem em uma ou mais tarefas e suportam a lógica de fluxo de controle personalizada, como ramificação (instruções if / else) ou looping (para cada instrução), usando uma UI de criação visual. A tarefa pode carregar ou transformar dados em um fluxo de trabalho ETL ou criar, treinar e implantar modelos ML de forma controlada e repetível como parte de seu pipeline de aprendizado de máquina.

Exemplo: Processamento diário de dados e trabalho de validação

O exemplo abaixo mostra um trabalho em Databricks.

Um exemplo mostrando um trabalho na interface Databricks com 4 tarefas e um acionador para execução diária.

Esse exemplo de trabalho tem as seguintes características:

  1. A primeira tarefa ingere dados de receita.

  2. A segunda tarefa é uma verificação if / else para nulos.

  3. Caso contrário, a tarefa de transformações é executada.

  4. Caso contrário, ele executa uma tarefa do Notebook com uma validação da qualidade dos dados.

  5. Está programado para ser executado todos os dias às 11:29 AM.

Para obter uma rápida introdução à criação de seu próprio trabalho, consulte Criar seu primeiro fluxo de trabalho com um trabalho no site Databricks .

Casos de uso comuns

Desde os princípios fundamentais da engenharia de dados até o aprendizado de máquina avançado e a integração perfeita de ferramentas, esses casos de uso comuns demonstram a amplitude dos recursos que impulsionam a análise moderna, a automação do fluxo de trabalho e a escalabilidade da infraestrutura.

Engenharia de dados

ETL (extrair, transformar, carregar) pipeline: Automatize a extração de dados de várias fontes, transforme os dados em um formato adequado e carregue-os em um site data warehouse ou data lake. Veja como executar sua primeira ETL carga de trabalho em 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 transmissão de dados de fontes como Kafka e gravação em tabelas Delta.

Data science e machine learning

Model treinamento: programar e executar o modelo do machine learning treinamento Job para garantir que os modelos sejam treinados com os dados mais recentes.

lotes inference: Automatize o processo de execução do trabalho de inferência de lotes para gerar previsões a partir de modelos treinados.

Ajuste de hiperparâmetros: Orquestrar o trabalho de ajuste de hiperparâmetros para otimizar o modelo de aprendizado de máquina.

analítica e relatórios

Consultas programadas: execução SQL de consultas em um Job em um programar para gerar relatórios ou atualizar dashboards.

Agregação de dados: Realizar tarefas regulares de agregação de dados para preparar os dados para análise.

Automatizando a tarefa

Fluxo de trabalho multitarefa: Crie fluxos de trabalho complexos que envolvam várias tarefas, como a execução de uma série de arquivos do Notebook, JAR, consultas SQL ou pipeline Delta Live Tables.

Lógica condicional: Use a lógica condicional para controlar o fluxo da tarefa com base no sucesso ou na falha da tarefa anterior.

Notificações e monitoramento

Configure notificações e monitore os resultados da execução do trabalho usando a interface do usuário Databricks, CLI, ou API, ou usando integrações com ferramentas como Slack e webhooks.

Integração com outras ferramentas

Apache Airflow: Acione o Databricks Job usando ferramentas externas de orquestração como o Apache Airflowpermitindo um fluxo de trabalho mais complexo e integrado.

Infraestrutura como código (IaC)

Databricks ativo Bundles: gerenciar Job e outros recursos como código para facilitar o controle de versão, a revisão de código e as práticas de CI/CD (Continuous Integration/Continuous Deployment).

Conceitos de orquestração

Há três conceitos principais ao usar a orquestração em Databricks: Trabalho, tarefa e gatilhos.

Job - Um Job é o principal recurso para coordenar, programar e executar suas operações. Os trabalhos podem variar em complexidade, desde uma única tarefa executando um Databricks Notebook até centenas de tarefas com lógica condicional e dependências. A tarefa em um trabalho é representada visualmente por um gráfico acíclico direcionado (DAG). O senhor pode especificar propriedades para o Job, incluindo:

  • Trigger - define quando o trabalho deve ser executado.

  • Parâmetros - parâmetros de tempo de execução que são automaticamente enviados para a tarefa dentro do Job.

  • Notificações - e-mail ou webhooks a serem enviados quando um trabalho falhar ou demorar muito.

  • Git - configurações de controle de origem para o Job tarefa.

Tarefa - Uma tarefa é uma unidade específica de trabalho em um Job. Cada tarefa pode executar uma variedade de operações, incluindo:

  • A tarefa Notebook executa a Databricks Notebook. O senhor especifica o caminho para o Notebook e os parâmetros que ele requer.

  • A pipeline tarefa executar a pipeline. O senhor pode especificar um Delta Live Tables pipeline existente, como uma tabela materializada view ou de transmissão.

  • A Python script tarefa executar a Python file. Você fornece o caminho para o arquivo e todos os parâmetros necessários.

Há muitos tipos de tarefa. Para obter uma lista completa, consulte Tipos de tarefa. A tarefa pode ter dependências de outras tarefas e executar condicionalmente outras tarefas, permitindo que o senhor crie fluxos de trabalho complexos com lógica condicional e dependências.

Gatilho - Um gatilho é um mecanismo que inicia a execução de um trabalho com base em condições ou eventos específicos. Um acionador pode ser baseado em tempo, como a execução de um trabalho em um horário programado (por exemplo, todos os dias às 2h), ou baseado em eventos, como a execução de um trabalho quando novos dados chegam ao armazenamento em nuvem.

monitoramento e observabilidade

Os trabalhos oferecem suporte integrado para monitoramento e observabilidade. Os tópicos a seguir oferecem uma visão geral desse suporte. Para obter mais detalhes sobre monitoramento de trabalhos e orquestração, consulte monitoramento e observabilidade para Databricks Jobs.

Job Monitoramento e observabilidade na interface do usuário - Na interface do usuário Databricks, o senhor pode acessar view Job, incluindo detalhes como o proprietário do Job e o resultado da última execução, e filtrar por propriedades do Job. O senhor pode acessar view a história da execução do trabalho e obter informações detalhadas sobre cada tarefa do trabalho.

Job status de execução e métricas - Databricks informa o sucesso da execução do trabalho e logs e métricas para cada tarefa dentro de uma execução de trabalho para diagnosticar problemas e entender o desempenho.

Notificações e alertas - O senhor pode configurar notificações para eventos do Job via email, Slack, webhooks personalizados e uma série de outras opções.

Consultas personalizadas por meio de tabelas do sistema - O site Databricks fornece tabelas do sistema que registram a execução de trabalhos e tarefas no site account. O senhor pode usar essas tabelas para consultar e analisar o desempenho e os custos do trabalho. O senhor pode criar painéis para visualizar as métricas e tendências do trabalho, para ajudar a monitorar a saúde e o desempenho do seu fluxo de trabalho.

Limitações

Existem as seguintes limitações:

  • A workspace está limitada a 2000 concorrente tarefa execução. Uma resposta 429 Too Many Requests é retornada quando o senhor solicita uma execução que não pode começar imediatamente.

  • O número de jobs que um workspace pode criar em uma hora é limitado a 10000 (inclui "envio de execuções"). Esse limite também afeta os jobs criados pela API REST e pelos fluxos de trabalho do notebook.

  • O site workspace pode conter até 12.000 trabalhos salvos.

  • Um trabalho pode conter até 100 tarefas.

Posso gerenciar fluxo de trabalho de forma programática?

Databricks possui ferramentas e o site APIs que permitem programar e orquestrar seu fluxo de trabalho de forma programática, incluindo o seguinte:

Para obter exemplos de uso de ferramentas e do site APIs para criar e gerenciar trabalhos, consulte Automatizar a criação e o gerenciamento de trabalhos. Para obter a documentação sobre todas as ferramentas de desenvolvimento disponíveis, consulte Ferramentas de desenvolvimento local.

As ferramentas externas usam as ferramentas Databricks e APIs para programar o fluxo de trabalho. Por exemplo, o senhor também pode programar seu trabalho usando ferramentas como Apache Airflow. Consulte Orchestrate Databricks Job with Apache Airflow .