Yuan Jiang jest starszym inżynierem kierującym zespołem ds. silników pamięci masowej rozwijającym w Alibaba produkt Interactive Analytics. Podczas „Big Data Tech Warsaw Summit 2020” przedstawił historię budowy hurtowni danych działającej na wielką skalę i w czasie rzeczywistym. Opowiadał o rozwiązaniach dla hurtowni danych działającej w czasie rzeczywistym, jej architekturze i typowych scenariuszach biznesowych. Rozmawiamy z nim o związanych z tym wyzwaniach.
Co to jest Interactive Analytics i czy jest dostępna dla każdego, w chmurze publicznej?
Jest to hurtownia danych działająca w czasie bardzo bliskim do czasu rzeczywistego. Oferuje możliwość interaktywnej analizy ogromnej ilości danych i jest w pełni kompatybilna z PostgreSQL. Połączyliśmy wielkoskalową, obliczeniową pamięć masową – niskokosztową, wysoko wydajną i wysoko dostępną – z wysoko wydajną technologią przetwarzania danych oraz zapytań, która oferuje niskie opóźnienia, wysoką przepustowość i wysoką równoczesność działania.
Usługa Interactive Analytics jest szeroko wykorzystywana w firmie Alibaba. Została wewnętrznie zaadaptowana na potrzeby firmowej wyszukiwarki, systemu rekomendacji i reklam, a także jest dostępna w chmurze AliCloud. Jest używana przez wielu klientów w chmurze prywatnej. Usługa w chmurze publicznej działa na razie jako beta. Jest dostępna w języku chińskim, ale jesteśmy w trakcie jej tłumaczenia na angielski. Ogólną dostępność planujemy uruchomić za kilka miesięcy.
Jakie są najważniejsze cechy technologiczne Interactive Analytics?
Celem było zbudowanie wielkoskalowej, obliczeniowej pamięci masowej, która będzie tania dla użytkownika. To rozwiązanie typu serverless, dlatego użytkownik nie musi się martwić o zakup serwerów ani kłopotać standardowym zestawem problemów związanych z tradycyjnymi rozwiązaniami. Zajmujemy się tymi wszystkimi zagadnieniami, a usługa jest niedroga. Jest to jednocześnie rozwiązanie cloud native, dzięki czemu możemy oddzielić moc obliczeniową od pamięci masowej, a także ujednolicić pamięć masową zarówno dla przetwarzania strumieniowego, jak i przetwarzania wsadowego. Z myślą o inżynierach stworzyliśmy silnik C++ Native Execution Engine oraz narzędzie Query Optimizer, a także silnik pamięci masowej.
Usługa Interactive Analytics jest szeroko wykorzystywana w firmie. Została wewnętrznie zaadaptowana na potrzeby firmowej wyszukiwarki, systemu rekomendacji i reklam, a także jest dostępna w chmurze AliCloud.
Dlaczego firma zdecydowała się budować tę usługę od zera?
Szukaliśmy produktu do zadawania prostych zapytań, ale nie mogliśmy niczego znaleźć na rynku. Najpierw w Alibaba odbyły się wewnętrzne rozmowy na temat niektórych istniejących systemów obliczeniowej pamięci masowej, głównie produktów open source. Przyjrzeliśmy się bliżej bazom danych Apache HBase i Cassandra. Doskonale sprawdzają się w przypadku równoczesnych prostych zapytań. Są one również nazywane bazami danych NoSQL, ale dziś często mają warstwy SQL – w HBase jest Apache Phoenix, a Cassandra ma CQL. Zasadniczo oferują one bardzo prosty interfejs, więc są odpowiednie do prostych zapytań. Przyglądaliśmy się także takim produktom jak Druid, którego używaliśmy w Alibaba przed zbudowaniem Interactive Analytics i Apache Kudu. Nie nadają się one jednak do prostych zapytań. Najlepiej sprawdzają się w przypadku dużych, złożonych skanów. Właśnie dlatego podjęliśmy decyzję o budowie systemu, który będzie realizował obydwa scenariusze.
Podjęliście jednak decyzję o wykorzystaniu niektórych istniejących systemów do współpracy z tym produktem…
Przed wdrożeniem systemu musieliśmy zdecydować, czy powinniśmy budować własny system kliencki, aby użytkownik pisał nowy kod, żeby używać usługi. Uznaliśmy, że z punktu widzenia użytkownika nowy system nie będzie optymalnym rozwiązaniem. To naprawdę dla użytkownika jest bardzo trudne, więc zaczęliśmy szukać istniejących alternatyw. Odkryliśmy, że możemy po prostu wykorzystać do tego PostgreSQL. Jest już szeroko stosowany i istnieje wiele narzędzi. Mamy wiersz poleceń, klientów i Tableau. Uznaliśmy, że dzięki temu możemy przyspieszyć adaptację.
Jakie było główne wyzwanie dla zespołu Interactive Analytics?
Alibaba to największa firma e-commerce w Chinach. Ma blisko 1 miliardd klientów, więc każdego dnia napływa mnóstwo danych. Potrzebowaliśmy ekstremalnej wydajności. Dlatego w każdym elemencie naszego systemu chcemy uzyskać najlepszą wydajność: obsługujemy pamięć zorientowaną na wiersze i kolumny, mamy wektoryzację w wykonywaniu zapytań, wysoką równoczesność i wydajnie korzystamy z zasobów obliczeniowych. Używamy C ++, aby zapewnić stabilne, niskie opóźnienia, optymalizujemy zapytania w odniesieniu do kosztów i wykorzystujemy charakterystykę pamięci masowej. Posiadamy wysoce wydajną usługę zarządzania zasobami i planowania.
Alibaba ma blisko 1 miliard klientów, więc każdego dnia napływa mnóstwo danych. Dlatego w każdym elemencie naszego systemu chcemy uzyskać najlepszą, ekstremalną wydajność.
Jakie są typowe scenariusze biznesowe dla tej usługi?
Pierwszym typowym scenariuszem biznesowym jest przetwarzanie online, testowanie A / B w czasie rzeczywistym. Zaczynamy od logów aktywności klikanych przez użytkownika i przechodzimy przez wewnętrzny DataHub. Następnie przeprowadza się obliczenia w czasie rzeczywistym – w Alibaba używamy udoskonalonej wersji Flinka. Oferuje wydajność dziesięciokrotnie wyższą niż Apache Flink w wersji open source i pięcio- do dziesięciokrotnie wyższą niż Apache Spark – w przypadku niektórych wskaźników wydajności. Wreszcie dane trafiają do Interactive Analytics i od razu można je wykorzystać do raportowania w czasie rzeczywistym, a także do tworzenia modeli klienta stosowanych do analizy zachowań użytkowników.
Drugi scenariusz biznesowy to przyspieszenie przetwarzania offline. Używamy MaxCompute. To wersja systemu MapReduce opracowana przez Alibaba. Oferuje większą wydajność i większą skalę niż istniejąca otwarta wersja Apache Hive. Za dostarczenie wyniku użytkownikom przechowującym dane w MaxCompute odpowiada MapReduce. Wiąże się to jednak z dużymi opóźnieniami. Jeśli więc użytkownik chce zwiększyć szybkość działania, aby uzyskać błyskawiczną odpowiedź, możemy przyjąć część danych MaxCompute do Interactive Analytics, a następnie użyć innego narzędzia, takiego jak: Tableau, SmartBI, Fine Report, Quick BI lub DataService, aby natychmiast je wykorzystać w biznesie.
Trzecim scenariuszem jest połączenie przetwarzania danych offline i przetwarzania strumieniowego w jednym miejscu, aby od razu można było z nich korzystać w dashboardzie, do raportowania w czasie rzeczywistym czy w aplikacjach online.
Podsumowując, scenariusze, które staramy się wspierać, to: dashboard, raportowanie BI w czasie rzeczywistym, profilowanie użytkowników oraz monitorowanie i alarmowanie. System, który zbudowaliśmy, jest używany w Alibaba na potrzeby e-commerce, Internetu Rzeczy i przez dział finansowy. Jest również stosowany poza naszą organizacją. Sprzedaliśmy go niektórym klientom jako prywatną chmurę – używają go w obszarze bezpieczeństwa publicznego.
Yuan Jiang był prelegentem na konferencji „Big Data Tech Warsaw Summit 2020”. Relacja z tego wydarzenia znajduje się na stronie https://e-s-r.pl/2020/03/05/wielkie-zbiory-danych-jeszcze-wieksze-wyzwania/.
Kategorie: Analityka
Musisz się zalogować aby dodać komentarz.