20 Ago 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.
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 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í:
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))