Criar um pipeline ELT para dados de análise de marketing
Neste tutorial, você vai aprender a configurar um fluxo de trabalho de ELT que extrai, carrega e transforma dados de análise de marketing no BigQuery.
Um fluxo de trabalho de ELT típico extrai periodicamente novos dados de clientes da sua fonte de dados e os carrega no BigQuery. Os dados não estruturados são processados em métricas significativas. Neste tutorial, você vai criar um fluxo de trabalho de ELT configurando uma transferência de dados de análise de marketing usando o serviço de transferência de dados do BigQuery. Em seguida, programe o Dataform para executar transformações periódicas nos dados.
Neste tutorial, você usa o Google Ads como fonte de dados, mas pode usar qualquer uma das fontes de dados compatíveis com o serviço de transferência de dados do BigQuery.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Administrador do BigQuery (
roles/bigquery.admin
) -
Administrador do Dataform (
roles/dataform.admin
) Acesse a página "Transferências de dados" no console Google Cloud .
Clique em
Criar transferência.Na seção Tipo de origem, em Origem, escolha Google Ads.
Na seção Detalhes da fonte de dados, faça o seguinte:
- Em ID de cliente, insira seu ID de cliente do Google Ads:
- Em Tipo de relatório, selecione Padrão. O relatório padrão inclui o conjunto padrão de relatórios e campos, conforme detalhado em Transformação de relatórios do Google Ads.
- Em Atualizar janela, insira
5
.
- Em Atualizar janela, insira
Na seção Configurações de destino, em Conjunto de dados, selecione o conjunto de dados que você criou para armazenar seus dados.
No campo Nome de exibição da seção Nome da configuração de transferência, insira
Marketing tutorial
.Na seção Opções de programação, faça o seguinte:
- Em Frequência de repetição, selecione Dias.
- Em Em, insira
08:00
.
Clique em Salvar.
DATASET
: o nome do conjunto de dados que você criou para armazenar a tabela transferida.CUSTOMER_ID
: o ID de cliente do Google Ads.DATASET
: o nome do conjunto de dados que você criou para armazenar a tabela transferida.CUSTOMER_ID
: o ID de cliente do Google Ads.No Google Cloud console, acesse a página Dataform.
Clique em
Criar repositório.Na página Criar repositório, faça o seguinte:
- No campo Código do repositório, insira
marketing-tutorial-repository
. - Na lista Região, selecione uma região.
- Clique em Criar.
- No campo Código do repositório, insira
No Google Cloud console, acesse a página Dataform.
Clique em
marketing-tutorial-repository
.Clique em
Criar espaço de trabalho de desenvolvimento.Na janela Criar espaço de trabalho de desenvolvimento, faça o seguinte:
- No campo Código do espaço de trabalho, digite
marketing-tutorial-workspace
. - Clique em Criar.
A página do espaço de trabalho de desenvolvimento é exibida.
- No campo Código do espaço de trabalho, digite
Clique em Inicializar espaço de trabalho.
No Google Cloud console, acesse a página Dataform.
Selecione
marketing-tutorial-repository
.Selecione
marketing-tutorial-workspace
.No painel Arquivos, ao lado de
definitions/
, clique no menu Mais.Selecione Criar arquivo.
No painel Criar novo arquivo, faça o seguinte:
- No campo Adicionar um caminho de arquivo, depois de
definitions/
, insira o nomedefinitions/googleads-declaration.sqlx
. - Selecione Criar arquivo.
- No campo Adicionar um caminho de arquivo, depois de
- No espaço de trabalho de desenvolvimento, no painel Arquivos, clique no arquivo SQLX para declaração da fonte de dados.
No arquivo, digite este snippet de código:
config { type: "declaration", database: "PROJECT_ID", schema: "DATASET", name: "ads_Campaign_CUSTOMER_ID", }
- No painel Arquivos, ao lado de
definitions/
, clique no menu Mais e selecione Criar arquivo. - No campo Adicionar um caminho de arquivo, insira
definitions/daily_performance.sqlx
. - Selecione Criar arquivo.
- No painel Arquivos, abra o diretório
definitions/
. Selecione
daily_performance.sqlx
e insira a seguinte consulta:config { type: "table", schema: "reporting", tags: ["daily", "google_ads"] } SELECT date, campaign_id, campaign_name, SUM(clicks) AS total_clicks FROM `ads_Campaign_CUSTOMER_ID` GROUP BY date, campaign_id, campaign_name ORDER BY date DESC
- No espaço de trabalho
marketing-tutorial-workspace
, clique em Confirmar uma mudança. - No painel Novo commit, insira uma descrição no campo Adicionar uma mensagem de commit.
- Clique em Confirmar todas as mudanças.
- No espaço de trabalho
marketing-tutorial-workspace
, clique em Enviar para a ramificação padrão. No Google Cloud console, acesse a página Dataform.
Selecione
marketing-tutorial-repository
.Clique na guia Versões e programação.
Clique em Criar versão de produção.
No painel Criar configuração de versão, defina as seguintes configurações:
- No campo ID da versão, digite
transformations
. - No campo Commitish do Git, deixe o valor padrão
main
. - Na seção Frequência de programação, selecione Sob demanda.
- No campo ID da versão, digite
Clique em Criar.
No Google Cloud console, acesse a página Dataform.
Selecione
marketing-tutorial-repository
.Clique na guia Versões e programação.
Na seção Configurações do fluxo de trabalho, clique em Criar.
No painel Criar configuração do fluxo de trabalho, no campo ID da configuração, digite
transformations
.No menu Configuração da versão, selecione
transformations
.Em Autenticação, selecione Executar com as credenciais do usuário.
Na seção Frequência de programação, realize estas ações:
1. Select **Repeat**. 1. For **Repeats**, select `Daily`. 1. For **At time**, enter `10:00 AM`. 1. For **Timezone**, select `Coordinated Universal Time (UTC)`.
Clique em Seleção de tags.
No campo Selecionar tags a serem executadas, selecione Diário.
Clique em Criar.
No console do Google Cloud , acesse a página BigQuery.
No painel Explorer, expanda o projeto e selecione
dataform
.Clique no menu
Ações e selecione Excluir.Na caixa de diálogo Excluir conjunto de dados, digite
delete
no campo e clique em Excluir.No Google Cloud console, acesse a página Dataform.
Clique em
quickstart-repository
.Clique na guia Lançamento e programação.
Na seção Configurações da versão, clique no menu
Mais ao lado da configuraçãoproduction
e clique em Excluir.Na seção Configurações do fluxo de trabalho, clique no menu
Mais ao lado da configuraçãotransformations
e clique em Excluir.Na guia Espaços de trabalho de desenvolvimento, clique no menu
Mais ao lado dequickstart-workspace
e selecione Excluir.Para confirmar, clique em Excluir.
No Google Cloud console, acesse a página Dataform.
Em
quickstart-repository
, clique no menu Mais e selecione Excluir.Na janela Excluir repositório, insira o nome do repositório para confirmar a exclusão.
Para confirmar, clique em Excluir.
Funções exigidas
Para conseguir as permissões necessárias para concluir este tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Programar transferências de dados recorrentes
Para manter o BigQuery atualizado com os dados de marketing mais recentes da sua fonte, configure transferências recorrentes usando o serviço de transferência de dados do BigQuery para extrair e carregar dados de acordo com uma programação.
Neste tutorial, usamos o Google Ads como exemplo de fonte de dados. Para conferir uma lista completa das fontes de dados compatíveis com o serviço de transferência de dados do BigQuery, consulte Fontes de dados compatíveis.
Depois de salvar a configuração, o serviço de transferência de dados do BigQuery inicia a transferência de dados. Com base nas configurações da transferência, ela é executada uma vez por dia às 8h UTC e extrai dados do Google Ads dos últimos cinco dias.
É possível monitorar os jobs de transferência em andamento para verificar o status de cada transferência de dados.
Consultar os dados da tabela
Quando os dados são transferidos para o BigQuery, eles são gravados em tabelas particionadas por tempo de processamento. Para mais informações, consulte Introdução às tabelas particionadas.
Use a pseudocoluna _PARTITIONTIME
para consultar suas tabelas diretamente em vez de usar visualizações geradas automaticamente. Para mais informações, veja Como consultar tabelas particionadas.
As seções a seguir mostram exemplos de consultas que podem ser usadas para examinar os dados transferidos.
Desempenho da campanha
A consulta de amostra a seguir analisa o desempenho da campanha do Google Ads nos últimos 30 dias.
Console
SELECT c.customer_id, c.campaign_name, c.campaign_status, SUM(cs.metrics_impressions) AS Impressions, SUM(cs.metrics_interactions) AS Interactions, (SUM(cs.metrics_cost_micros) / 1000000) AS Cost FROM `DATASET.ads_Campaign_CUSTOMER_ID` c LEFT JOIN `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs ON (c.campaign_id = cs.campaign_id AND cs._DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) WHERE c._DATA_DATE = c._LATEST_DATE GROUP BY 1, 2, 3 ORDER BY Impressions DESC
bq
bq query --use_legacy_sql=false ' SELECT c.customer_id, c.campaign_name, c.campaign_status, SUM(cs.metrics_impressions) AS Impressions, SUM(cs.metrics_interactions) AS Interactions, (SUM(cs.metrics_cost_micros) / 1000000) AS Cost FROM `DATASET.ads_Campaign_CUSTOMER_ID` c LEFT JOIN `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs ON (c.campaign_id = cs.campaign_id AND cs._DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) WHERE c._DATA_DATE = c._LATEST_DATE GROUP BY 1, 2, 3 ORDER BY Impressions DESC'
Substitua:
Contagem de palavras-chave
Na consulta de amostra a seguir, analisamos as palavras-chave por
campanha, grupo de anúncios e status da palavra-chave. Nesta consulta, a função KeywordMatchType
é usada. Com os tipos de correspondência de palavras-chave, você controla quais pesquisas podem acionar o anúncio. Para mais informações sobre as opções de correspondência de palavras-chave, consulte Sobre opções de correspondência de palavras-chave.
Console
SELECT c.campaign_status AS CampaignStatus, a.ad_group_status AS AdGroupStatus, k.ad_group_criterion_status AS KeywordStatus, k.ad_group_criterion_keyword_match_type AS KeywordMatchType, COUNT(*) AS count FROM `DATASET.ads_Keyword_CUSTOMER_ID` k JOIN `DATASET.ads_Campaign_CUSTOMER_ID` c ON (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE) JOIN `DATASET.ads_AdGroup_CUSTOMER_ID` a ON (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE) WHERE k._DATA_DATE = k._LATEST_DATE GROUP BY 1, 2, 3, 4
bq
bq query --use_legacy_sql=false ' SELECT c.campaign_status AS CampaignStatus, a.ad_group_status AS AdGroupStatus, k.ad_group_criterion_status AS KeywordStatus, k.ad_group_criterion_keyword_match_type AS KeywordMatchType, COUNT(*) AS count FROM `DATASET.ads_Keyword_CUSTOMER_ID` k JOIN `DATASET.ads_Campaign_CUSTOMER_ID` c ON (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE) JOIN `DATASET.ads_AdGroup_CUSTOMER_ID` a ON (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE) WHERE k._DATA_DATE = k._LATEST_DATE GROUP BY 1, 2, 3, 4'
Substitua:
Criar um repositório do Dataform
Depois de criar a configuração de transferência de dados para transferir os dados mais recentes do Google Ads, configure o Dataform para transformar regularmente seus dados de análise de marketing. Com o Dataform, é possível programar transformações de dados regulares e definir essas transformações com SQL enquanto colabora com outros analistas de dados.
Crie um repositório do Dataform para armazenar as consultas SQLX que compõem seu código de transformação.
O repositório marketing-tutorial-repository
agora aparece na sua lista de repositórios do Dataform.
Para mais informações sobre repositórios do Dataform, consulte Sobre os repositórios do Dataform.
criar e inicializar um espaço de trabalho de desenvolvimento do Dataform
Crie um espaço de trabalho de desenvolvimento do Dataform para trabalhar no código de transformação no repositório antes de fazer commit e enviar as mudanças para o repositório.
O espaço de trabalho de desenvolvimento marketing-tutorial-workspace
agora aparece no repositório marketing-tutorial-repository
na guia Espaços de trabalho de desenvolvimento, junto com dois arquivos de exemplo no diretório definitions
chamados *first_view.sqlx
e *second_view.sqlx
.
Para mais informações sobre os espaços de trabalho de desenvolvimento do Dataform, consulte Visão geral dos espaços de trabalho de desenvolvimento.
Declarar sua tabela do Google Ads como origem da tabela
Conecte sua tabela do Google Ads recém-transferida ao Dataform declarando-a como uma fonte de dados seguindo estas etapas:
Criar um arquivo SQLX para declaração de fonte de dados
No Dataform, você declara um destino de fonte de dados criando
um arquivo SQLX no diretório definitions/
:
Declarar uma fonte de dados
Edite o definitions/googleads-declaration.sqlx
para declarar uma tabela transferida do Google Ads como uma fonte de dados. Este exemplo declara a tabela ads_Campaign
como uma fonte de dados:
Definir sua transformação
Defina suas transformações de dados criando um arquivo SQLX no diretório definitions/
. Neste tutorial, você vai criar uma transformação diária que agrega métricas como cliques, impressões, custos e conversões usando um arquivo chamado daily_performance.sqlx
.
Criar o arquivo SQLX de transformação
Definir o arquivo SQLX de transformação
Confirmar e enviar suas mudanças
Depois de fazer as mudanças no espaço de trabalho de desenvolvimento, siga estas etapas para confirmar e enviar as mudanças ao repositório:
Depois que as mudanças forem enviadas ao repositório, a mensagem O espaço de trabalho está atualizado vai aparecer.
Programe a transformação de dados
Depois de definir o arquivo de transformação de dados, programe as transformações.
Criar uma versão de produção
Uma versão de produção no Dataform garante que seu ambiente seja
atualizado de forma consistente com os resultados das transformações de dados. As etapas a seguir mostram como especificar a ramificação main
do repositório marketing-tutorial-repository
para armazenar suas transformações de dados:
Criar uma configuração de fluxo de trabalho
Depois de criar uma versão de produção, é possível criar uma configuração de fluxo de trabalho
que executa as transformações de dados em uma programação especificada
no seu repositório. As etapas a seguir mostram como programar transformações diárias do arquivo transformations
:
A configuração de fluxo de trabalho que você criou executa todo o resultado da compilação mais recente criado pela configuração de lançamento transformations
.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Excluir o conjunto de dados criado no BigQuery
Para evitar cobranças por recursos do BigQuery, exclua o conjunto de dados chamado dataform
.
Excluir o espaço de trabalho de desenvolvimento e as configurações do Dataform
A criação de espaços de trabalho de desenvolvimento do Dataform não gera custos, mas para excluir o espaço de trabalho de desenvolvimento, siga estas etapas:
Excluir o repositório do Dataform
A criação de repositórios do Dataform não gera custos, mas para excluir o repositório, siga estas etapas: