Hurtownia danych "kup teraz"

Potrzebowaliśmy informacji na temat klienta - czy jest "dobry" i jak prowadzi interesy we wszystkich naszych serwisach? Czy fakt, że na Allegro wydaje niewiele pieniędzy, czyni z niego "złego" klienta? Czy nadal jest to "zły klient", jeśli wiadomo, że ta sama osoba jest wyjątkowo czynnym sprzedawcą na Otomoto i jednocześnie prowadzi interesy w serwisie Molotok.ru?

Christian Maar, CIO w QXL Poland

"Badaliśmy oferty liderów rynku, takich jak IBM, HP, Sun czy Netezza. Jedna grupa zajmowała się sprzętem, druga stosem oprogramowania. Braliśmy pod uwagę oprogramowanie Business Objects, Oracle i Microstrategy" - opowiada Christian Maar.

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ł.

20 mln

rekordów o odwiedzinach serwisu Allegro przez internautów jest co godzinę pobieranych z 10 baz MySQL.

W schemacie Target dane są reorganizowane, zaprojektowano strukturę gwiazdy z wieloma tabelami konstelacji faktów, wokół nich są tabele wymiarów. Struktura ta jest zoptymalizowana pod kątem wielowymiarowych zapytań raportowych. "Nie stosujemy motoru OLAP do udostępniania danych i wyliczania agregatów. Okazało się, że w Database Machine schematy relacyjne działają równie sprawnie, co motor OLAP, ale proces ładowania danych jest wielokrotnie szybszy.


TOP 200