Table Suffix en BigQuery GA4. Cómo seleccionar todos los tipos de fechas

Table Suffix en BigQuery GA4. Cómo seleccionar todos los tipos de fechas

Cada día de datos de Google Analytics 4 se guarda en una tabla dentro de BigQuery por separado. Cada día equivale a una tabla. Esto es una de las características que más te chocan al empezar a trabajar con GA4 y BigQuery.

En este post te voy a enseñar a usar el comando _table_suffix para seleccionar las fechas de distintas maneras.

tablas de días ga4 bigquery

Como ves en la imagen superior en esa tabla llamada events_(10) es donde se guardan todos los datos. Cada día es una tabla. En el caso de esa cuenta sólo tiene 10 días guardados.

Si quieres ver todas las funciones de fecha de BigQuery tienes aquí la info oficial.

Cómo seleccionar un día en las tablas de GA4 en BigQuery

Ésta es la más sencilla. 

SELECT *

FROM — aquí meterías tu dataset `xxx.events_20210104`

Tan sólo tienes que sustituir la fecha por el día que quieras elegir. Pero siempre con el formato AñoMesDía.

Lo normal es que uses periodos de tiempo más largos y para eso vas a necesitar el Table suffix.

Por cierto, si quiere seleccionar todos los días, puedes usar el wildcard * también en el FROM

SELECT *

FROM — aquí meterías tu dataset `xxx.events_*`

Ojo! Cuidado con meter esta query porque si tienes muchos datos puede ser una query que consuma muchos recursos.

Seleccionar unas fechas en concreto con table suffix en BigQuery GA4

Para seleccionar simplemente un periodo en concreto , por ejemplo, todos los datos entre el 01 – 01 – 2021 y el 31 – 01 – 2021 , simplemente tienes que usar esta construcción:

SELECT *

FROM — aquí meterías tu dataset `xxx.events_*`

WHERE _table_suffix BETWEEN  ‘20210101’ and ‘20210131

Así se vería en BigQuery con el ejemplo de los datos públicos de prueba.

seleccionar un periodo en BigQuery con TableSuffix

Seleccionar fechas dinámicas

Si quieres seleccionar por ejemplo los últimos 30 días para que recoja este periodo de forma dinámica usarás el Table suffix pero de una manera más complicada.

Esta query seleccionaría los últimos 30 días hasta hoy , incluyendo el día de ayer. 

Verás que esta query ya implica el uso de format_date para ajustar el formato de fecha y date_sub para hacer la substracción.

SELECT *

FROM — aquí meterías tu dataset `xxx.events_*`

WHERE _table_suffix between format_date(‘%Y%m%d’,date_sub(current_date(), interval 30 day)) AND format_date(‘%Y%m%d’,date_sub(current_date(), interval 1 day))

Se vería así:

ejemplo de los últimos 30 días

Fecha concreta y fechas dinámicas

Puedes unir las dos anteriores para que obtengas algo tipo «desde el día X hasta ayer»

SELECT *

FROM — aquí meterías tu dataset `xxx.events_*`

WHERE     _table_suffix between ‘20210102’ AND format_date(‘%Y%m%d’,date_sub(current_date(), interval 1 day))

Fernando Lens
flens@seocom.agency

Actualmente desempeño mi labor como Analista Web dentro de la Agencia de Analítica Digital RoiAnalytics en proyectos web de varios tipos, E-commerce, medios especializados, páginas de captación de leads, entre otros. Cuento además con varios años de experiencia dentro del sector del SEO y también cuento con conocimientos de SEM. Me defino como un profesional de la analítica al que no solo le gusta captar el mejor dato posible si no que también busca generar el mayor beneficio posible a mis clientes gracias a los datos.