Crear un flujo de procesamiento ELT para datos de analíticas de marketing
En este tutorial se explica cómo configurar un flujo de trabajo de extracción, carga y transformación (ELT) que extrae, carga y transforma datos de analíticas de marketing en BigQuery.
En un flujo de trabajo de ELT típico, se extraen periódicamente nuevos datos de clientes de tu fuente de datos y se cargan en BigQuery. Los datos sin estructurar se procesan para obtener métricas útiles. En este tutorial, crearás un flujo de trabajo de ELT configurando una transferencia de datos de analíticas de marketing mediante BigQuery Data Transfer Service. A continuación, programa Dataform para que ejecute transformaciones periódicas en los datos.
En este tutorial, se usa Google Ads como fuente de datos, pero puede usar cualquiera de las fuentes de datos compatibles con BigQuery Data Transfer Service.
Antes de empezar
- 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 de BigQuery (
roles/bigquery.admin
) -
Administrador de Dataform (
roles/dataform.admin
) Ve a la página Transferencias de datos de la Google Cloud consola.
Haz clic en
Crear transferencia.En la sección Tipo de fuente, en Fuente, elige Google Ads.
En la sección Detalles de la fuente de datos:
- En ID de cliente, introduce tu ID de cliente de Google Ads.
- En Tipo de informe, selecciona Estándar. El informe estándar incluye el conjunto de informes y campos estándar que se detallan en el artículo Transformación de informes de Google Ads.
- En Periodo de actualización, introduce
5
.
- En Periodo de actualización, introduce
En la sección Configuración de destino, en Conjunto de datos, seleccione el conjunto de datos que ha creado para almacenar sus datos.
En la sección Nombre de la configuración de transferencia, en Nombre visible, introduzca
Marketing tutorial
.En la sección Opciones de programación:
- En Frecuencia de repetición, selecciona Días.
- En En, escribe
08:00
.
Haz clic en Guardar.
DATASET
: el nombre del conjunto de datos que has creado para almacenar la tabla transferidaCUSTOMER_ID
: tu ID de cliente de Google Ads.DATASET
: el nombre del conjunto de datos que has creado para almacenar la tabla transferidaCUSTOMER_ID
: tu ID de cliente de Google Ads.En la Google Cloud consola, ve a la página Dataform.
Haz clic en
Crear repositorio.En la página Crear repositorio, haz lo siguiente:
- En el campo Repository ID (ID de repositorio), introduce
marketing-tutorial-repository
. - En la lista Región, selecciona una región.
- Haz clic en Crear.
- En el campo Repository ID (ID de repositorio), introduce
En la Google Cloud consola, ve a la página Dataform.
Haz clic en
marketing-tutorial-repository
.Haz clic en
Crear espacio de trabajo de desarrollo.En la ventana Crear espacio de trabajo de desarrollo, haga lo siguiente:
- En el campo ID de espacio de trabajo, introduce
marketing-tutorial-workspace
. - Haz clic en Crear.
Aparecerá la página del espacio de trabajo de desarrollo.
- En el campo ID de espacio de trabajo, introduce
Haz clic en Inicializar espacio de trabajo.
En la Google Cloud consola, ve a la página Dataform.
Selecciona
marketing-tutorial-repository
.Selecciona
marketing-tutorial-workspace
.En el panel Archivos, junto a
definitions/
, haz clic en el menú Más.Haz clic en Crear archivo.
En el panel Crear archivo, haz lo siguiente:
- En el campo Añadir una ruta de archivo, después de
definitions/
, introduce el nombredefinitions/googleads-declaration.sqlx
. - Haz clic en Crear archivo.
- En el campo Añadir una ruta de archivo, después de
- En el espacio de trabajo de desarrollo, en el panel Archivos, haz clic en el archivo SQLX para la declaración de la fuente de datos.
En el archivo, introduce el siguiente fragmento de código:
config { type: "declaration", database: "PROJECT_ID", schema: "DATASET", name: "ads_Campaign_CUSTOMER_ID", }
- En el panel Archivos, junto a
definitions/
, haz clic en el menú Más y, a continuación, selecciona Crear archivo. - En el campo Añadir una ruta de archivo, introduce
definitions/daily_performance.sqlx
. - Haz clic en Crear archivo.
- En el panel Archivos, despliega el directorio
definitions/
. Selecciona
daily_performance.sqlx
y, a continuación, introduce la siguiente 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
- En el espacio de trabajo
marketing-tutorial-workspace
, haz clic en Confirmar 1 cambio. - En el panel Nuevo commit, introduce una descripción del commit en el campo Añadir un mensaje de commit.
- Haz clic en Confirmar todos los cambios.
- En el espacio de trabajo
marketing-tutorial-workspace
, haz clic en Enviar a la rama predeterminada. En la Google Cloud consola, ve a la página Dataform.
Selecciona
marketing-tutorial-repository
.Haz clic en la pestaña Lanzamientos y programación.
Haz clic en Crear versión de producción.
En el panel Crear configuración de lanzamiento, configura los siguientes ajustes:
- En el campo Release ID (ID de lanzamiento), introduce
transformations
. - En el campo Git commitish, deja el valor predeterminado
main
. - En la sección Frecuencia de programación, seleccione Bajo demanda.
- En el campo Release ID (ID de lanzamiento), introduce
Haz clic en Crear.
En la Google Cloud consola, ve a la página Dataform.
Selecciona
marketing-tutorial-repository
.Haz clic en la pestaña Lanzamientos y programación.
En la sección Configuraciones de flujo de trabajo, haz clic en Crear.
En el panel Crear configuración de flujo de trabajo, en el campo ID de configuración, introduce
transformations
.En el menú Configuración de la versión, selecciona
transformations
.En Autenticación, selecciona Ejecutar con credenciales de usuario.
En la sección Frecuencia de la programación, haga lo siguiente:
1. Select **Repeat**. 1. For **Repeats**, select `Daily`. 1. For **At time**, enter `10:00 AM`. 1. For **Timezone**, select `Coordinated Universal Time (UTC)`.
Haz clic en Selección de etiquetas.
En el campo Seleccionar etiquetas que se van a ejecutar, selecciona Diario.
Haz clic en Crear.
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y selecciona
dataform
.Haz clic en el menú
Acciones y, a continuación, selecciona Eliminar.En el cuadro de diálogo Eliminar conjunto de datos, introduce
delete
en el campo y, a continuación, haz clic en Eliminar.En la Google Cloud consola, ve a la página Dataform.
Haz clic en
quickstart-repository
.Haz clic en la pestaña Lanzamiento y programación.
En la sección Configuraciones de lanzamiento, haz clic en el menú Más
junto a la configuraciónproduction
y, a continuación, en Eliminar.En la sección Configuraciones de flujo de trabajo, haz clic en el menú Más
junto a la configuracióntransformations
y, a continuación, en Eliminar.En la pestaña Espacios de trabajo de desarrollo, haz clic en el menú Más
quickstart-workspace
y, a continuación, selecciona Eliminar.Para confirmar la acción, haz clic en Eliminar.
En la Google Cloud consola, ve a la página Dataform.
En
quickstart-repository
, haz clic en el menú Más y, a continuación, selecciona Eliminar.En la ventana Eliminar repositorio, introduce el nombre del repositorio para confirmar la eliminación.
Para confirmar la acción, haz clic en Eliminar.
Roles obligatorios
Para obtener los permisos que necesitas para completar este tutorial, pide a tu administrador que te asigne los siguientes roles de gestión de identidades y accesos en el proyecto:
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Programar transferencias de datos periódicas
Para mantener BigQuery actualizado con los datos de marketing más recientes de tu fuente de datos, configura transferencias de datos periódicas con BigQuery Data Transfer Service para extraer y cargar datos de forma programada.
En este tutorial, usará Google Ads como fuente de datos de ejemplo. Para ver una lista completa de las fuentes de datos compatibles con BigQuery Data Transfer Service, consulte Fuentes de datos admitidas.
Una vez que guardes la configuración, BigQuery Data Transfer Service empezará a transferir los datos. Según los ajustes de la configuración de la transferencia, esta se ejecuta una vez al día a las 08:00 (UTC) y extrae datos de Google Ads de los últimos cinco días.
Puedes monitorizar las tareas de transferencia en curso para comprobar el estado de cada transferencia de datos.
Consultar datos de tablas
Cuando tus datos se transfieren a BigQuery, se escriben en tablas con particiones por hora de ingestión. Para obtener más información, consulta el artículo sobre la introducción a las tablas con particiones.
Si consultas tus tablas directamente en lugar de usar las vistas generadas automáticamente, debes usar la pseudocolumna _PARTITIONTIME
en tu consulta. Para obtener más información, consulta Consultar tablas con particiones.
En las siguientes secciones se muestran consultas de ejemplo que puede usar para examinar los datos transferidos.
Rendimiento de las campañas
La siguiente consulta de ejemplo analiza el rendimiento de las campañas de Google Ads de los últimos 30 días.
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'
Haz los cambios siguientes:
Número de palabras clave
La siguiente consulta de ejemplo analiza las palabras clave por campaña, grupo de anuncios y estado de la palabra clave. Esta consulta usa la función KeywordMatchType
. Los tipos de concordancia con palabras clave
permiten controlar qué búsquedas pueden activar tus anuncios. Para obtener más información sobre las opciones de concordancia con palabras clave, consulta el artículo Acerca de las opciones de concordancia con palabras clave.
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'
Haz los cambios siguientes:
Crear un repositorio de Dataform
Después de crear la configuración de transferencia de datos para transferir los datos más recientes de Google Ads, configura Dataform para que transforme periódicamente tus datos de analíticas de marketing. Dataform te permite programar transformaciones de datos periódicas y definirlas con SQL mientras colaboras con otros analistas de datos.
Crea un repositorio de Dataform para almacenar las consultas SQLX que componen tu código de transformación.
El repositorio marketing-tutorial-repository
ahora aparece en tu lista de repositorios de Dataform.
Para obtener más información sobre los repositorios de Dataform, consulta el artículo Acerca de los repositorios de Dataform.
Crear e inicializar un espacio de trabajo de desarrollo de Dataform
Crea un espacio de trabajo de desarrollo de Dataform para poder trabajar en el código de transformación de tu repositorio antes de confirmar e insertar los cambios en él.
El espacio de trabajo de desarrollo marketing-tutorial-workspace
ahora aparece en tu repositorio marketing-tutorial-repository
en la pestaña Espacios de trabajo de desarrollo, junto con dos archivos de ejemplo en el directorio definitions
llamados *first_view.sqlx
y *second_view.sqlx
.
Para obtener más información sobre los espacios de trabajo de desarrollo de Dataform, consulta el artículo Descripción general de los espacios de trabajo de desarrollo.
Declarar la tabla de Google Ads como fuente de la tabla
Conecte la tabla de Google Ads que acaba de transferir a Dataform declarándola como fuente de datos. Para ello, siga estos pasos:
Crear un archivo SQLX para la declaración de la fuente de datos
En Dataform, declaras un destino de fuente de datos creando un archivo SQLX en el directorio definitions/
:
Declarar una fuente de datos
Edita el definitions/googleads-declaration.sqlx
para declarar una tabla de Google Ads transferida como fuente de datos. En este ejemplo se declara la tabla ads_Campaign
como fuente de datos:
Define tu transformación
Define tus transformaciones de datos creando un archivo SQLX en el directorio definitions/
. En este tutorial, crearás una transformación diaria que agregue métricas como clics, impresiones, costes y conversiones mediante un archivo llamado daily_performance.sqlx
.
Crear el archivo SQLX de transformación
Definir el archivo SQLX de transformación
Confirmar y enviar los cambios
Una vez que hayas hecho los cambios en tu espacio de trabajo de desarrollo, puedes confirmarlos e insertarlos en tu repositorio siguiendo estos pasos:
Una vez que los cambios se hayan enviado correctamente al repositorio, aparecerá el mensaje Workspace está actualizado.
Programar la transformación de datos
Una vez que haya definido el archivo de transformación de datos, programe las transformaciones de datos.
Crear una versión de producción
Una versión de producción en Dataform asegura que tu entorno se actualice de forma constante con los resultados de tus transformaciones de datos. En los pasos siguientes se muestra cómo especificar la rama main
del repositorio marketing-tutorial-repository
para almacenar las transformaciones de datos:
Crear una configuración de flujo de trabajo
Una vez que hayas creado una versión de producción, podrás crear una configuración de flujo de trabajo que ejecute las transformaciones de datos según una programación especificada en tu repositorio. Sigue estos pasos para programar transformaciones diarias a partir del archivo transformations
:
La configuración del flujo de trabajo que has creado ejecuta todo el resultado de la última compilación creada por la configuración de lanzamiento transformations
.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.
Eliminar el conjunto de datos creado en BigQuery
Para evitar que se te cobren los recursos de BigQuery, elimina el conjunto de datos llamado dataform
.
Eliminar el espacio de trabajo de desarrollo y las configuraciones de Dataform
Crear un espacio de trabajo de desarrollo de Dataform no tiene ningún coste, pero para eliminarlo, puedes seguir estos pasos:
Eliminar el repositorio de Dataform
Crear un repositorio de Dataform no tiene ningún coste, pero para eliminarlo, puedes seguir estos pasos: