2009-11-04 12 views
5

Mamy garść danych, które użytkownicy mogą chcieć przeglądać i robić to szybko. Mogą chcieć spojrzeć na okno danych, które są dzień, tydzień, miesiąc lub dowolne dane początkowe i końcowe. Sortowanie i podsumowywanie wszystkich tych rzeczy w czasie rzeczywistym okazuje się być dla nas bolesne, więc wpadłem na pomysł zrobienia czegoś podobnego do Mipmap w renderowaniu 3D. W efekcie przechowujesz te same dane wstępnie obliczone w różnych skalach, a następnie interpolujesz wyniki za pomocą różnych skal. Tak więc już wiedziałbym, jakie liczby były przez rok, dany miesiąc, dany tydzień i dany dzień dla sklepu i jeśli poprosili o konkretny zakres, używam różnych skal, by szybko dodać coś, co daje prawo wyników, ale nie muszę koniecznie ponownie przetwarzać pełnego zestawu danych, po prostu pobieram cztery lub pięć rekordów i dodam lub odejmuję je.Czy jest wzór zapisu danych podobny do mipmap w grafice?

Czy to prawdziwy wzór? Czy ma to jakiś sens i są miejsca, które mogę przeczytać o tym, jak zrobić to najlepiej, czy jest o wiele lepsze sposoby radzenia sobie z dużymi porcjami danych, takich jak te, gdzie trzeba je oglądać w różnych odcinkach?

Wygląda na to, że powinien to być dobrze znany i rozwiązany problem. Na przykład wiele osób ma portfele akcji i muszą robić tego rodzaju rzeczy każdego dnia. Nasze dane nie są cenami akcji, ale idea jest taka sama.

Odpowiedz

2

OK, szukałem, szukałem i szukałem więcej. Łącza Andy'ego Denta spowodowały, że zacząłem opisywać dane jako "szereg czasowy" i to pomogło niektórym. Potem natknąłem się na OLAP i zdałem sobie sprawę, że to, co robię, zmienia się na nowo. Wiedziałem, że to musi być dobrze znany, dokładnie rozwiązany problem i miałem rację. OLAP to jest to.

Tworzysz kilka zagregowanych tabel, które agregują dane wzdłuż poszczególnych wymiarów (w tym przypadku czasu), a nawet możesz otrzymać narzędzia takie jak Mondrian, które będą pobierały zapytania napisane w innym języku zapytań (tj. Nie SQL) i zestawie tabele faktów plus agregaty i zdecyduje, jak najlepiej wykonać zapytanie względem tych tabel.

1

W pewnym sensie myślę, że odpowiedziałeś sobie na własne pytanie, kiedy wyjaśniłeś, jak działa mapowanie Mip (poprzez interpolację/ekstrapolację).

Na różnych poziomach "powiększenia" wystarczy wybrać niższą rozdzielczość lub częstotliwość próbkowania danych. Odwrotność miałaby zastosowanie na wyższych poziomach "powiększenia" - do punktu, w którym trzeba by użyć interpolacji (np. Liniowy/wielomian/splajn/etc) na danych do oszacowania na wartościach między punktami danych.

+0

Zastanawiam się, czy istnieje literatura dla tego produktu. Być może to jest bzdura rozwiązanie dla danych, a jedynie działa OK na rzeczy wizualnej (która może być znacznie mniej wyrozumiały niż pieniądze, uwierzcie mi na to). Miałam nadzieję, że ktoś powie: „O tak, to jest właśnie to, co robimy dla bla bla bla i działa świetnie” lub „Mogę zobaczyć, gdzie można by pomyśleć, że rozwiązanie naiwny będzie działać, ale tak naprawdę powinno być za pomocą struktury Bumpletag i byłoby rozwiązać problem o wiele lepiej.” –

1

Podoba mi się twoja analogia do mipmapping i myślę, że pole Observations and Measurements, a zwłaszcza schematy próbkowania, to prawdopodobnie miejsce, w którym znajdziesz abstrakcyjny projekt danych, którego szukasz. Daje ci teorię danych, chociaż myślą bardziej w kategoriach modeli danych XML niż tabele relacyjne.

Kiedyś pracowałem z chłopakami w CSIRO za to i dużo myślenia pochodzi z konieczności zarządzania ogromne zbiory danych dla rzeczy jak czujniki poboru próbek wody. Więcej szczegółów pod adresem SEEGrid wiki.

Powiązane problemy