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:

  1. Acesse o portal do Azure em https://portal.azure.com.
  2. Selecione o seu Storage Account projetorescue.
  3. Na barra de navegação à esquerda, clique em "Shared access signature".
  4. 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.
  5. 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: SAS Token

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:

  1. 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 em Admin e depois Connections.
  2. 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.
  1. Clique em Test e veja se rolou uma mensagem verdinha lá em cima, lembrando que os outros parâmetros pode deixar em branco mesmo.
  2. 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.

  1. Faça login no Databricks, pode se quiser ir no portal da Azure, clicar no recurso do Databricks e clicar em "Lauch Workspace".
  2. Lá no canto superior direito tem seu email, clicando nele vai abrir a opção user settings, clicando nela aparece um botão azul chamado Generate 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

Criação SQL Warehouse

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:

Conexão SQL Warehouse

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:

  1. 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 em Admin e depois Connections.
  2. 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
  1. Clique em Test e veja se rolou uma mensagem verdinha lá em cima, lembrando que os outros parâmetros pode deixar em branco mesmo.
  2. Salve a conexão.

Conexão SQL Warehouse

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.

  1. 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 em Admin e depois Connections.
  2. 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/"}
  1. 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.