Alura > Cursos de Data Science > Cursos de Engenharia de Dados > Conteúdos de Engenharia de Dados > Primeiras aulas do curso Databricks: construindo pipelines de dados com Airflow e Azure Databricks

Databricks: construindo pipelines de dados com Airflow e Azure Databricks

Fundamentos: Airflow, Azure e API - Apresentação

Olá! Sou o Bruno Raphaell, instrutor de Data Science, e acompanharei você neste curso.

Audiodescrição: Bruno se identifica como um homem negro, tem cabelos curtos, cacheados e escuros e uma barba também escura e curta contornando seu rosto. Seus olhos são castanhos e ele usa um óculos de armação preta e arredondada. Está de camiseta preta e headphone preto. Ao fundo, uma estante marrom com enfeites.

O que aprenderemos?

Vamos imaginar o seguinte cenário: trabalhamos em uma empresa que importa produtos de diferentes países.

Para ter melhor previsão dos gastos, é necessário acompanhar as flutuações de diferentes moedas.

Além disso, devido à natureza remota do trabalho, a empresa utiliza o Slack como plataforma de comunicação interna.

Foi solicitado para nós, profissionais de dados, o desenvolvimento de uma solução para extrair diariamente a cotação das moedas com as quais a empresa trabalha. São elas:

Essa solução deve enviar as cotações para as pessoas responsáveis pelos gastos da empresa todos os dias às nove da manhã, no início do expediente.

Enviaremos essas informações numa tabela contendo a data e a cotação de cada uma das moedas mencionadas, separadas por colunas, conforme o seguinte exemplo:

dataUSDEURGBP
2023-05-220.2013050.1861760.161871
2023-05-210.2000680.1848650.160561
2023-05-200.1999850.1847670.160676
............

Também foi solicitada a criação de gráficos atualizados com o histórico de cotação dessas moedas num período de dois meses. Assim, conseguiremos avaliar se a cotação das moedas está em ascensão ou declínio — uma informação muito relevante para a nossa empresa.

Com isso, esperamos auxiliar o time responsável pelos gastos da empresa a ter previsões melhores acerca do consumo do orçamento.

A construção e execução de todo o pipeline para desenvolver essa solução será realizada com o Apache Airflow e o Databricks, mais especificamente na Cloud Azure. O Slack será o meio de envio da tabela e dos gráficos.

Pré-requisitos

Para acompanhar esse curso, é importante ter conhecimento prévio, mesmo que básico, sobre:

Vamos aprender a desenvolver essa solução? Nos encontramos nos próximos vídeos!

Fundamentos: Airflow, Azure e API - Instalando e configurando o Airflow

Vamos dar início aos trabalhos solicitados para nós! Conforme comentamos na contextualização, trabalharemos com duas ferramentas:

Sabemos que o Databricks é uma ferramenta de nuvem; ou seja, não precisamos instalá-la na nossa máquina.

O Airflow, por sua vez, é uma plataforma local; então, precisamos instalá-la.

Atenção: É necessário ter o WSL2 e o VS Code instalados no computador para instalar o Airflow. Se você não possui essas ferramentas, significa que você pulou etapas. Retorne à atividade Preparando o ambiente desta aula e siga os passos para podermos continuar.

Atualizando os pacotes do Linux

Com o WSL2 e o VS Code instalados, vamos abrir o Terminal do Windows.

Com o Prompt de comando aberto, clicamos na seta para baixo na barra superior da tela para criar uma nova aba. No menu, selecionamos a opção "Ubuntu 22.04.2 LTS".

Ao carregar, estaremos no nosso Linux. Para verificar, rodamos o seguinte comando:

ls -la

Assim, é retornada uma lista de todos os nossos diretórios do Linux.

A primeira coisa que precisamos fazer ao abrir o Linux é atualizar os pacotes e, de fato, instalar esses pacotes que precisam ser atualizados.

Para isso, executaremos dois comandos: sudo apt update para atualizar e sudo apt upgrade para baixar os pacotes. Para rodá-los automaticamente em sequência, os inserimos na mesma linha de comando, separados por dois &:

sudo apt update && sudo apt upgrade 

Nesse momento é solicitada a senha; insira-a e aperte "Enter" para prosseguir.

Na máquina do instrutor, o retorno foi de zero pacotes atualizados e instalados, pois ele havia feito esse processo previamente.

Agora, vamos rodar o comando clear para limpar o terminal.

Python

Para prosseguir com a instalação do Airflow, precisamos do Python instalado. Pode ser que você não o possua em seu Linux; então, para instalá-lo, rodamos o comando:

sudo apt install python3

Feito isso, podemos verificar se o Python foi realmente instalado com o seguinte comando:

python3 --version

Assim, será retornada a versão do Python instalada. No caso do instrutor, é a versão 3.10.6.

PIP

Também precisamos do gerenciador de pacotes do próprio Python, chamado PIP (Python Package Index). Se você ainda não o tiver instalado, rode o seguinte comando:

sudo apt install python3-pip

Virtual Env

Agora, precisamos instalar um gerenciador de ambientes virtuais. Trabalharemos com o Virtual Env; para instalá-lo, executamos:

sudo apt install python3-virtualenv

Criando o ambiente virtual

Concluídos todos esses passos, criaremos de fato o nosso ambiente virtual, onde instalaremos o Airflow.

Para isso, digitamos virtualenv (nome da biblioteca que acabamos de instalar) e, depois, o nome que daremos para esse ambiente virtual. O nome pdoe ser curso_datAir ("dat" de Databricks; "Air" de Airflow):

virtualenv curso_datAir

Com o ambiente virtual criado, precisamos ativá-lo:

source curso_datAir/bin/activate

Ao executar esse comando, poderemos notar que o nome do ambiente virtual aparecerá antes de todos os retornos da máquina entre parênteses, por exemplo:

(curso_datAir) bruno@LAPTOP-5KDC9JKD $

Isso significa que este ambiente virtual está ativado e podemos trabalhar nele separado do nosso ambiente de origem.

Podemos dar um clear no terminal para limpar a tela novamente.

Instalando o Airflow

Agora, de fato, instalaremos o Airflow. Segundo a documentação do Airflow, a primeira coisa que precisamos fazer é exportar a variável de ambiente AIRFLOW_HOME usando o seguinte código:

export AIRFLOW_HOME=~/airflow

Vamos copiar esse comando e executá-lo no nosso terminal. Para verificar o que foi colocado nessa variável de ambiente, executamos:

echo $AIRFLOW_HOME

O retorno é o seguinte (no caso do instrutor):

/home/bruno/airflow

O próximo passo é selecionar a versão do Python; aquela que conferimos anteriormente. O instrutor está utilizando a versão 3.10.6, mas pode ser que a sua seja diferente.

Sendo assim, podemos rodar o seguinte comando para selecionar a versão correta:

PYTHON_VERSION="$(python --version | cut -d "" -f 2 | cut -d "." -f 1-2)"

Também precisamos definir a versão do Airflow que queremos instalar. No caso, será a versão 2.6.1. Utilizaremos o seguinte comando:

export AIRFLOW_VERSION=2.6.1

Definimos a variável de ambiente. Agora, definiremos a constraint URL com as instruções de instalação do Airflow:

CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

Agora, vamos instalar o Airflow com base nas informações que passamos.

Para isso, utilizaremos o seguinte comando com as interpolações de AIRFLOW_VERSION e CONSTRAINT_URL, variáveis que acabamos de definir:

pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

Ao executar esse comando, a instalação é iniciada. Ela demora um tempo para ser concluída. Caso você nesta parte receba algum mensagem de erro semelhante a esta aqui 'ERROR: 404 Client Error: Not Found for url:' utilize este comando aqui com os parâmetros já preenchidos para realizar a instalação passando a versão/url:

pip install "apache-airflow==2.6.1" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.6.1/constraints-3.10.txt"

Integração Airflow e Databricks

Concluída a instalação, precisamos instalar mais um componente. Como trabalharemos com o Databricks junto do Airflow, precisamos de mais um pacote do PIP, oferecido pelo próprio Databricks para realizar a junção das duas ferramentas.

Para obtê-lo, executamos o seguinte comando:

pip install apache-airflow-providers-databricks

Pronto! Temos o Airflow instalado e o pacote de integração do Databricks também.

Iniciando o Airflow

Para iniciar o Airflow, executamos o comando:

airflow standalone

Esse processo também é um pouco demorado, pois realiza toda a parte de criação, cria um usuário no banco de dados e faz todas as configurações necessárias.

Ao fim do processo, recebemos o retorno:

Airflow is ready.

Ou seja, nosso Airflow está pronto para utilizarmos. O retorno também diz:

Login with username: admin password: 4Yvg4n17fFa7GGxT

Precisamos logar com esse nome de usuário e senha exibidos pelo retorno. Copiamos essa senha para deixá-la na área de transferência.

Agora, vamos até a interface do Airflow, ou seja, o Airflow Webserver. Para isso, abrimos uma nova aba no navegador e digitamos o seguinte endereço:

localhost:8080

Entramos em uma página de login do Airflow. Nela, inserimos o username "admin" e a senha que copiamos, e clicamos em "Sign In".

Ao logar, entramos na página de título "DAGs". Pronto! Nosso Airflow já está disponível para uso, com DAGs de exemplo.

Nossa instalação está quase concluída. Nosso próximo passo é criar uma pasta para armazenar nossos DAGs, assim como exige a documentação do Airflow.

No terminal, vamos abrir uma nova aba do WSL, clicando em "Seta para baixo > Ubuntu 22.04.2 LTS" .

Vamos acessar o diretório do Airflow primeiro:

cd airflow/

Depois, vamos abrir o VS Code executando este comando:

code .

Assim, uma nova janela do VS Code será aberta com o projeto Airflow aberto.

No Explorador de arquivos (menu à esquerda), clicamos no arquivo de configuração: airflow.cfg.

No primeiro bloco de código, temos uma variável chamada dags_folder recebendo /home/bruno/airflow/dags. Esse é o endereço da nossa pasta de DAGs.

Vamos copiá-lo e voltar para o terminal. Para criar uma nova pasta, usamos o comando mkdir e adicionamos o endereço:

mkdir /home/bruno/airflow/dags

Pronto! Se dermos um ls, veremos que agora temos uma pasta chamada "dags", onde inseriremos os nossos DAGs.

Nosso próximo passo será criar uma conta na Azure, porque vamos utilizar essa nuvem para trabalhar com o Databricks.

Fundamentos: Airflow, Azure e API - Acessando o Azure Databricks

Nossa conta da Azure está criada! Se você ainda não possui uma, isso significa que você pulou etapas. Então volte para a atividade anterior, "Preparando o ambiente", e acompanhe o passo a passo para criá-la.

Caso você não tenha conseguido os duzentos dólares gratuitos, disponibilizados pela Azure para a sua primeira conta, você pode estar se perguntando:

Terei custos? Como posso saber qual será o valor?

Gerenciamento de Custos

Para responder a essas perguntas, a Azure disponibiliza um recurso muito interessante: o Gerenciamento de Custos.

Para encontrá-lo, busque-o na barra de pesquisa do menu superior do portal da Azure. Clique na primeira opção, com o ícone de cifrão.

Com isso, é aberta a interface desse recurso. Na lateral esquerda da tela, temos um menu de seções. Vamos clicar em "Análise de custo" (não a versão prévia).

Nessa página, aparece uma série de informações para monitorarmos quanto dinheiro estamos gastando no nosso ambiente da Azure:

No menu superior direito, podemos clicar na opção "Agrupar por" para filtrar as informações por diversos critérios, como Marca, Localização, Frequência, etc.

Também temos o item "Granularidade", que define os dados do gráfico apresentado no centro da tela. Por padrão, a opção selecionada é "Acumulado"; ou seja, o gasto é somado diariamente e exibido numa área crescente nesse gráfico:

gráfico de área representando os custos do Azure ao longo do tempo. no eixo y, valores de 0 a 120 em intervalos de 20. no eixo x, os dias de maio de 1 a 31. uma área preenchida de verde representa um aumento nos custos conforme os dias de maio passaram.

Mas, por exemplo, podemos visualizar o "Diário" para conferir quanto gastamos por dia; ou "Mensal" para conferir o gasto por meses.

Se clicarmos em "Diário", receberemos um gráfico de área representando os gastos por dia. No entanto, essa não é a visualização mais apropriada para isso.

Para mudar a visualização do gráfico, podemos clicar no último item do menu superior direito, que indica a opção "Área". Vamos selecionar a visualização "Coluna (empilhada)":

gráfico de barras representando os custos por dia ao longo de maio. há maior concentração de gastos entre os dias 1 e 12 de maio.

Podemos posicionar o cursor sobre as colunas para conferir o custo exato de um dia. Por exemplo, no dia 10 de maio, o instrutor gastou exatamente R$6,03; no dia 19, gastou R$2,55.

Essa é uma maneira de monitorar os seus gastos com o Azure. Caso você queira enviar essas informações para a sua equipe, por exemplo, você pode clicar em "Compartilhar", ou em "Download" para baixar os dados, no menu superior.

Abaixo do gráfico principal, temos gráficos circulares contendo outras informações. Por exemplo, o seguinte gráfico mostra os gastos totais com cada serviço do Azure:

círculo vazado no centro, preenchido com diferentes tons de amarelo. ao lado, uma legenda para cada tom: o mais claro tem o título "Virtual Machines", acompanhado do valor de 62 reais e 55 centavos, e preenche a maior parte do círculo. o segundo maior tom tem o título Storage, representando o valor de 19 reais e 98 centavos. os outros tons têm valores menores de um real, representando: Power BI Embedded, Azure Databricks, Bandwith, etc.

Nosso maior custo foi com Máquinas Virtuais, de R$62,55; com Armazenamento, gastamos quase R$20,00; e assim por diante.

Além de custo por serviço, podemos conferir o custo por localização e vários outros critérios. Assim, podemos analisar mais objetivamente os nossos gastos e nos prevenir para não gastar mais que o planejado.

Orçamentos

Ficar monitorando essas informações pode ser bastante trabalhoso. Você pode pensar, por exemplo:

Eu não quero ficar conferindo o gerenciador de custos todos os dias. Vamos supor que meu orçamento seja de R$100,00. Podemos configurar um aviso para quando tiver gasto R$50, e outro aviso para quando tiver gasto R$80? Assim, saberei quando devo começar a tomar cuidado com os custos.

A resposta é: podemos! Para isso, definiremos orçamentos clicando na opção "Gerenciamento de Custos > Orçamentos" no menu lateral esquerdo do Azure.

Nessa página, clicamos em "Adicionar" no canto superior esquerdo. Serão pedidas algumas informações.

A primeira seção é a de Escopo do orçamento; nela é exibida, por padrão, a assinatura da Azure vinculada a esse orçamento. No caso do instrutor:

Escopo: Assinatura-Azure-Alura

Logo abaixo, temos a seção de Detalhes do orçamento. O primeiro campo é de Nome, em que é pedido um nome exclusivo. Vamos inserir o seguinte:

Nome: curso-databricks

Em seguida, definimos o período desse orçamento. A opção padrão é "Mensalmente"; ou seja, esse orçamento é renovado todo mês. Podemos deixar assim:

Redefinir período: Mensalmente

Abaixo, temos as datas de criação e validade, definidas automaticamente, mas que podemos trocar. Nesse caso, temos:

Abaixo, temos a seção de Valor do orçamento. Quanto queremos gastar mensalmente? Definimos esse valor conforme nossos interesses e possibilidades. Se for, no máximo, cem reais, preenchemos dessa forma:

Valor (R): 100

Por fim, clicamos em "Avançar" ao final da página.

Na próxima tela, são perguntadas as "Condições de alerta". Podemos definir um tipo (real ou previsto), porcentagem do orçamento e grupo de ações. Conforme nosso exemplo, preencheremos da seguinte maneira:

Podemos definir outro alerta logo abaixo, para o momento em que tivermos gastado 80% do orçamento:

Abaixo, precisamos definir o e-mail para envio dos alertas. O instrutor preencheu esse campo com seu e-mail profissional:

Alertar destinatários (email): bruno.matos@alura.com.br

Por fim, podemos definir a preferência de idioma:

Idiomas: Português (Brasil)

Então, clicamos em "Criar" no canto inferior esquerdo da tela.

No momento em que a validação for concluída, retornaremos à página de Orçamentos e poderemos notar, na lista, o orçamento "curso-databricks" criado e suas especificações.

O que definimos? Quando gastarmos R$50,00 (metade do nosso orçamento), receberemos um e-mail de aviso. O mesmo quando gastarmos R$80,00.

Isso servirá para nos atentarmos aos gastos na plataforma e não ultrapassarmos o limite definido.

Criando o ambiente Databricks

Agora, vamos criar nosso ambiente do Databricks. Para acessá-lo, vamos buscá-lo na barra de pesquisa do portal da Azure e clicar na opção "Azure Databricks", com ícone de tijolos empilhados.

Já na área do Databricks, podemos observar uma série de informações. Sinta-se à vontade para explorar todas elas.

Para criar um ambiente, clicamos em "Criar" no canto superior esquerdo da tela. Novamente, vamos preencher um formulário com detalhes do projeto.

Primeiramente, vamos definir a Assinatura. No caso do instrutor, é a "Assinatura-Azure-Alura"; para você pode ser "Subscription-1" ou o nome definido por você.

Abaixo, definimos o Grupo de recursos. Isso é muito importante, porque o Databricks agrupará essas informações em um conjunto de recursos para trabalharmos.

Por isso, vamos clicar em "Criar novo" logo abaixo do menu suspenso. Na aba de criação, vamos nomear esse grupo de recursos:

Nome: curso-databricks-alura

Clicamos em "OK".

Abaixo, vamos definir os Detalhes da Instância:

Com isso, teremos 14 dias gratuitos de recursos usuais (DBUs) do Databricks; assim, não serão inferidos custos no nosso Azure.

Por fim, clicamos em "Revisar + criar" no canto inferior esquerdo da tela. Com a validação concluída, clicamos em "Criar".

Será iniciada a implantação do nosso workspace do Databricks. Ao ser concluída, podemos conferir os Detalhes de implantação.

Expandindo essa seção, conferimos que foi criado um Serviço do Azure Databricks chamado "airflow-databricks", cujo status está "OK".

Vamos clicar em "Ir para o recurso", no centro da tela. Com isso, a página é redirecionada para uma tela de Visão Geral de "airflow-databricks", contendo uma série de informações sobre esse ambiente.

Descendo um pouco a tela, clicaremos em "Iniciar o Workspace". Será feito o login automático no Databricks em uma nova guia do navegador, conforme as nossas credenciais da Azure.

Pronto! Nosso Databricks está pronto para trabalharmos!

Aviso: O ideal é que você faça esse curso o mais rápido possível, pois a Azure (e as nuvens, no geral) cobra pelo tempo que utilizamos seus recursos. Se você utilizar por muito tempo, terá mais custos. Sugerimos, então, que você tente concluir as aulas em um fim de semana mais livre, por exemplo, para ter menos gastos!

Sobre o curso Databricks: construindo pipelines de dados com Airflow e Azure Databricks

O curso Databricks: construindo pipelines de dados com Airflow e Azure Databricks possui 191 minutos de vídeos, em um total de 52 atividades. Gostou? Conheça nossos outros cursos de Engenharia de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Engenharia de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas