Entender os principais conceitos
O Azure Databricks é uma plataforma de serviço única com múltiplas tecnologias que permitem trabalhar com dados em escala. Ao utilizar o Azure Databricks, existem alguns conceitos-chave a compreender.
Espaços de Trabalho
Um workspace no Azure Databricks é um ambiente seguro e colaborativo em que você pode acessar e organizar todos os ativos do Databricks, como notebooks, clusters, trabalhos, bibliotecas, dashboards e experimentos.
Você pode abrir um Workspace do Azure Databricks no portal do Azure selecionando Iniciar Workspace.
Ele fornece uma interface do usuário baseada na Web, bem como APIs REST para gerenciar recursos e fluxos de trabalho. Os workspaces podem ser estruturados em pastas para organizar projetos, pipelines de dados ou ativos de equipe e as permissões podem ser aplicadas em diferentes níveis para controlar o acesso. Eles dão suporte à colaboração permitindo que vários usuários, como engenheiros de dados, analistas e cientistas de dados, trabalhem juntos em blocos de anotações compartilhados, acompanhem experimentos e gerenciem dependências.
Além disso, os workspaces são vinculados ao Catálogo do Unity (quando habilitados) para governança de dados centralizada, garantindo acesso seguro aos dados em toda a organização. Cada workspace também está vinculado a um grupo de recursos subjacente do Azure (incluindo um grupo de recursos gerenciados) que contém os recursos de computação, rede e armazenamento que o Databricks usa nos bastidores.
Notebooks
Os notebooks do Databricks são documentos interativos baseados na Web que combinam código executável, visualizações e texto narrativo em um único ambiente. Eles dão suporte a vários idiomas, como Python, R, Scala e SQL, e permitem que os usuários alternem entre idiomas no mesmo notebook usando comandos mágicos. Essa flexibilidade torna os notebooks adequados para análise exploratória de dados, visualização de dados, experimentos de machine learning e criação de pipelines de dados complexos.
Os notebooks também são projetados para colaboração: vários usuários podem editar e executar células simultaneamente, adicionar comentários e compartilhar insights em tempo real. Eles se integram firmemente aos clusters do Databricks, permitindo que os usuários processem grandes conjuntos de dados com eficiência e podem se conectar a fontes de dados externas por meio do Catálogo do Unity para acesso a dados controlados. Além disso, os notebooks podem ser controlados por versão, agendados como trabalhos ou exportados para compartilhamento fora da plataforma, tornando-os centrais para exploração ad hoc e fluxos de trabalho de nível de produção.
Os notebooks contêm uma coleção de dois tipos de células: células de código e células Markdown. As células de código contêm código executável. As células Markdown contêm código Markdown que é renderizado como texto e gráficos. Você pode executar uma única célula, um grupo de células ou todo o notebook.
Agrupamentos
O Azure Databricks aproveita uma arquitetura de duas camadas:
- Plano de Controle: essa camada interna, gerenciada pela Microsoft, manipula serviços de back-end específicos para sua conta do Azure Databricks.
- Plano de computação: essa é a camada externa que processa os dados e reside em sua Assinatura do Azure.
Os clusters são os principais mecanismos computacionais no Azure Databricks. Eles fornecem o poder de processamento necessário para executar tarefas de engenharia de dados, ciência de dados e análise. Cada cluster consiste em um nó mestre, que coordena a execução, e um ou mais nós de processamento, que manipulam os cálculos distribuídos. Os clusters podem ser criados manualmente com recursos fixos ou definidos para dimensionamento automático, permitindo que o Databricks adicione ou remova nós de trabalho dependendo da demanda de carga de trabalho. Essa flexibilidade garante o uso eficiente de recursos e o controle de custo.
A Computação do Azure Databricks oferece um amplo conjunto de opções de computação disponíveis para diferentes tipos de carga de trabalho:
- Computação sem servidor: computação totalmente gerenciada sob demanda que aumenta ou reduz automaticamente para atender às necessidades de carga de trabalho. Ideal para equipes que desejam tempos de inicialização rápidos, sobrecarga de gerenciamento mínima e dimensionamento elástico.
- Computação clássica: clusters provisionados pelo usuário e configurados que oferecem controle total sobre as configurações de computação, como tamanhos de VM, bibliotecas e versões de runtime. Melhor para cargas de trabalho especializadas que exigem personalização ou desempenho consistente.
- SQL warehouses: recursos de computação otimizados para análise baseada em SQL e consultas de BI. Os sql warehouses podem ser provisionados como sem servidor (elástico, gerenciado) ou clássico (configurado pelo usuário), dependendo dos requisitos de governança e desempenho.
Isso permite que você adapte a computação a necessidades específicas, desde análises exploratórias em notebooks até pipelines ETL em larga escala, até painéis e relatórios de alto desempenho.
Databricks Runtime
O Databricks Runtime é um conjunto de builds personalizados do Apache Spark que incluem melhorias de desempenho e bibliotecas adicionais. Esses runtimes facilitam o processamento e análise de dados gerais, como aprendizado de máquina, processamento de grafo e genômica.
O Databricks fornece várias versões de runtime, incluindo versões LTS (suporte de longo prazo ). Cada versão especifica a versão subjacente do Apache Spark, sua data de lançamento e quando o suporte terminará. Com o tempo, as versões de runtime mais antigas seguem um ciclo de vida:
- Legado – disponível, mas não é mais recomendado.
- Preterido – marcado para remoção em uma versão futura.
- Fim do suporte (EoS) – não são fornecidos mais patches ou correções.
- EoL (Fim da Vida) – desativado e não está mais disponível.
Se uma atualização de manutenção for lançada para uma versão de runtime que você está usando, você poderá aplicá-la reiniciando o cluster.
Trabalhos do Lakeflow
Lakeflow Jobs fornecem automação e orquestração de fluxo de trabalho no Azure Databricks, possibilitando agendar, coordenar e executar tarefas de processamento de dados de forma confiável. Em vez de executar o código manualmente, você pode usar trabalhos para automatizar cargas de trabalho repetitivas ou de nível de produção, como pipelines de ETL, treinamento de machine learning ou atualizações de painel.
Um trabalho no Databricks é essencialmente um contêiner para uma ou mais tarefas. As tarefas definem o trabalho a ser feito , por exemplo, executando um notebook, executando um trabalho do Spark, chamando código externo, ...
Os trabalhos podem ser disparados de maneiras diferentes:
- Em um horário programado (por exemplo, todas as noites à meia-noite).
- Em resposta a um evento.
- Manualmente, quando necessário.
Como podem ser repetidos e gerenciados, as tarefas são essenciais para cargas de trabalho de produção. Eles garantem que os pipelines de dados sejam executados de forma consistente, os modelos de ML sejam treinados e implantados de maneira controlada e os sistemas downstream recebam dados atualizados e precisos.
Lago Delta
O Delta Lake é uma estrutura de armazenamento de software livre que melhora a confiabilidade e a escalabilidade dos data lakes adicionando recursos transacionais sobre o armazenamento de objetos de nuvem, como o Azure Data Lake Storage. Lagos de dados tradicionais podem apresentar problemas como dados divergentes, gravações parciais ou dificuldades para gerenciar o acesso simultâneo. O Delta Lake resolve esses problemas com suporte:
- Transações ACID (atomicidade, consistência, isolamento, durabilidade) para leituras e gravações confiáveis.
- Tratamento escalonável de metadados para que as tabelas possam crescer para bilhões de arquivos sem perda de desempenho.
- Controle de versão de dados e reversão, permitindo consultas de viagem no tempo e recuperação de estados anteriores.
- Processamento unificado de lotes e streaming, para que a mesma tabela possa lidar com ingestão em tempo real e cargas históricas em lote.
Além dessa base, as tabelas Delta fornecem uma abstração familiar da tabela que facilita o trabalho com dados estruturados usando consultas SQL ou a API DataFrame. Tabelas delta são o formato de tabela padrão no Azure Databricks, garantindo que novos dados sejam armazenados com garantias transacionais por padrão.
SQL do Databricks
O Databricks SQL traz recursos de armazenamento de dados para o Databricks Lakehouse, permitindo que analistas e usuários de negócios consultem e visualizem dados armazenados em formatos abertos diretamente no data lake. Ele dá suporte ao SQL ANSI, para que qualquer pessoa familiarizada com o SQL possa executar consultas, criar relatórios e criar dashboards sem precisar aprender novos idiomas ou ferramentas.
O SQL do Databricks está disponível apenas na camada Premium do Azure Databricks. Ele inclui:
- Um editor de SQL para escrever e executar consultas.
- Dashboards e ferramentas de visualização para compartilhar insights.
- Integração com ferramentas externas de BI e ferramentas analíticas.
SQL Warehouses
Todas as consultas SQL do Databricks são executadas em sql warehouses (anteriormente chamados de pontos de extremidade SQL), que são recursos de computação escalonáveis separados do armazenamento. Diferentes tipos de warehouse estão disponíveis dependendo das necessidades de desempenho, custo e gerenciamento:
SQL Warehouses sem servidor
- Computação instantânea e elástica com inicialização rápida e dimensionamento automático.
- Baixa sobrecarga de gerenciamento , já que o Databricks lida com capacidade, aplicação de patch e otimização.
- Eficiência de custo através da escalabilidade automática e eliminação de gastos com recursos ociosos.
Pro SQL Warehouses
- Mais personalizável, mas mais lento para começar (≈4 minutos).
- O dimensionamento automático é menos responsivo em comparação com a arquitetura serverless.
- Útil quando cargas de trabalho consistentes e previsíveis são necessárias.
Armazéns SQL Clássicos
- Recursos de computação são executados em sua própria assinatura do Azure, não no Databricks.
- Menos flexível do que sem servidor, mas pode ser preferencial para requisitos específicos de governança ou gerenciamento de custos.
MLflow
O MLflow é uma plataforma de software livre projetada para gerenciar o ciclo de vida de ML (machine learning de ponta a ponta). Ele ajuda cientistas de dados e engenheiros de ML a acompanhar experimentos, gerenciar modelos e simplificar o processo de migração de modelos do desenvolvimento para a produção. O MLflow também dá suporte a fluxos de trabalho de IA generativos e inclui ferramentas para avaliar e melhorar agentes de IA.