Configurando os recursos Azure no Airflow - AnselmoBorges/projetorescue GitHub Wiki
Nesse tópico vamos configurar as ferramentas necessárias para que possamos tanto gravar o nosso CSV no Storage Account para acesso se necessário e cadastrarmos a Plataforma de dados que vai ser a base de consulta e analise dos nossos dados, no caso o Azure Databricks.
Pra que isso ocorra precisamos das seguintes informações do lado da Azure:
- Criar um SAS Token no Storage Account
- Cadastrar conexao com o blob storage no Airflow
- Criar um Token do seu usuário no Databricks
- Criar um Cluster SQL Warehouse no Databricks
- Cadastrar o Databricks no Airflow
- Criar Connection fs_default
Criando um SAS Token no Storage Account:
Para criar um SAS Token para um Storage Account Azure de nome projetorescue
, siga os seguintes passos:
- Acesse o portal do Azure em https://portal.azure.com.
- Selecione o seu Storage Account
projetorescue
. - Na barra de navegação à esquerda, clique em "Shared access signature".
- Defina as opções de tempo e permissões para o SAS Token. Por exemplo:
- Defina a duração do token no campo "Start time" e "Expiration time", deixe um tempo de uma semana por exemplo.
- Selecione as permissões necessárias somente em "Allowed resource types", coloque service, container e object, de resto tá tudo certo por padrao pro que vamos usar. Essas permissoes nos darao acesso no nivel de blob, container e acesso aos objetos do container.
- Clique em "Generate SAS and connection string".
Nós vamos usar os 2 parametros da imagem abaixo, copie em algum bloco de notas pois vamos usar no Airflow:
Configurando Blob Storage no Airflow:
No nosso caso vamos configurar apenas usando esse SAS Token gerado, o ideal mesmo seria criar um user de servico, mas para fins didáticos vamos nesse metódo mais simples. Seguem os dados abaixo que vamos precisar:
- Para logar no Airflow acesse o endereço:
http://localhost:8080/connection/add
, logue com o usuário e senha padrão (admin/admin) e esse link já te leva direto para a criação de uma nova conexão, caso vá pra home, no menu roxo lá de cima clique emAdmin
e depoisConnections
. - Agora vamos criar a conexão com os itens:
- Connection Id: Como já esta configurado no script python, se atente a usar esse mesmo nome, o nome da conexão vai ser
dados_rescue
. - Connection Type: Escolha
Azure Blob Storage
- Description: Coloque
Area do Storage Account para armazenamento de dados
- Account Name (Active Directory Auth): Coloque o endereço https do Blob Storage
https://projetorescue.blob.core.windows.net/
- Blob Storage Connection String (optional): Coloque o connection string que copiamos na geração da chave SAS.
- SAS Token (optional): O SAS token mesmo.
- Clique em Test e veja se rolou uma mensagem verdinha lá em cima, lembrando que os outros parâmetros pode deixar em branco mesmo.
- Salve a conexão.
Criando um token de acesso no Databricks com o user de serviço criado:
Vamos agora criar um Token que será necessário para a configuração do Airflow com o Databricks para a criação do database e tabelas que se encontram no Pipeline do Airflow.
- Faça login no Databricks, pode se quiser ir no portal da Azure, clicar no recurso do Databricks e clicar em "Lauch Workspace".
- Lá no canto superior direito tem seu email, clicando nele vai abrir a opção
user settings
, clicando nela aparece um botão azul chamadoGenerate new Token
, gere e copie o conteúdo num bloco de notas, porque se você perder vai ter que gerar outro.
Criando um cluster SQL Warehouse.
Existem 2 tipos de clusters no Databricks de modo mais distintos, os clusters que você criar com a opção de Data Science and Engineering
e os que ficam na opção SQL
, a seleção desses tipos fica nas letrinhas D
, M
e S
no lado superior esquerdo da tela, os criados com D
são maquinas otimizadas pra trabalhar com Spark e rodo notebooks nelas, as com S
são os SQL Warehouses que são voltados mais pra consultas analíticas, esse será o cluster que criaremos.
Selecione a opção S
e clique no menu lateral esquerdo em SQL Warehouses. Clicando nele, por padrão vem um cluster lá, pode deletar pois ele é de um tamanho bem maior do que precisamos, depois de deletado vamos criar um com as configurações abaixo:
- Nome: crs_rescue
- Size 2x-Small
Com o cluster criado vamos pegar todas as informações que levaremos para criar a conexão com o Airflow, do lado da aba Overview
padrão, tem a aba Connections
, ela vai mostrar os dados da imagem abaixo:
OBSERVACÃO: Caso com a exclusão do SQL Warehouse, de problema de quota pra criar um novo, recrie o Databricks e coloque ele no metastore denovo, você pode usar o cluster Starter Warehouse mesmo.
Configurando o Databricks no Airflow
Agora que temos todas as informações para cadastrar o Databricks no Airflow vamos para os procedimentos:
- Para logar no Airflow acesse o endereço:
http://localhost:8080/connection/add
, logue com o usuário e senha padrão (admin/admin) e esse link já te leva direto para a criação de uma nova conexão, caso vá pra home, no menu roxo lá de cima clique emAdmin
e depoisConnections
. - Agora vamos criar a conexão com os itens:
- Connection Id: Como já esta configurado no script python, se atente a usar esse mesmo nome, o nome da conexão vai ser
databricks
. - Connection Type: Escolha
Databricks
- Description: Coloque
Conexão com o Azure Databricks
- Host: Coloque o endereço https do Workspace Databricks
- Schema: O Schema vai ser o
default
- User: Coloque o email da conta, o mesmo que você está logado lá no Databricks
- Password: O Token que geramos
- Port: 443
- Clique em Test e veja se rolou uma mensagem verdinha lá em cima, lembrando que os outros parâmetros pode deixar em branco mesmo.
- Salve a conexão.
Criando a connection fs_default
Como vamos manipular alguns arquivos "localmente", precisamos setar essa config para que o Airflow possa ler e escrever arquivos nesse determinado diretório. Os CSVs que vamos usar, os scripts, se encontram nesse cara então precisamos dele.
- Para logar no Airflow acesse o endereço:
http://localhost:8080/connection/add
, logue com o usuário e senha padrão (admin/admin) e esse link já te leva direto para a criação de uma nova conexão, caso vá pra home, no menu roxo lá de cima clique emAdmin
e depoisConnections
. - Agora vamos criar a conexão com os itens:
- Connection Id: Como já esta configurado no script python, se atente a usar esse mesmo nome, o nome da conexão vai ser
fs_default
. - Connection Type: Escolha
file (path)
- Description: Coloque
Caminho onde estão os dados e DAGs
- Extra: Essa é a ultima opção, o restante podemos deixar em branco mesmo, coloque
{"path": "/usr/local/airflow/dags/"}
- Salve a conexão.
Com isso terminamos as configurações necessárias e no próximo capitulo vamos explicar o que nosso Airflow vai fazer, passo a passo.