Introdução aos fluxos de trabalho do Databricks

O Databricks Workflows orquestra o processamento de dados, machine learning e pipeline analítico na plataforma Databricks Data Intelligence. fluxo de trabalho possui serviço de orquestração totalmente gerenciado integrado à plataforma Databricks, incluindo Databricks Jobs para execução de código não interativo em seu workspace Databricks e Delta Live Tables para construir pipeline ETL confiável e de fácil manutenção.

Para saber mais sobre os benefícios de orquestrar seu fluxo de trabalho com a plataforma Databricks, consulte Databricks Workflows.

Um exemplo de fluxo de trabalho do Databricks

O diagrama a seguir ilustra um fluxo de trabalho orquestrado por um job do Databricks para:

  1. Executar um pipeline Delta Live Tables que ingere dados brutos de clickstream do armazenamento em nuvem, limpa e prepara os dados, inclui os dados em sessão e persiste o conjunto de dados em sessão final para Delta Lake.

  2. Executar um pipeline Delta Live Tables que ingere dados de pedidos do armazenamento em nuvem, limpe e transforme os dados para processamento e persista o conjunto de dados final no Delta Lake.

  3. Unir a ordem e os dados de sequência de cliques da sessão para criar um novo conjunto de dados para análise.

  4. Extrair recursos dos dados preparados.

  5. Executar tarefas em paralelo para persistir os recursos e treinar um modelo de aprendizado de máquina.

Diagrama ilustrando um exemplo de fluxo de trabalho

O que são Databricks Jobs?

Observação

O recurso CLI não está disponível no Databricks on Google Cloud a partir desta versão.

Um Job do Databricks é uma forma de executar seus aplicativos de processamento e análise de dados em um workspace do Databricks. Seu Job pode consistir em uma única tarefa ou pode ser um fluxo de trabalho grande e multitarefa com dependências complexas. Databricks gerencia a orquestração de tarefas, gerenciamento clusters , monitoramento e relatórios de erros para todos os seus Job. Você pode executar seu Job imediatamente, periodicamente por meio de um sistema programático fácil de usar ou continuamente para garantir que uma instância do Job esteja sempre em execução. Você também pode executar Job interativamente na UINotebook .

Você pode criar e executar um job usando a interface do usuário do Jobs, a CLI do Databricks ou invocando a API Jobs. Você pode reparar e executar novamente um job com falha ou cancelado usando a interface do usuário ou a API. Você pode monitorar os resultados da execução do job usando a interface do usuário, a CLI, a API e as notificações (por exemplo, e-mail, destino do webhook ou notificações do Slack).

Para saber mais sobre como usar a CLI da Databricks, consulte O que é a CLI da Databricks? Para saber mais sobre como usar a API de Jobs, consulte a API de Jobs.

As seções a seguir abordam recursos importantes do Databricks Jobs.

Importante

  • Um workspace está limitado a 1000 execuções simultâneas de tarefas. É retornada a resposta 429 Too Many Requests quando você solicita uma execução que não pode iniciar imediatamente.

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

Implementar processamento e análise de dados com tarefas de jobs

Você implementa seu fluxo de trabalho de processamento e análise de dados com as tarefas. Um job é composto por uma ou mais tarefas. Você pode criar tarefas de jobs que executam aplicativos de notebooks, JARS, pipelines Delta Live Tables ou aplicativos Python, Scala, Spark submit e Java. As tarefas dos jobs também podem orquestrar consultas, alertas e painéis SQL do Databricks para criar análises e visualizações, ou você pode usar a tarefa dbt para executar transformações dbt em seu fluxo de trabalho. Os aplicativos legados do Spark Submit também são suportados.

Você também pode adicionar uma tarefa a um job que executa outro job. Esse recurso permite dividir um processo grande em vários jobs menores ou criar módulos generalizados que podem ser reutilizados por vários jobs.

Você controla a ordem de execução das tarefas especificando dependências entre as tarefas. Você pode configurar tarefas para serem executadas em sequência ou paralelas.

Executar jobs de forma interativa, contínua ou usando gatilhos de trabalho

O senhor pode executar o trabalho interativamente a partir da interface do usuário do Jobs, da API ou da CLI ou pode executar um trabalho contínuo Job. O senhor pode criar um programa para executar seu Job periodicamente ou executar seu Job quando novos arquivos chegarem em um local externo, como o Amazon S3, o armazenamento do Azure ou o Google Cloud Storage.

Monitorar o progresso do job com notificações

Você pode receber notificações quando um job ou uma tarefa iniciar, concluir ou falhar. Você pode enviar notificações para um ou mais endereços de e-mail ou destinos de sistema (por exemplo, destinos de webhook ou Slack). Consulte Adicionar notificações de e-mail e sistema para eventos de jobs.

Execute seus jobs com os recursos de computação da Databricks

Os clusters do Databricks e os SQL warehouses proporcionam os recursos de computação para os seus jobs. Você pode executar seus jobs com um cluster de jobs, um cluster multiuso ou um SQL warehouse:

  • Um cluster de job é um cluster dedicado para seu job ou tarefas de jobs individuais. Seu job pode usar um cluster de job compartilhado por todas as tarefas ou você pode configurar um cluster para tarefas individuais ao criar ou editar uma tarefa. Um agrupamento de tarefas é criado quando o job ou a tarefa inicia e termina quando o job ou a tarefa termina.

  • Um cluster para todos os fins é um cluster compartilhado que é iniciado e encerrado manualmente e que pode ser compartilhado por vários usuários e jobs.

Para otimizar o uso de recursos, a Databricks recomenda o uso de um cluster de jobs para seus jobs. Para reduzir o tempo gasto esperando pela inicialização do cluster, considere a possibilidade de usar um cluster multiuso. Consulte Usar a computação do Databricks com seus jobs.

Você usa um SQL warehouse para executar transformações dbt com a tarefa dbt.

Próximas etapas

Para começar com jobs do Databricks:

Saiba mais sobre como criar, gerenciar e solucionar problemas de fluxos de trabalho com o Databricks Jobs:

O que é Delta Live Tables?

O Delta Live Tables é uma estrutura que simplifica o processamento de dados de ETL e transmissão. O Delta Live Tables fornece ingestão eficiente de dados com suporte integrado para interfaces Auto Loader, SQL e Python que oferecem compatibilidade com a implementação declarativa de transformações de dados e compatibilidade com a gravação de dados transformados no Delta Lake. Você define as transformações a serem realizadas em seus dados e o Delta Live Tables gerencia a orquestração de tarefas, o gerenciamento de clusters, o monitoramento, a qualidade dos dados e o tratamento de erros.

Para começar, consulte O que é Delta Live Tables?.

Databricks Jobs e Delta Live Tables

O Databricks Jobs e o Delta Live Tables oferecem uma estrutura abrangente para a criação e a implementação de fluxos de trabalho de análise e processamento de dados de ponta a ponta.

Use Delta Live Tables para toda ingestão e transformação de dados. Utilize trabalhos do Databricks para orquestrar cargas de trabalho compostas por uma única tarefa ou múltiplas tarefas de processamento e análise de dados na plataforma Databricks, incluindo ingestão e transformações do Delta Live Tables.

Como um sistema de orquestração de fluxo de trabalho, o Databricks Jobs também oferece compatibilidade com:

  • Execução de jobs em uma base acionada, por exemplo, execução de um fluxo de trabalho em uma programação.

  • Análise de dados por meio de consultas SQL, aprendizado de máquina e análise de dados com notebook, scripts ou bibliotecas externas e assim por diante.

  • Executar um job composto por uma única tarefa, como executar um job Apache Spark empacotado em um JAR.

Orquestração de fluxo de trabalho com Apache AirFlow

Embora o Databricks recomende o uso do Databricks Jobs para orquestrar seus fluxos de trabalho de dados, você também pode utilizar 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 Databricks jobs com Apache Airflow.