Partycjonowanie według daty?
Eksperymentujemy z BigQuery, aby analizować dane użytkownika generowane przez naszą aplikację.
Nasz stół roboczy składa się z setek milionów wierszy, z których każdy reprezentuje unikalną „sesję” użytkownika. Każdy z nich zawiera znacznik czasu, identyfikator UUID i inne pola opisujące interakcję użytkownika z naszym produktem podczas tej sesji. Obecnie generujemy około 2 GB danych (~ 10 mln wierszy) dziennie.
Co jakiś czas możemy uruchamiać zapytania dotyczące całego zestawu danych (obecnie około 2 miesiące warte i rosnące), jednak typowe zapytania będą obejmować tylko jeden dzień, tydzień lub miesiąc. Dowiadujemy się, że wraz ze wzrostem naszej tabeli, nasze jednodniowe zapytanie staje się coraz droższe (czego można by oczekiwać po architekturze BigQuery)
Jaki jest najlepszy sposób wydajniejszego wyszukiwania podzbiorów naszych danych? Jednym z podejść, które mogę sobie wyobrazić, jest „podzielenie” danych na osobne tabele według dnia (lub tygodnia, miesiąca itp.), A następnie zapytanie ich razem w związku:
SELECT foo from mytable_2012-09-01, mytable_2012-09-02, mytable_2012-09-03;
Czy jest lepszy sposób niż to?