Przetwarzanie w pamięci

W informatyce przetwarzanie w pamięci jest nową technologią przetwarzania danych przechowywanych w bazie danych w pamięci . Przetwarzanie w pamięci jest jedną z metod radzenia sobie z wąskimi gardłami wydajności i zasilania spowodowanymi ruchem danych między procesorem a pamięcią główną. Starsze systemy opierały się na dyskowych pamięciach masowych i relacyjnych bazach danych wykorzystujących język zapytań SQL , ale coraz częściej uważa się je za niewystarczające do spełnienia wymagań Business Intelligence (BI) potrzeby. Ponieważ dostęp do przechowywanych danych jest znacznie szybszy, gdy są one umieszczone w pamięci o dostępie swobodnym (RAM) lub pamięci flash , przetwarzanie w pamięci umożliwia analizę danych w czasie rzeczywistym , umożliwiając szybsze raportowanie i podejmowanie decyzji w biznesie.

Analiza biznesowa oparta na dyskach

Struktury danych

dysk twardy komputera w postaci wielu tabel i wielowymiarowych struktur, względem których wykonywane są zapytania. Technologie dyskowe to systemy zarządzania relacyjnymi bazami danych (RDBMS), często oparte na strukturalnym języku zapytań ( SQL ), takim jak SQL Server , MySQL , Oracle i wiele innych. RDBMS są zaprojektowane z myślą o wymaganiach przetwarzania transakcyjnego . Korzystanie z bazy danych obsługującej wstawiania i aktualizacje oraz wykonywanie agregacji, łączenia (typowe w rozwiązaniach BI) są zazwyczaj bardzo powolne. Inną wadą jest to, że SQL jest zaprojektowany do wydajnego pobierania wierszy danych, podczas gdy zapytania BI zwykle obejmują pobieranie częściowych wierszy danych, co wiąże się z dużymi obliczeniami.

Aby poprawić wydajność zapytań, konstruowane są wielowymiarowe bazy danych lub kostki OLAP - zwane także wielowymiarowym przetwarzaniem analitycznym online (MOLAP). Projektowanie kostki to złożony i długotrwały proces, a zmiana struktury kostki w celu dostosowania do dynamicznie zmieniających się potrzeb biznesowych może być uciążliwa. Kostki są wstępnie wypełnione danymi, aby odpowiedzieć na określone zapytania i chociaż zwiększają wydajność, nadal nie nadają się do odpowiadania na zapytania ad hoc.

Pracownicy działu IT poświęcają dużo czasu na optymalizację baz danych, tworzenie indeksów i agregatów , projektowanie kostek i schematów gwiaździstych , modelowanie danych i analizę zapytań.

Szybkość przetwarzania

Odczyt danych z dysku twardego jest znacznie wolniejszy (prawdopodobnie setki razy) w porównaniu z odczytem tych samych danych z pamięci RAM. Szczególnie podczas analizowania dużych ilości danych wydajność jest poważnie obniżona. Chociaż SQL jest bardzo potężnym narzędziem, wykonanie złożonych zapytań zajmuje stosunkowo dużo czasu i często skutkuje obniżeniem wydajności przetwarzania transakcyjnego. Aby uzyskać wyniki w akceptowalnym czasie odpowiedzi, wiele hurtowni danych zostało zaprojektowanych tak, aby wstępnie obliczać podsumowania i odpowiadać tylko na określone zapytania. Aby zwiększyć wydajność, potrzebne są zoptymalizowane algorytmy agregacji.

Narzędzia do przetwarzania w pamięci

Przetwarzanie pamięci może odbywać się za pośrednictwem tradycyjnych baz danych, takich jak Oracle , IBM Db2 lub Microsoft SQL Server , lub za pośrednictwem ofert NoSQL , takich jak siatka danych w pamięci, taka jak Hazelcast , Infinispan , Oracle Coherence lub ScaleOut Software. Zarówno w przypadku bazy danych w pamięci, jak i siatki danych , wszystkie informacje są początkowo ładowane do pamięci RAM lub pamięci flash zamiast na dyski twarde . Z siatką danych przetwarzanie odbywa się o godzinie trzeciej o rząd wielkości szybciej niż relacyjne bazy danych, które mają zaawansowane funkcje, takie jak ACID , które obniżają wydajność w zamian za dodatkową funkcjonalność. Pojawienie się kolumnocentrycznych baz danych , które razem przechowują podobne informacje, umożliwia wydajniejsze przechowywanie danych i większą kompresję proporcje. Pozwala to na przechowywanie ogromnych ilości danych w tej samej przestrzeni fizycznej, zmniejszając ilość pamięci potrzebnej do wykonania zapytania i zwiększając szybkość przetwarzania. Wielu użytkowników i dostawców oprogramowania zintegrowało w swoich systemach pamięć flash, aby umożliwić bardziej ekonomiczne skalowanie systemów do większych zestawów danych. Firma Oracle integruje pamięć flash z Oracle Exadata w celu zwiększenia wydajności. Oprogramowanie Microsoft SQL Server 2012 BI/Data Warehousing zostało połączone z macierzami pamięci flash Violin Memory , aby umożliwić przetwarzanie w pamięci zestawów danych większych niż 20 TB.

Użytkownicy wysyłają zapytania do danych załadowanych do pamięci systemu, unikając w ten sposób wolniejszego dostępu do bazy danych i wąskich gardeł wydajności. Różni się to od buforowania , bardzo powszechnie stosowanej metody przyspieszania wykonywania zapytań, tym, że bufory są podzbiorami bardzo konkretnych, predefiniowanych, uporządkowanych danych. Dzięki narzędziom in-memory dane dostępne do analizy mogą być tak duże, jak hurtownia danych lub mały magazyn danych, który jest w całości w pamięci. Może to być szybko dostępne dla wielu równoczesnych użytkowników lub aplikacji na poziomie szczegółowym i oferuje potencjał ulepszonej analizy oraz skalowania i zwiększania szybkości aplikacji. Teoretycznie poprawa szybkości dostępu do danych wynosi od 10 000 do 1 000 000 razy w porównaniu z dyskiem. [ potrzebne źródło ] Minimalizuje również potrzebę dostrajania wydajności przez personel IT i zapewnia szybszą obsługę użytkowników końcowych.

Zalety technologii przetwarzania w pamięci

Pewne zmiany w technologii komputerowej i potrzeby biznesowe mają tendencję do zwiększania względnych zalet technologii in-memory.

  • prawem Moore'a sprzęt staje się coraz tańszy i wydajniejszy . Moc obliczeniowa podwaja się co dwa do trzech lat przy jednoczesnym spadku kosztów. Przetwarzanie procesora, pamięć i przechowywanie na dysku podlegają pewnym odmianom tego prawa. Również innowacje sprzętowe, takie jak architektura wielordzeniowa , pamięć flash NAND , serwery równoległe i zwiększone możliwości przetwarzania pamięci, oprócz innowacji programowych, takich jak bazy danych oparte na kolumnach, techniki kompresji i obsługa tabel agregatów, przyczyniły się do wzrostu popytu na produkty.
  • Pojawienie się 64-bitowych systemów operacyjnych , które umożliwiają dostęp do znacznie większej ilości pamięci RAM (do 100 GB lub więcej) niż 2 lub 4 GB dostępne w systemach 32-bitowych. Zapewniając terabajty (1 TB = 1024 GB) miejsca na przechowywanie i analizę, 64-bitowe systemy operacyjne umożliwiają skalowalność przetwarzania w pamięci. Użycie pamięci flash umożliwia bardziej ekonomiczne skalowanie systemów do wielu terabajtów.
  • Rosnąca ilość danych oznacza, że ​​tradycyjne hurtownie danych nie są już w stanie przetwarzać danych w sposób terminowy i dokładny. Proces wyodrębniania , przekształcania, ładowania (ETL), który okresowo aktualizuje hurtownie danych danymi operacyjnymi, może trwać od kilku godzin do tygodni. Tak więc w dowolnym momencie dane mają co najmniej jeden dzień. Przetwarzanie w pamięci umożliwia natychmiastowy dostęp do terabajtów danych w celu raportowania w czasie rzeczywistym.
  • Przetwarzanie w pamięci jest dostępne po niższych kosztach w porównaniu z tradycyjnymi narzędziami BI i może być łatwiej wdrażane i konserwowane. Według badania firmy Gartner [ potrzebne źródło ] wdrożenie tradycyjnych narzędzi BI może zająć nawet 17 miesięcy. Wielu dostawców hurtowni danych wybiera technologię in-memory zamiast tradycyjnego BI, aby przyspieszyć czas wdrożenia.
  • Zmniejsza zużycie energii i zwiększa przepustowość dzięki mniejszym opóźnieniom dostępu oraz większej przepustowości pamięci i równoległości sprzętowej.

Zastosowanie w biznesie

Szeroka gama produktów in-memory zapewnia możliwość łączenia się z istniejącymi źródłami danych i dostęp do bogatych wizualnie interaktywnych pulpitów nawigacyjnych. Dzięki temu analitycy biznesowi i użytkownicy końcowi mogą tworzyć niestandardowe raporty i zapytania bez konieczności przeszkolenia i posiadania specjalistycznej wiedzy. Łatwa nawigacja i możliwość modyfikowania zapytań w locie jest zaletą dla wielu użytkowników. Ponieważ te pulpity nawigacyjne można wypełniać świeżymi danymi, użytkownicy mają dostęp do danych w czasie rzeczywistym i mogą tworzyć raporty w ciągu kilku minut. Przetwarzanie w pamięci może być szczególnie przydatne w call center i zarządzaniu magazynem.

Dzięki przetwarzaniu w pamięci zapytanie do źródłowej bazy danych jest wysyłane tylko raz, zamiast uzyskiwania dostępu do bazy danych za każdym razem, gdy wykonywane jest zapytanie, co eliminuje powtarzające się przetwarzanie i zmniejsza obciążenie serwerów baz danych. Dzięki zaplanowaniu zapełniania bazy danych w pamięci w ciągu nocy, serwery bazy danych mogą być używane do celów operacyjnych w godzinach szczytu.

Przyjęcie technologii in-memory

Przy dużej liczbie użytkowników wymagana jest duża ilość pamięci RAM do konfiguracji w pamięci, co z kolei wpływa na koszty sprzętu. Inwestycja jest bardziej odpowiednia w sytuacjach, w których szybkość odpowiedzi na zapytanie ma wysoki priorytet oraz gdzie występuje znaczny wzrost wolumenu danych i wzrost zapotrzebowania na narzędzia do raportowania; może to nadal nie być opłacalne, jeśli informacje nie podlegają szybkim zmianom. bezpieczeństwo , ponieważ narzędzia in-memory udostępniają użytkownikom końcowym ogromne ilości danych. Twórcy radzą, aby dostęp do danych mieli tylko upoważnieni użytkownicy.

Zobacz też