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.
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:
data | USD | EUR | GBP |
---|---|---|---|
2023-05-22 | 0.201305 | 0.186176 | 0.161871 |
2023-05-21 | 0.200068 | 0.184865 | 0.160561 |
2023-05-20 | 0.199985 | 0.184767 | 0.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.
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!
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.
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.
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.
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
Agora, precisamos instalar um gerenciador de ambientes virtuais. Trabalharemos com o Virtual Env; para instalá-lo, executamos:
sudo apt install python3-virtualenv
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.
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"
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.
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.
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?
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:
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)":
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:
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.
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:
- Data de criação: 2023 Maio 1
- Data de validade: 2025 Abril 30
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:
- Tipo: Real
- % do orçamento: 50
- Grupo de ações: Nenhum
Podemos definir outro alerta logo abaixo, para o momento em que tivermos gastado 80% do orçamento:
- Tipo: Real
- % do orçamento: 80
- Grupo de ações: Nenhum
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.
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:
- Nome do Workspace: airflow-databricks
- Região: East US (padrão)
- Tipo de Preço: Avaliação (Premium - DBUs Gratuitos por 14 Dias)
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!
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.