¿Particionamiento por fecha?
Estamos experimentando con BigQuery para analizar los datos de usuario generados por nuestra aplicación de software.
Nuestra mesa de trabajo consta de cientos de millones de filas, cada una de las cuales representa una "sesión" única de usuario. Cada uno contiene una marca de tiempo, UUID y otros campos que describen la interacción del usuario con nuestro producto durante esa sesión. Actualmente generamos aproximadamente 2GB de datos (~ 10M filas) por día.
De vez en cuando podemos realizar consultas contra todo el conjunto de datos (aproximadamente 2 meses en este momento y en crecimiento). Sin embargo, las consultas típicas abarcarán un solo día, semana o mes. Estamos descubriendo que a medida que nuestra tabla crece, nuestra consulta de un solo día se vuelve más y más cara (como es de esperar, dada la arquitectura de BigQuery)
¿Cuál es la mejor manera de consultar subconjuntos de nuestros datos de manera más eficiente? Un enfoque que se me ocurre es "particionar" los datos en tablas separadas por día (o semana, mes, etc.) y luego consultarlos juntos en una unión:
SELECT foo from mytable_2012-09-01, mytable_2012-09-02, mytable_2012-09-03;
¿Hay alguna forma mejor que esta?