Intel IT CenterArchitektura ITProgramowaniePolecane tematy
Wzrost prędkości przetwarzania dzięki pamięci podręcznej L1 procesora
W czasach, kiedy ilość informacji rośnie w niespotykanym wcześniej tempie, problemy z wydajnością środowisk bazodanowych urastają do rangi problemów biznesowych. Jednym z możliwych rozwiązań – poza technologiami in-memory – może być pamięć podręczna procesora poziomu L1. Teradata w tym zakresie wykorzystuje rozwiązania Intel Haswell.
„Wiele osób sądzi, że technologia in-memory sprowadza się do szybkiego dostępu do danych. Oczywiście, jeśli porównać wydajność pamięci operacyjnej z możliwościami klasycznych dysków, to jest to prawda. Do przyspieszenia przetwarzania wykorzystać można – co robimy w naszej bazie danych – także instrukcje wprowadzone w procesorach firmy Intel, oparte na mikroarchitekturze Haswell” – mówi Artur Borycki, dyrektor International Technology & Innovations w Teradata.
Intel Haswell pozwala na jednoczesne wykonywanie operacji przetwarzania na wielu zbiorach danych. „Mają do wykonania, przykładowo, operację mnożenia 4000 rekordów z bazy, bez optymalizacji in-memory będziemy zmuszeni wykonać co najmniej 12 000 operacji. Każdą liczbę musimy bowiem wprowadzić do pamięci procesora, wykonać operację mnożenia i zapisać rezultat. Przy użyciu wektoryzacji wprowadzonej w procesorach Intel Haswell jesteśmy w stanie wprowadzić nasze 4000 zmiennych do pamięci procesora, a następnie w jednym cyklu jego pracy wykonać mnożenie i zapis wyników” – wyjaśnia Artur Borycki.
Takie podejście diametralnie przyspiesza operacje na małych zbiorach danych. „To duży krok do przodu. Zaletą tej optymalizacji jest też fakt, że nie wymaga ona specyficznego sprzętu. Obecnie nawet komputery przenośne wyposażone są w układy rodziny Haswell” – twierdzi Artur Borycki.
Przetwarzanie Real-time? Tak, ale z głową
Zmienia się nie tylko wydajność baz danych, ale i funkcje, w które są wyposażane. Coraz częściej są to funkcje skierowane wprost do użytkowników biznesowych. Kluczowego znaczenia nabiera też możliwość łatwego pozyskiwania informacji z nowych źródeł oraz integracji środowisk danych bazujących na technologiach otwartych – z platformą Hadoop na czele.
Wiele osób sądzi, że technologia in-memory sprowadza się do szybkiego dostępu do danych. Oczywiście, jeśli porównać wydajność pamięci operacyjnej z możliwościami klasycznych dysków, to jest to prawda. Często jednak niewykorzystanym elementem sprzętowym – jeżeli chodzi o szybkość przetwarzania – jest pamięć podręczna procesora poziomu L1. Funkcjonalność bazy Teradata w tym obszarze bazuje na instrukcjach wprowadzonych w procesorach firmy Intel opartych na mikroarchitekturze Haswell – mówi Artur Borycki, dyrektor International Technology & Innovations w Teradata
Dzięki wykorzystaniu nowych mechanizmów przetwarzania możliwe staje się skrócenie do minimum nawet najbardziej złożonych analiz wykonywanych na dużych zbiorach danych. „Jeśli założymy, że w przeciętnym środowisku bazodanowym opartym na naszej platformie mamy do dyspozycji 0,5 TB pamięci operacyjnej i połowę tego miejsca przeznaczymy na składowanie najbardziej ‘gorących’ danych, to drugą połowę możemy wykorzystać na potrzeby przetwarzania” – wyjaśnia Artur Borycki. Błyskawiczny dostęp nie zawsze jest jednak niezbędny. W wielu organizacjach nieakceptowalne są dziś czasy oczekiwania na wyniki analizy na poziomie dni czy godzin. Jednak, choć możliwość ich przetworzenia w czasie zbliżonym do rzeczywistego jest cenna, to w praktyce, w większości przypadków czas ich przygotowania na poziomie kilku minut jest akceptowalny dla użytkowników.
Przykładem zbiorów danych, które powinny być przetwarzane z naprawdę minimalnymi opóźnieniami, są zbiory zawierające informacje na temat historycznych interakcji z klientami. „Przykładowo klient na bieżąco wykonuje operacje w systemie bankowości elektronicznej. Bank, który chciałby zaproponować mu dodatkową ofertę, musi mieć możliwość przeprowadzenia błyskawicznej analizy. W takich sytuacjach często decydujące są milisekundy” – mówi Artur Borycki. Dalej idącym przykładem jest powiązanie usług bankowych z usługami telekomunikacyjnymi i skorelowanie posiadanej przez bank wiedzy o konkretnych klientach z danymi lokalizacyjnymi pozostającymi w gestii operatorów komórkowych. Dzięki temu zdarzeniem wywołującym analizę klienta i zaproponowanie mu oferty handlowej może być nawet informacja o tym, że wszedł on do określonego sklepu, a w danej chwili dysponuje ograniczonymi środkami na koncie.
Więcej danych, to większe wyzwania
„Ilość danych, które gromadzi statystyczna firma, rośnie w tempie logarytmicznym. Potrzebne stają się więc nowe pomysły i rozwiązania pozwalające na zwiększenie wydajności środowiska bazodanowego” – dodaje Artur Borycki. Jednym z takich narzędzi jest platforma Teradata QueryGrid. Pozwala ona na przeniesienie procesów przetwarzania danych do poziomu źródłowych środowisk danych, opartych przykładowo na platformie Hadoop. W takim modelu do bazy Teradata przenoszone są jedynie rezultaty wykonanych operacji.
„Zakładając, że typowy klient zainteresowany technologią Hadoop oczekuje możliwości szybkiego przetwarzania zbiorów liczących co najmniej kilkadziesiąt terabajtów danych, to przy takiej skali wykorzystanie mechanizmów QueryGrid na potrzeby filtrowania czy prostego przetwarzania na poziomie bazy HDFS prowadzi do znaczących wzrostów efektywności, które wynikają choćby z braku konieczności transferowania danych” – dodaje Artur Borycki. Funkcje wprowadzone do platformy QueryGrid wraz z najnowszą jej wersją ułatwiają zrozumienie, w jaki sposób operacje przetwarzania wykonują się w systemach źródłowych, oraz na bieżąco – w trakcie wykonywania zadań przetwarzania – pozwalają optymalizować je tak, aby zmaksymalizować wydajność całego środowiska. Zwiększeniu wydajności przetwarzania danych na bazie platformy Hadoop sprzyja też zwiększenie skali wykorzystania narzędzi open source – takich jak silnik przetwarzania Presto. Teradata, zapewniając komercyjne wsparcie elementów integracyjnych Presto, angażuje się również w jego rozwój we współpracy ze społecznością deweloperów.
Eksperci zapowiadają, że kolejnym krokiem w rozwoju środowisk bazodanowych będzie automatyzacja działań związanych z wyborem rozwiązań przetwarzania i sposobów przetwarzania danych, które w danym momencie będą najbardziej odpowiednie do potrzeb biznesowych. Istotną rolę odgrywa też rozwój technologii sprzętowych. Mowa tu nie tylko o mechanizmach przetwarzania danych wprost w pamięci operacyjnej (in-memory), ale też o optymalizacji na poziomie jednostek obliczeniowych, na których bazują serwery obsługujące bazy danych.
Eksperci zapowiadają także, że kolejnym krokiem w rozwoju środowisk bazodanowych będzie automatyzacja działań związanych z wyborem rozwiązań przetwarzania i sposobów przetwarzania danych, które w danym momencie będą najbardziej odpowiednie do potrzeb biznesowych. Istotną rolę odgrywa również rozwój technologii sprzętowych. Mowa tu nie tylko o mechanizmach przetwarzania danych wprost w pamięci operacyjnej (in-memory), ale też o optymalizacji na poziomie jednostek obliczeniowych, na których bazują serwery obsługujące bazy danych. Optymalizacjami takimi dysponują dziś np. układy firmy Intel i Oracle SPARC. Rozwiązania zwiększające wydajność przetwarzania in-memory wprowadza także IBM.
Jedna baza dla wszystkich danych?
W miarę jak rośnie skala wykorzystania informacji w biznesie, pojawiają się dążenia do centralizacji środowisk bazodanowych, jednak tylko na poziomie sprzętowym. W ten trend wpisuje się koncepcja Software Defined Warehouse. Umożliwia ona w pełni programowe stworzenie zabezpieczeń pozwalających na oddzielenie od siebie wielu instancji bazy danych, działającej w ramach jednej platformy serwerowej. „Dysponując jedną maszyną obsługującą środowisko bazodanowe, jesteśmy w stanie, w bezpieczny sposób, obsługiwać odrębne, z perspektywy przechowywanych danych, komórki organizacyjne lub oddziały” – twierdzi Artur Borycki. Takie podejście pozwala lepiej wykorzystać zasoby bazodanowe w organizacjach wielodziałowych lub takich, które utrzymują odrębne bazy danych na potrzeby działalności w różnych krajach. W nowej wersji bazy Teradata wprowadzona została również funkcjonalność stref bezpieczeństwa, pozwalająca na ograniczenie dostępu do konkretnych zbiorów danych określonym użytkownikom bądź obiektom.
Jednocześnie, za sprawą nowych technologii, nie dość, że lawinowo rośnie ilość danych, to pojawiają się też ich nowe źródła. Źródła, które – z perspektywy szans biznesowych – nie mogą być przeoczone. Co więcej, powinny być jak najszybciej włączone do firmowego środowiska danych. „Kluczowego znaczenia nabiera łatwość integracji środowisk bazodanowych z rozmaitymi, nowymi technologiami i otwartość na nowe podejścia do przetwarzania danych. Jest to dość duża zmiana, ponieważ na miejsce środowiska zorientowanego typowo na przetwarzanie SQL pojawia się możliwość wykorzystania zupełnie nowych narzędzi, choćby rozwiązań open source” – wyjaśnia Artur Borycki.
Nic więc dziwnego, że producenci baz danych ułatwiają ich integrację z nowymi formatami danych. Jednym z nich jest JSON (JavaScript Object Notation). Stopniowo wchodzi on do powszechnego użycia, jako lekki format wymiany danych, np. na potrzeby komunikacji pomiędzy urządzeniami budującymi internet rzeczy. Wykorzystanie tego formatu danych umożliwia łatwiejsze pozyskiwanie informacji z niestandardowych źródeł danych, które nie mogą zostać wyposażone we własne mechanizmy przetwarzania czy porządkowania informacji następnie przekazywanych do hurtowni danych. Integrowaniu środowiska bazodanowego bezpośrednio z urządzeniami generującymi dane sprzyjają też nowe interfejsy programistyczne.