Mam problem z decyzją, jak przechowywać te dane w mojej bazie danych. Wszelkie sugestie dotyczące najlepszego sposobu, aby to zrobić? Dodam, że nie znam się na bazach danych.
Mam dane tak sformatowane, ale zamiast 4 liczba kolumn wynosi około 240, więc z każdą datą związane są 240 unikalne wartości:
Date/Time 200,00 202,50 205,00
2010.11.12 13:34:00 45,8214 43,8512 41,5369
2010.11.12 13:35:00 461,9364 454,2612 435,5222
Ponadto wiersze są powiązane z DataSites.
Moją pierwszą myślą było stworzenie takiej tabeli: DataID (pk), DataSiteID, ParameterID, Date, Value, z indeksem DataSite, Parameter and Date. Parametr ID odnosi się do innej tabeli, która przechowuje nagłówki kolumn wejściowych (200,00 202,50 205,00 ...).
Moją drugą myślą było po prostu mieć stół ze wszystkimi 240-osobowymi kolumnami. Wymyśliłem kilka innych sposobów, ale są one również niezadowalające.
Problem z moim pierwszym rozwiązaniem (nie jest to tak duży problem, ale mi się nie podoba) polega na tym, że Date i DataSiteID będą się powtarzać dla wszystkich 240 wartości w tym wierszu wejściowym, więc używa całkiem sporo dodatkowej przestrzeni.
Będzie około 40 GB danych rocznie (w powyższym formacie tekstowym), a dane będą wyszukiwane według DataSite, parametru i daty. Ilość napływających danych najprawdopodobniej zwiększy się czterokrotnie w ciągu około roku.
Jakieś dobre pomysły? Dzięki, James
edycja: Są to dane szeregów czasowych, przy czym kolumny są pomiarami przy różnych długościach fal. Dane będą musiały być analizowane w stosunkowo wąskim zakresie długości fal. W przyszłości mogą zostać dodane dodatkowe długości fal.
edytuj: Dzięki za odpowiedzi chłopaki, naprawdę to doceniam :) Myślę, że prawdopodobnie znajdę czas na przeprowadzenie eksperymentów z danymi testowymi o wielkości około 500 GB. Odpowiem z wszelkimi wnioskami;)