Jeden problem z programu jest to, że wszelkie powtarzające się linie miałyby powtarzającego hash; nigdy nie można określić, kiedy jedna z tych linii został dodany lub usunięty
Bardzo dobry punkt, ale nie problem. Powtarzające się linia jest duplikatem i wszystkie kopie zostały usunięte w następnym etapie przetwarzania. Więc tak masz rację, ale to nie jest problem.
„Diff” link prowadzi mnie do strony z opisem tego, co zakładam jest aplikacją? Nie ma Link do pobrania, nie ma kodu w dowolnym języku ... Co ja tu brakuje?
Niektórzy z was mówił o poziomie bajtów ziarnistości. To nie jest potrzebne. tylko liniowe ziarnistość jest wymagane, ponieważ jeśli coś na linii została zmieniona, cały wiersz (rekord) musi zostać ponownie przetworzone becasue wszelkie zmiany w obrębie linii wpływa na całą linię.
Więc jesteśmy porównywaniu linii około 1000 znaków (nie binarnych), w dwóch plikach (dzisiejsze i wczorajsze migawka migawka), które są każdorazowo ok linie 1m.
Więc przy użyciu Secure Hash jak SHA256 (MD5 ma kolizji i jest powolny w porównaniu) może przetwarzać około 30MB / s na moim laptopie HO. Serwer oczywiście będzie żuć przez to dużo szybciej.
Więc jeśli plik jest arond 1GB, a następnie wprowadzeniu wszystkich hases trwa około 33sec i odczytu pliku przy użyciu Windows Page 1 Gb pamięci trwa około 30sek. nie przerażające
Teraz mamy dwie tablice hashs reprezentujących linie w każdym pliku. Jeśli je sortować, możemy teraz użyć przeszukiwanie binarne, więc iteracyjne naszą drogę przez nowe pliki hashs szukających meczu w starych plików hashs. Jeśli my nie znaleźliśmy go, że linia jest dodawana do pliku zmian.
Należy pamiętać, że książka linii (baza Legacy) jest znana w każdym aspekcie. Nie ma żadnej gwarancji z rzędu linie, zmiany lokalizacji, rodzaju zmian.
Sugestii foreward czytając kolejne strony jest dobre, ale zakłada, że oba pliki są w smae aby się aż do pierwszej zmiany. To nie można przyjąć. Linie (rzędy) mogą znajdować się w dowolnej kolejności. Wybierając również dowolny rozmiar bloku narusza ziarnistość linii. Dla celów tego zadania, linie są niezmienne.
Od tej doskonałej linku invrementa załadunku: Comparison File Przechwytywanie: Metoda ta jest również znana jako metoda różnicowej migawka. Metoda ta polega na zachowaniu przed i po obrazy plików, które są przedmiotem zainteresowania hurtowni danych. Zapisy są porównywane, aby znaleźć zmiany, a klawisze są porównywane rekord znaleźć wkładki i usuwa. Technika ta jest najbardziej odpowiednia w przypadku starszych systemów ze względu na fakt, że wyzwala zazwyczaj nie istnieją i dzienniki transakcji są albo nieistniejące lub we własnym formacie. Ponieważ większość starszych baz danych mają jakiś mechanizm dumpingu danych do plików, technika ta tworzy okresowe zrzuty, a następnie porównuje wyniki produkować Zmień rekordy. Z pewnością wszystkie problemy chwytania statycznego są tu obecne. Dodano złożoność jest wprowadzany przez wyzwaniu porównywania całych rzędów informacji oraz identyfikacji i dopasowywania kluczy. Technika ta jest złożona z natury i zwykle nie jest pożądana, ale w niektórych przypadkach może być jedynym rozwiązaniem.
Jest to najbardziej istotne tutaj: Jak postępować w sferę hurtowni danych terabajt, zdolność do odbudowy hurtowni danych od podstaw na nocne podstawie pójdą drogą dinozaurów. Logiczne i skuteczne podejście do aktualizowania hurtowni danych wymaga jakiejś formy pierwotnej strategii aktualizacji.
Więc myślę, że jestem na dobrej drodze wtedy? Indeks btree nie stać przewagę?