Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Przeglądanie danych z przeszłości

Termin Definicja
Przeglądanie danych z przeszłości

Przeglądanie danych z przeszłości umożliwiają tabele temporalne, zwracające stan wiersza z wybranego momentu.

Jak działa odczyt stanu danych z wybranego momentu

Przeglądanie danych z przeszłości polega na odtworzeniu wartości, jakie rekord posiadał w określonym czasie. Zwykła tabela przechowuje zazwyczaj bieżący stan wiersza. Gdy wartość zostanie zmieniona poleceniem aktualizacji, poprzednia treść może zostać bezpowrotnie zastąpiona. Tabela temporalna rozszerza ten model o informacje potrzebne do zachowania kolejnych wersji rekordu. Dzięki temu można ustalić nie tylko, jakie dane są zapisane obecnie, ale również jak wyglądały wcześniej.

Mechanizm temporalny posługuje się przedziałami obowiązywania wersji wiersza. Dla każdej wersji zapisywany jest czas rozpoczęcia oraz czas zakończenia jej ważności albo równoważne znaczniki określające granice przedziału. Przy zmianie rekordu bieżąca wersja otrzymuje czas zakończenia, a nowa wersja zaczyna obowiązywać od chwili modyfikacji. Przy usunięciu rekord może zostać przeniesiony do historii zamiast zniknąć bez śladu. Odczyt historyczny wybiera wersję, której przedział obejmuje wskazany moment.

Wersjonowanie rekordów a zwykła historia zmian

Historia temporalna różni się od prostego pola „zmodyfikowano”. Znacznik ostatniej modyfikacji informuje, kiedy rekord zmienił się po raz ostatni, lecz nie zachowuje wcześniejszych wartości. Tabela temporalna przechowuje natomiast kolejne obrazy wiersza, co pozwala porównać stan przed zmianą i po zmianie. Jeżeli adres, status, cena albo konfiguracja rekordu były modyfikowane kilka razy, zapytanie historyczne może wskazać wartości obowiązujące w poszczególnych okresach.

W praktyce trzeba odróżnić czas obowiązywania danych od czasu wykonania operacji. Czas obowiązywania opisuje, od kiedy dana wersja powinna być traktowana jako aktualna z punktu widzenia modelu danych. Czas wykonania odnosi się do chwili zapisania informacji w systemie. Te pojęcia mogą się rozchodzić, gdy dane są importowane z opóźnieniem, korygowane po fakcie albo uzupełniane na podstawie zewnętrznego źródła. Przed interpretacją wyników należy więc sprawdzić, jaki rodzaj czasu obsługuje konkretny mechanizm.

Zapytania historyczne i kontrola spójności

Odczyt danych z przeszłości powinien uwzględniać granice przedziałów czasowych. Przyjmowanie, że oba końce przedziału są jednocześnie włączne, może prowadzić do sytuacji, w której jedna wersja jest uznawana za obowiązującą w tej samej chwili co następna. Poprawny model musi jasno określać, czy przedział jest zamknięty, otwarty czy półotwarty. Szczególne znaczenie ma moment przejścia między wersjami, ponieważ zapytanie wykonane dokładnie na granicy może zwrócić inny wynik niż zapytanie wykonane chwilę wcześniej.

Podczas analizy należy także sprawdzać, czy nie występują nakładające się okresy, luki oraz nieprawidłowa kolejność wersji. Nakładanie oznacza, że dla jednego klucza istnieją dwie wersje ważne w tym samym czasie. Luka oznacza brak wersji obejmującej określony okres, mimo że rekord powinien mieć ciągłą historię. Takie problemy mogą wynikać z ręcznego modyfikowania tabeli historii, błędnej migracji, niejednoznacznej strefy czasowej albo nieatomowej obsługi aktualizacji. Weryfikacja powinna obejmować klucze główne, znaczniki czasu, relacje między tabelą bieżącą i historyczną oraz zgodność typów danych.

Ograniczenia archiwalnego obrazu danych

Historyczny odczyt pokazuje stan zapisany w systemie, a niekoniecznie pełny obraz rzeczywistości. Jeżeli transakcja została wykonana błędnie, zapisano niepoprawną wartość albo pominięto zmianę poza mechanizmem temporalnym, tabela nie odtworzy informacji, których nigdy w niej nie zarejestrowano. Historia wiersza nie musi również zawierać zmian wykonanych w powiązanych tabelach. Odtworzenie całego stanu obiektu wymaga sprawdzenia, czy wszystkie zależne dane są wersjonowane według zgodnych zasad.

Duża liczba wersji zwiększa rozmiar danych i może wpływać na koszt zapytań historycznych. Dlatego warto określić sposób indeksowania kolumn używanych do wyszukiwania po kluczu i czasie, a także zasady przechowywania starszych wersji. Usunięcie historii ogranicza możliwość odtworzenia wcześniejszego stanu, natomiast jej zachowanie przez długi okres wymaga kontroli pojemności i wydajności. Przy diagnostyce laptopa lub komputera, na którym działa aplikacja korzystająca z danych temporalnych, należy rozdzielić problem samego zapytania od problemu bazy danych, zegara systemowego, połączenia lub uszkodzonego indeksu. Sprawdzenie przykładowego rekordu w kilku punktach czasu, porównanie tabeli bieżącej z historią oraz analiza logów operacji pomagają ustalić, czy rozbieżność wynika z danych, zapytania, czy z warstwy aplikacji.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę