Hurtownia danych "kup teraz"
- 15.09.2009
Christian Maar, CIO w QXL Poland
Celem było wdrożenie systemu, który umożliwi analizę informacji o pracy serwisu z opóźnieniem nie dłuższym niż pół godziny, także w szczycie obciążenia, przy 520 mln odświeżeń na dobę. Testowano również systemy pamięci masowych różnych firm, takich jak IBM, Sun, HP i 3PAR. Sprawdzano ofertę firmy Netezza, którą porównano z nowym rozwiązaniem Oracle Database Machine. Okazało się ono bardzo wydajnym rozwiązaniem, wygrywając z konkurencją, głównie na polu wydajności. Allegro stało się pierwszym na świecie użytkownikiem tego rozwiązania.
Przy wyborze oprogramowania Business Intelligence, w finale znalazły się dwa porównywalne rozwiązania - Microstrategy i Oracle. "Pojedynek był bardzo wyrównany. Niektórzy klienci preferowali Microstrategy, głównie ze względu na ładniejszy interfejs i bardzo dobrą integrację z Excelem. Moje doświadczenie pokazało jednak, że przy dużym projekcie prędzej czy później pojawią się problemy. Natomiast gdy całość rozwiązania pochodzi od jednego dostawcy, ryzyko niepowodzenia jest znacznie mniejsze" - konkluduje Christian Maar.
Jak zasilać hurtownię
Hurtownia jest zasilana z dwóch źródeł danych - systemu transakcyjnego platformy Allegro oraz z systemu rejestrowania kliknięć użytkowników. Dane z bazy transakcyjnej nie wymagają konwersji. Problemem jest jednak ich ilość - liczbę krotek w największej tabeli szacuję się w miliardach - oraz zmienność - system odnotowuje 20 tys. operacji na sekundę, tak więc dane pobierane przez kwerendę zmieniłyby się jeszcze przed zakończeniem analizy. Chociaż infrastruktura bazodanowa jest bardzo mocna - pracują tu dwa komputery klasy mainframe, IBM Power 595 - zasilanie bezpośrednio z głównej bazy mimo wszystko generowało zbyt duże obciążenie.
Rozwiązaniem było zastosowanie narzędzia Oracle Data Guard, które cyklicznie wykonuje kopię migawkową produkcyjnej bazy danych, replikowaną przez światłowód (o przepustowości 10 Gb/s) do drugiego centrum obliczeniowego, zlokalizowanego we Frankfurcie. Druga z kopii - wykonywana w trybie tylko do odczytu - służy do zasilania różnych systemów, w tym hurtowni danych. Kopie wykonywane przez Oracle Data Guard są spójne, opóźnione względem platformy produkcyjnej jedynie o kilka minut.
Informacje o odwiedzinach serwisu przez internautów są pobierane z 10 maszyn z bazami MySQL, ładujących ok. 20 mln rekordów co godzinę. Dane te wymagają pewnych prac przygotowawczych przed zasileniem hurtowni. Na tym etapie następuje konwersja typów, związanych z innym formatem przechowywania danych w MySQL i Oracle oraz pocięcie na poszczególne pola, np. IP.
Trzy ważne schematy
W rozwiązaniu BI w Allegro nie wykorzystuje się wielowymiarowych kostek, ale zestaw tabel o strukturze gwiazdy. Przyczyną takiego wyboru jest chęć szybkiego ładowania danych do hurtowni i uproszczenie konstrukcji raportów. Hurtownia jest podzielona funkcjonalnie na trzy części, z osobnymi schematami - Import, Target i Data Mart. Schemat Import służy do zasilenia danymi i zawiera tabele o strukturze optymalizowanej do sprawnego ładowania z zewnętrznych źródeł.
rekordów o odwiedzinach serwisu Allegro przez internautów jest co godzinę pobieranych z 10 baz MySQL.