Skip to content

Conecte os dados do Facebook Ads ao seu banco de dados Postgres com Airbyte e Mage.

License

Notifications You must be signed in to change notification settings

guaradata/etl-mds-marketing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ETL && Modern Data Stack (MDS)

Introdução

Afinal, o que é Modern Data Stack (MDS)? O termo pode ser traduzido para o português como "Pilha de Dados Moderna" ou "Arquitetura de Dados Moderna". O MDS refere-se ao conjunto de ferramentas e tecnologias utilizadas para o processamento, armazenamento e análise de dados, incluindo uma variedade de softwares de código aberto e proprietários, como o Apache Airflow e o Databricks. O conceito de MDS traz consigo a ideia de uma mudança na arquitetura de dados, adotando ferramentas mais flexíveis e escaláveis à medida que o volume de dados cresce.

Objetivo

Utilizar ferramentas modernas que compõem arquiteturas de dados atuais para extrair dados de mídia do Facebook Ads (Meta Ads), seguindo as referências disponíveis no moderndatastack.xyz, página de referência na área.

Considerações

Este repositório foca principalmente na criação da arquitetura de dados, não em como utilizar as ferramentas que a compõem. Por isso, assume-se que você já tenha alguma familiaridade com as ferramentas utilizadas. Se precisar de ajuda, aqui estão algumas sugestões de vídeos que explicam mais sobre elas:

  • Visão geral sobre o Mage.Ai;
  • Configurando uma conexão com o Airbyte;

A documentação das ferramentas mencionadas anteriormente são bem completas e vão te ajudar a entender melhor as funcionalidades de cada uma, a documentação do Mage.AI encontra-se nesse link e a documentação do Airbyte pode ser acessada por aqui.

Ferramentas

Base

MDS

Utilitários

Requisitos

Configuração do ambiente (Windows)

A seguintes etapas consideram que o Docker e o Git estejam previamente configurados na máquina na qual se quer criar este ambiente.

Configurando o Airbyte

Recentemente, o Airbyte introduziu uma nova opção para utilizar a ferramenta localmente, chamada abctl. Essa ferramenta é responsável por criar um cluster Kubernetes localmente, utilizando o Kind.

São muitos termos, mas a implementação é relativamente simples:

Passo a passo

  1. Crie uma pasta "mds-mkt" para o projeto;

  2. Abra o Docker Desktop;

  3. Baixe a última versão do executável para Windows do abctl;

  4. Extraía o arquivo "abctl.exe" para a pasta criada anteriormente;

  5. Abra o terminal e navegue até a pasta do projeto;

  6. Execute o seguinte comando:

.\abctl.exe local install
  1. Após a finalização do comando anterior, execute:
.\abctl.exe local credentials
  1. Guarde os dados que serão exibidos no terminal, serão utilizados para acessar a interface do Airbyte;
  2. Acesse o http://localhost:8000.
  3. Prossiga com as configurações iniciais de login;
  4. Para fazer login na interface Web você utilizará o e-mail cadastrado na etapa anterior e a senha de acesso é a mesma que foi salva na etapa 8;

Neste ponto, temos o cluster do Airbyte funcionando localmente. A próxima etapa consiste em configurar a conexão com o Meta Ads. Para isso, é necessário criar um aplicativo na seção de desenvolvimento do Meta. Se você precisar criar toda a estrutura do zero, pode seguir este tutorial.

Dica: Se a conta de anúncios tiver um volume muito grande de informações coloque uma data de inicio mais próxima da data na qual você está testando esse ambiente (15 dias, ou menos, a partir da data atual), para que seja possível validar toda a configuração antes de testar com um volume de dados maior. O local da configuração está exposto na Imagem 1.

Data de início do conector do Facebook Ads

Imagem - 1: Localização da configuração de data de início da extração de dados. Fonte: Autoria própria.

Configurando o Mage.IA

A estrutura do Mage.IA foi conteinerizada junto ao Postgres, e um proxy reverso com NGINX foi adicionado como uma camada adicional de segurança.

Passo a passo

  1. Clone este repositório dentro da pasta "mds-mkt" com o seguinte comando:
git clone https://github.com/guaradata/etl-mds-marketing.git
  1. Abra a pasta do projeto clonado;

  2. Renomeie o arquivo "env.example.txt" para ".env"

  3. Acesse o arquivo "io_config.yaml" que está no diretório ./mage/modern-data-stack, a partir da raiz do projeto que foi clonado;

  4. Altere a linha a variável de ambiente "POSTGRES_HOST" para o endereço IPv4 da sua máquina (como saber meu IPv4?);

  5. Abra o terminal e navegue até a pasta do projeto clonado;

  6. Inicie os contêineres com o comando:

docker-compose up --build
  1. Acesse a interface do Mage.IA;

Configuração das ferramentas

Após subir o contêiner do Airbyte e do Mage.IA com sucesso, vamos conectar o Facebook Ads (fonte de dados) ao Postgres (destino).

Conectando o Facebook Ads ao Postgres com Airbyte

  1. Conecte a fonte do Facebook Ads ao Postgres (como conectar o Airbyte no Postgres?). Adicione os mesmos valores das variáveis de ambiente que foram configuradas no arquivo ".env" na configuração de conexão, como mostra a Imagem 2. Não esqueca de adicionar o IPv4 da sua máquina no campo "Host" (indicado com a seta amarela na Imagem 2), que foi obtido no passo 5 da configuração do Mage.IA;

Imagem - 2: Configurações da conexão com o Postgres que devem ter os mesmos valores que estão no arquivo ".env". Fonte: Autoria própria.

  1. A próxima etapa consiste em selecionar um stream do Facebook Ads, o stream que vamos trabalhar aqui é o "ads_insights_platform_and_device", como mostra a Imagem 3;

Imagem - 3: Seleção da stream "ads_insights_platform_and_device" dentro da conexão do Facebook Ads com o Postgres. Fonte: Autoria própria.

  1. Finalize a configuração da conexão e aguarde a sincronização dos dados do Facebook Ads com o Postgres.

Pipeline de dados com Mage.IA

Com a ingestão dos dados do Facebook Ads concluída, vamos testar a pipeline de dados no Mage.IA, que criará uma nova tabela a partir da tabela "ads_insights_platform_and_device".

Teste da pipeline

  1. Acesse a pipeline "mds_facebook" dentro da interface do Mage.IA;

  2. Rode o primeiro bloco de código para avaliar a conexão com o banco de dados Postgres, se caso houver falhas volte e avalie os passos da configuração conexão nesta seção;

  3. Com o Postgres conectado ao Mage.IA é possível seguir e executar todos os outros blocos, o bloco final irá te mostrar a tabela final criada.

Sincronize a ingestão e a pipeline de dados

  1. Agende a execução da conexão criada no Airbyte para que esteja sincronizada com o cronograma da pipeline de dados "mds_facebook". Isso é importante porque o Mage.IA deve executar a pipeline apenas após o Airbyte concluir a atualização da tabela "ads_insights_platform_and_device".