Oszacowanie zakresu migracji danych
Jak oszacować czas migracji danych: przenoszenie danych między systemami, uzgadnianie danych i przełączenie. Przetwarzanie trwa godzinę; czyszczenie danych trwa kwartał.
Sama migracja to najłatwiejsza część. To właśnie w etapie uzgadniania, o którym pan zapomniał, kryją się najtrudniejsze kwestie.
Migracja danych — przenoszenie danych z jednego systemu do drugiego lub z jednej struktury do innej w obrębie tego samego systemu — przypomina transformację. Odczyt z źródła, transformacja, zapis w miejscu docelowym, przełączenie ruchu. Zespół głosuje nad transformacją. Transformacja jest zazwyczaj najmniejszym elementem pracy w ramach danego zadania. Trudności tkwią w elementach, których transformacja nie uwzględnia: rekordach, które wyglądają poprawnie, ale odwołują się do danych, których nie udało się przenieść; rekordach, które wydają się uszkodzone, ale w rzeczywistości są poprawne w sposób, którego specyfikacja nie uwzględniła; oraz przypadkach skrajnych, które przetrwały jedynie dlatego, że stary system je tolerował, a nowy już nie.
Jest to problem inny niż migracja bazy danych. Migracja schematu zmienia strukturę jednego magazynu danych, w którym dane już się znajdują. Migracja danych polega na przenoszeniu danych między systemami, a pytanie nie brzmi: „czy polecenie ALTER zakończy się na czas?” — lecz „co zrobić z wierszami, które nie pasują do żadnej ze stron?”. Większość pracy polega na uzgadnianiu danych, opracowaniu strategii przełączenia oraz przywracaniu stanu poprzedniego. Kod transformujący jest częścią, którą pisze się najszybciej, a kończy jako ostatnią.
O czym się mówi w tym pomieszczeniu
Backend: „To skrypt. Odczyt, mapowanie, zapis. Maksymalnie dwa dni.”
Data eng: „Czy sprawdziliśmy, w jakim stanie jest źródło?”
SRE: „Jakie będzie przejście — metodą »big bang« czy metodą podwójnego zapisu?”
Wstęp: „Kto zajmuje się uzgadnianiem wierszy, których migracja nie przebiega bezbłędnie?”
Premier: „Kiedy zamierzamy wycofać stary system?”
To właśnie pytanie postawione przez premiera powinno stanowić punkt wyjścia dla oszacowania. Jeśli stary system zostanie wycofany za miesiąc, potrzebna jest strategia zapewniająca 100% poprawności; jeśli natomiast będzie funkcjonował równolegle z nowym przez dwa kwartały, można sobie pozwolić na odłożenie kwestii „długiego ogona” na później. Szacunek nie dotyczy samej transformacji — dotyczy strategii.
Pytania, które warto zadać przed oddaniem głosu
- Jaka jest jakość danych źródłowych — czyste, zanieczyszczone czy nieznana?
- Strategia przejścia: metoda „big bang”, podwójny zapis, odczyt z kopii zapasowej, stopniowe przejście?
- Jak długo oba systemy będą funkcjonować równolegle? Czy wyznaczono termin wycofania jednego z nich?
- Kto dokonuje uzgodnienia wierszy, których migracja nie przebiega bezbłędnie, i na podstawie jakiego progu?
- Jakie są procedury przywrócenia poprzedniego stanu, jeśli nowy system otrzyma błędne dane po przejściu na nowy system?
- Czy istnieją konsumenci danych na dalszych etapach procesu (raporty, integracje), których migracja musi przebiegać synchronicznie?
Jeśli zespół oceni zadanie na 5, a ktoś zapyta: „Chwileczkę, a co z zapisami w dzienniku audytowym?”, to nie mieli Państwo problemu z oszacowaniem; mieli Państwo do czynienia z dwoma historiami udającymi jedną. Proszę to podzielić: transformacja to jeden zgłoszenie, a uzgodnienie i plan przejścia to kolejne.
Proszę głosować nad strategią, a nie nad zmianami. Zmiany potrwają dwa dni. Strategia obejmuje cały kwartał.
Więcej informacji na temat wariantu zmiany schematu w ramach jednego systemu można znaleźć w artykule Szacowanie kosztów migracji bazy danych, a także w innych przykładach praktycznych szacunków. Po nakreśleniu strategii przejścia proszę zorganizować bezpłatną sesję planowania pokerowego.