Crie um pipeline ELT para dados de estatísticas de marketing
Este tutorial mostra como configurar um fluxo de trabalho ELT que extrai, carrega e transforma dados de estatísticas de marketing no BigQuery.
Um fluxo de trabalho de ELT típico extrai periodicamente novos dados de clientes da sua origem de dados e carrega-os no BigQuery. Os dados não estruturados são, em seguida, processados em métricas significativas. Neste tutorial, vai criar um fluxo de trabalho de ELT configurando uma transferência de dados de estatísticas de marketing através do Serviço de transferência de dados do BigQuery. Em seguida, agenda o Dataform para executar transformações periódicas nos dados.
Neste tutorial, usa o Google Ads como origem de dados, mas pode usar qualquer uma das origens de dados suportadas pelo 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
) Aceda à página Transferências de dados na Google Cloud consola.
Clique em
Criar transferência.Na secção Tipo de origem, para Origem, escolha Google Ads.
Na secção Detalhes da origem de dados:
- Para o ID de cliente, introduza o 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 na
transformação do relatório do Google Ads.
- Para Atualizar janela, introduza
5
.
- Para Atualizar janela, introduza
Na secção Definições de destino, para Conjunto de dados, selecione o conjunto de dados que criou para armazenar os seus dados.
Na secção Nome da configuração da transferência, para Nome a apresentar, introduza
Marketing tutorial
.Na secção Opções de programação:
- Para Frequência de repetição, selecione Dias.
- Para At, introduza
08:00
.
Clique em Guardar.
DATASET
: o nome do conjunto de dados que criou para armazenar a tabela transferidaCUSTOMER_ID
: o seu ID de cliente do Google Ads.DATASET
: o nome do conjunto de dados que criou para armazenar a tabela transferidaCUSTOMER_ID
: o seu ID de cliente do Google Ads.Na Google Cloud consola, aceda à página Dataform.
Clique em
Criar repositório.Na página Criar repositório, faça o seguinte:
- No campo ID do repositório, introduza
marketing-tutorial-repository
. - Na lista Região, selecione uma região.
- Clique em Criar.
- No campo ID do repositório, introduza
Na Google Cloud consola, aceda à 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 ID do espaço de trabalho, introduza
marketing-tutorial-workspace
. - Clique em Criar.
É apresentada a página do espaço de trabalho de desenvolvimento.
- No campo ID do espaço de trabalho, introduza
Clique em Inicializar espaço de trabalho.
Na Google Cloud consola, aceda à página Dataform.
Selecione
marketing-tutorial-repository
.Selecione
marketing-tutorial-workspace
.No painel Ficheiros, junto a
definitions/
, clique no menu Mais.Clique em Criar ficheiro.
No painel Criar novo ficheiro, faça o seguinte:
- No campo Adicionar um caminho do ficheiro, após
definitions/
, introduza o nomedefinitions/googleads-declaration.sqlx
. - Clique em Criar ficheiro.
- No campo Adicionar um caminho do ficheiro, após
- No espaço de trabalho de desenvolvimento, no painel Ficheiros, clique no ficheiro SQLX para a declaração da origem de dados.
No ficheiro, introduza o seguinte fragmento do código:
config { type: "declaration", database: "PROJECT_ID", schema: "DATASET", name: "ads_Campaign_CUSTOMER_ID", }
- No painel Ficheiros, junto a
definitions/
, clique no menu Mais e, de seguida, selecione Criar ficheiro. - No campo Adicionar um caminho de ficheiro, introduza
definitions/daily_performance.sqlx
. - Clique em Criar ficheiro.
- No painel Ficheiros, expanda o diretório
definitions/
. Selecione
daily_performance.sqlx
e, de seguida, introduza 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 1 alteração. - No painel Novo commit, introduza uma descrição do commit no campo Adicionar uma mensagem de commit.
- Clique em Confirmar todas as alterações.
- No espaço de trabalho
marketing-tutorial-workspace
, clique em Enviar para ramo predefinido. Na Google Cloud consola, aceda à página Dataform.
Selecione
marketing-tutorial-repository
.Clique no separador Lançamentos e agendamento.
Clique em Criar versão de produção.
No painel Criar configuração de lançamento, configure as seguintes definições:
- No campo ID da versão, introduza
transformations
. - No campo Git commitish, mantenha o valor predefinido
main
. - Na secção Frequência da programação, selecione A pedido.
- No campo ID da versão, introduza
Clique em Criar.
Na Google Cloud consola, aceda à página Dataform.
Selecione
marketing-tutorial-repository
.Clique no separador Lançamentos e agendamento.
Na secçã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, introduza
transformations
.No menu Configuração de lançamento, selecione
transformations
.Em Autenticação, selecione Executar com credenciais do utilizador
Na secção Frequência da programação, faça o seguinte:
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 etiquetas.
No campo Selecionar etiquetas a executar, selecione Diariamente.
Clique em Criar.
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e selecione
dataform
.Clique no menu
Ações e, de seguida, selecione Eliminar.Na caixa de diálogo Eliminar conjunto de dados, introduza
delete
no campo e, de seguida, clique em Eliminar.Na Google Cloud consola, aceda à página Dataform.
Clique em
quickstart-repository
.Clique no separador Lançamento e agendamento.
Na secção Configurações de lançamento, clique no menu
Mais junto à configuraçãoproduction
e, de seguida, clique em Eliminar.Na secção Configurações do fluxo de trabalho, clique no menu
Mais junto à configuraçãotransformations
e, de seguida, clique em Eliminar.No separador Espaços de trabalho de desenvolvimento, clique no menu Mais
junto aquickstart-workspace
e, de seguida, selecione Eliminar.Para confirmar, clique em Eliminar.
Na Google Cloud consola, aceda à página Dataform.
Em
quickstart-repository
, clique no menu Mais e, de seguida, selecione Eliminar.Na janela Eliminar repositório, introduza o nome do repositório para confirmar a eliminação.
Para confirmar, clique em Eliminar.
Funções necessárias
Para receber as autorizações de que precisa para concluir este tutorial, peça ao seu administrador para lhe conceder as seguintes funções de IAM no projeto:
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Agende transferências de dados recorrentes
Para manter o BigQuery atualizado com os dados de marketing mais recentes da sua origem de dados, configure transferências de dados recorrentes através do Serviço de transferência de dados do BigQuery para extrair e carregar dados com base num horário.
Neste tutorial, usa o Google Ads como exemplo de origem de dados. Para ver uma lista completa das origens de dados suportadas pelo Serviço de transferência de dados do BigQuery, consulte o artigo Origens de dados compatíveis.
Depois de guardar a configuração, o Serviço de transferência de dados do BigQuery inicia a transferência de dados. Com base nas definições na configuração de transferência, a transferência de dados é executada uma vez por dia às 08:00 UTC e extrai dados do Google Ads dos últimos cinco dias.
Pode monitorizar tarefas de transferência em curso para verificar o estado de cada transferência de dados.
Consultar dados de tabelas
Quando os dados são transferidos para o BigQuery, são gravados em tabelas particionadas por tempo de ingestão. Para mais informações, consulte o artigo Introdução às tabelas particionadas.
Se consultar as tabelas diretamente em vez de usar as vistas geradas automaticamente, tem de usar a pseudocoluna _PARTITIONTIME
na consulta. Para mais informações,
consulte o artigo Consultar tabelas particionadas.
As secções seguintes mostram exemplos de consultas que pode usar para examinar os seus dados transferidos.
Desempenho da campanha
A consulta de exemplo seguinte analisa o desempenho da campanha do Google Ads nos últimos 30 dias.
Consola
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 o seguinte:
Contagem de palavras-chave
A consulta de exemplo seguinte analisa as palavras-chave por campanha, grupo de anúncios e estado da palavra-chave. Esta consulta usa a função KeywordMatchType
. Os tipos de correspondência de palavras-chave
ajudam a controlar as pesquisas que podem acionar o seu anúncio. Para mais informações sobre as opções de correspondência de palavras-chave, consulte o artigo Acerca das opções de correspondência de palavras-chave.
Consola
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 o seguinte:
Crie 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 os dados de estatísticas de marketing. O Dataform permite-lhe agendar transformações de dados regulares e definir estas 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 o seu código de transformação.
O repositório marketing-tutorial-repository
aparece agora na lista de repositórios do Dataform.
Para mais informações sobre repositórios do Dataform, consulte o artigo Acerca dos repositórios do Dataform.
Crie e inicialize um espaço de trabalho de desenvolvimento do Dataform
Crie um espaço de trabalho de desenvolvimento do Dataform para poder trabalhar no código de transformação no seu repositório antes de confirmar e enviar as alterações para o repositório.
O espaço de trabalho de marketing-tutorial-workspace
desenvolvimento aparece agora no seu repositório marketing-tutorial-repository
no separador Espaços de trabalho de desenvolvimento, juntamente com dois ficheiros de exemplo no diretório definitions
denominado *first_view.sqlx
e *second_view.sqlx
.
Para mais informações sobre os espaços de trabalho de desenvolvimento do Dataform, consulte o artigo Vista geral dos espaços de trabalho de desenvolvimento.
Declare a sua tabela do Google Ads como origem da tabela
Associe a tabela do Google Ads recém-transferida ao Dataform declarando-a como uma origem de dados através dos seguintes passos:
Crie um ficheiro SQLX para a declaração da origem de dados
No Dataform, declara um destino da origem de dados criando um ficheiro SQLX no diretório definitions/
:
Declare uma origem de dados
Edite o definitions/googleads-declaration.sqlx
para declarar uma tabela do Google Ads transferida como uma origem de dados. Este exemplo declara a tabela ads_Campaign
como uma origem de dados:
Defina a transformação
Defina as transformações de dados criando um ficheiro SQLX no diretório definitions/
Neste tutorial, cria uma transformação diária que agrega métricas como cliques, impressões, custos e conversões através de um ficheiro denominado daily_performance.sqlx
.
Crie o ficheiro SQLX de transformação
Defina o ficheiro SQLX de transformação
Confirme e envie as alterações
Depois de fazer as alterações no espaço de trabalho de desenvolvimento, pode confirmar e enviar estas alterações para o repositório seguindo estes passos:
Depois de as alterações serem enviadas com êxito para o repositório, é apresentada a mensagem O Workspace está atualizado.
Agende a transformação de dados
Depois de definir o ficheiro de transformação de dados, agende as transformações de dados.
Crie um lançamento de produção
Um lançamento de produção no Dataform garante que o seu ambiente é atualizado de forma consistente com os resultados das suas transformações de dados. Os passos seguintes mostram como especificar a ramificação main
do repositório marketing-tutorial-repository
para armazenar as transformações de dados:
Crie uma configuração do fluxo de trabalho
Depois de criar um lançamento de produção, pode criar uma configuração de fluxo de trabalho que execute as transformações de dados num horário especificado no seu repositório. Os passos seguintes mostram como agendar transformações diárias a partir do ficheiro transformations
:
A configuração do fluxo de trabalho que criou executa o resultado da compilação mais recente
criado pela configuração de lançamento transformations
.
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
Elimine o conjunto de dados criado no BigQuery
Para evitar incorrer em custos por recursos do BigQuery, elimine o conjunto de dados denominado dataform
.
Elimine o espaço de trabalho de desenvolvimento e as configurações do Dataform
A criação do espaço de trabalho de desenvolvimento do Dataform não acarreta custos, mas para eliminar o espaço de trabalho de desenvolvimento, pode seguir estes passos:
Elimine o repositório do Dataform
A criação de um repositório do Dataform não incorre em custos, mas pode seguir estes passos para eliminar o repositório: