Particionar por data?
Estamos testando o BigQuery para analisar os dados do usuário gerados pelo nosso aplicativo de software.
Nossa mesa de trabalho consiste em centenas de milhões de linhas, cada uma representando uma "sessão" de usuário única. Cada um contendo um registro de data e hora, UUID e outros campos descrevendo a interação do usuário com nosso produto durante essa sessão. Atualmente geramos cerca de 2 GB de dados (~ 10 milhões de linhas) por dia.
De vez em quando, podemos executar consultas em relação a todo o conjunto de dados (cerca de dois meses no momento e crescendo). No entanto, as consultas típicas abrangem apenas um único dia, semana ou mês. Estamos descobrindo que à medida que nossa tabela cresce, nossa consulta de dia único se torna mais e mais cara (como seria de se esperar, considerando a arquitetura do BigQuery)
Qual é a melhor maneira de consultar subconjuntos de nossos dados com mais eficiência? Uma abordagem que posso pensar é "particionar" os dados em tabelas separadas por dia (ou semana, mês, etc.) e consultá-los juntos em uma união:
SELECT foo from mytable_2012-09-01, mytable_2012-09-02, mytable_2012-09-03;
Existe uma maneira melhor do que isso?