Próbuję opracować małe narzędzie do raportowania (z zapleczem sqlite). Mogę najlepiej opisać to narzędzie jako księgę „transakcji”. Staram się śledzić „transakcje” z cotygodniowego wyciągu danych:
- „nowy” (lub dodaj) - zasób jest nowy w mojej aplikacji, ponieważ moja aplikacja mogła wcześniej nie śledzić tego zasobu, ponieważ nie był widziany za pomocą wyciągów.
- „aktualizacja” (lub trafienie) - ostatnio korzystano z tego zasobu, aktualizowano okres przechowywania o kolejny tydzień.
- „usuń” (lub upuść) - ten element nie przydał się od ostatniego raportu (opcjonalnie, ale byłoby miło mieć na wykresie zmiany zapotrzebowania na zasoby z tygodnia na tydzień).
Wszystko, co mam, to cotygodniowy ekstrakt danych (plik płaski rozdzielany potokami) pochodzący ze starszego systemu archiwizacji / zarządzania rekordami, nad którym nie mam kontroli.
Każda linia może być destylowana w celu:
resource_id | resource info | customer_id | customer_info
Przykładowe dane:
10| Title X | 1 | Bob
11| Another title | 1 | Bob
10| Title X | 2 | Alice
Celem jest ułatwienie raportowania zasobów, które nie były używane przez X miesięcy (na podstawie ostatniego trafienia). Istnieje okres przechowywania, w którym zasoby są przechowywane dla łatwego dostępu, jeśli są popularne. Zasób, który nie był używany przez 18 miesięcy, jest przeznaczony do długoterminowej archiwizacji w innym miejscu.
To musi być powszechny problem. Zastanawiasz się, czy istnieje algorytm ogólnego przeznaczenia do określania, co nowego / tego samego / usunięto między zestawami danych (db vs. najnowszy wyciąg)?