Perspektywy zastosowania baz danych NoSQL w inteligentnych
Transkrypt
Perspektywy zastosowania baz danych NoSQL w inteligentnych
PRACE NAUKOWE POLITECHNIKI WARSZAWSKIEJ z. 90 Transport 2013 Andrzej Czerepicki Politechnika Warszawska, Wydział Transportu PERSPEKTYWY ZASTOSOWANIA BAZ DANYCH NoSQL W INTELIGENTNYCH SYSTEMACH TRANSPORTOWYCH Rękopis dostarczono, marzec 2013 Streszczenie: W artykule przedstawiono ideę zastosowania baz danych NoSQL we współczesnych inteligentnych systemach informatycznych w transporcie. Zaprezentowano przesłanki do rozwoju nierelacyjnych baz danych oraz potencjalne obszary ich zastosowań. Na przykładach prostych struktur danych zilustrowano koncepcje funkcjonowania poszczególnych rodzajów baz danych NoSQL. Przedstawiono kryteria decydujące o możliwości zastosowania nierelacyjnej bazy danych w informatycznym systemie transportowym określonego rodzaju. Słowa kluczowe: nierelacyjne bazy danych, inteligentne systemy transportowe, informatyka 1. WSTĘP Współczesną tendencją rozwoju systemów informatycznych w transporcie jest odejście od klasycznego schematu scentralizowanego systemu zarządzania na rzecz architektury rozproszonej heterogenicznej, która łączy dane z różnych źródeł i udostępnia je wielu użytkownikom jako usługę sieci Internet. W systemach takich podstawową rolę odgrywają użytkownicy, którzy są jednocześnie dostawcami oraz konsumentami danych. Przykładem mogą posłużyć mobilne systemy nawigacji samochodowej, które nie tylko pobierają z serwera dane o planowanej trasie, ale również wysyłają zwrotną informację dotyczącą prędkości poruszania się oraz faktycznego czasu przejazdu. Integracja współczesnych technologii informatycznych takich jak usługi internetowe Web Services, interfejs programowania map interaktywnych Google Maps API, system transmisji pakietowej danych 3G oraz system nawigacji satelitarnej GPS, pozwala na zbudowanie systemów rozproszonych o znacznie niższych niż systemy scentralizowane kosztach oraz w krótszym czasie. Centralnym elementem każdego systemu informatycznego w transporcie jest baza danych. Powszechnie stosowane relacyjne bazy danych dobrze sprawdzają się w rozwiązaniach o architekturze scentralizowanej, gdzie użytkownicy są najczęściej konsumentami danych a operacje odczytu danych są wykonywane znacznie częściej niż 30 Andrzej Czerepicki operacje ich wstawiania lub aktualizacji. W systemach rozproszonych baza danych dalej odgrywa centralną rolę, zmienia się natomiast tryb jej funkcjonowania: dane operacyjne są nadsyłane przez coraz większą liczbę użytkowników systemu. Kluczowym problemem jest spadek wydajności serwera bazy danych, który musi obsłużyć wszystkie transakcje niezależnie od źródła ich pochodzenia. Rozwiązaniem problemu może być wykorzystanie baz danych typu NoSQL, które w określonych warunkach charakteryzują się większą wydajnością niż klasyczne systemy relacyjne. Celem artykułu jest przedstawienie zasad działania, wad oraz zalet poszczególnych kategorii baz danych NoSQL, oraz oszacowanie możliwości ich zastosowania w wybranych obszarach inteligentnych systemów informatycznych w transporcie. 2. KONCEPCJA BAZ DANYCH NoSQL Termin „NoSQL” (ang. not only SQL) charakteryzuje grupę współczesnych systemów baz danych zorientowanych na zastosowanie w rozproszonych systemach informatycznych [1]. Przesłanki szybkiego rozwoju baz danych NoSQL wynikają z niezdolności klasycznych relacyjnych baz danych SQL do efektywnego obsługiwania bardzo dużych zbiorów danych. Dane te zgromadzone zostały przez popularne serwisy internetowe takie jak portale społecznościowe, platformy aukcyjne, aplikacje typu e-commerce itp. Relacyjne bazy danych są systemami skalowalnymi pionowo. Wynika to ze specyfiki relacyjnego modelu danych, przede wszystkim w zakresie integralności referencyjnej kluczy własnych i obcych. Na skutek tego zwiększenie wydajności przetwarzania danych łatwiej jest uzyskać poprzez podniesienie parametrów technicznych jednostki centralnej aniżeli poprzez stosowanie podziału na klastry. Ideologia baz danych NoSQL wywodzi się z twierdzenia CAP [2]. Zgodnie z tym twierdzeniem, w systemie obliczeń rozproszonym można zapewnić nie więcej niż dwie z trzech bazowych cech: integralność danych we wszystkich węzłach, dostępność danych oraz zdolność do partycjonowania na sekcje izolowane. Bazy danych NoSQL odnoszą się do kategorii systemów, w których wydajna obsługa dużych zbiorów danych realizowana jest poprzez partycjonowanie, kosztem częściowej rezygnacji z zasady integralności lub dostępności danych [3]. W zależności od realizowanej koncepcji, bazy danych NoSQL można podzielić na kilka podstawowych kategorii [4]: • bazy danych „klucz-wartość”, • bazy danych kolumnowe, • bazy danych grafowe. Perspektywy zastosowania baz danych NoSQL w inteligentnych systemach transportowych 31 3. RODZAJE BAZ DANYCH NoSQL 3.1. BAZY DANYCH „KLUCZ-WARTOŚĆ” Koncepcja modelu „klucz-wartość” polega na przechowaniu danych w prostych strukturach typu lista, wiersz, hash-tablica adresowanych za pomocą kluczy. Struktura przechowywanych wartości może być inna dla różnych kluczy (rys. 3.1). Ze względu na hierarchiczną strukturę, bazy danych tego typu zapewniają pełną replikację danych co umożliwia klientom szybszy odczyt danych. Do głównych zalet baz „klucz-wartość” odnosi się prostota oraz szybkość działania. Można je w pewnym uproszczeniu traktować jako tabelę relacyjnej bazy danych z dwoma kolumnami „klucz” oraz „wartość”. Wadą natomiast jest trudność implementacji złożonej semantycznej struktury danych o wysokim stopniu powiązania encji. Spośród systemów wykorzystujących model NoSQL typu „klucz-wartość” należy wyróżnić serwis społecznościowy „Nasza klasa” oparty o rozwiązanie Redis [5]. Perspektywiczność tej klasy baz danych podkreśla również wejście na rynek produktu Oracle NoSQL Database. Rys. 3.1. Przykładowa struktura bazy danych „klucz-wartość” 32 Andrzej Czerepicki 3.2. BAZY DANYCH KOLUMNOWE Koncepcja kolumnowych baz danych (ang. Column-Oriented Database Systems, CDBMS) polega na wspólnym przechowaniu danych umieszczonych w kolumnach tabel (rys. 3.2). Ułatwia to partycjonowanie tabel, ponieważ dane mogą fizycznie się znajdować na różnych komputerach. Przy wybieraniu danych z określonej kolumny, operacja odczytu wykonuje się szybciej ze względu na sekwencyjne ulokowanie danych. Ponieważ dane w kolumnie tabeli należą do określonej dziedziny, zakres wartości dopuszczalnych dla kolumny może być o wiele mniejszy, niż dla wiersza. Stanowi to przesłankę zastosowania kompresji dla danych umieszczonych w kolumnie, przy czym dla różnych typów danych można stosować odmienne algorytmy kompresji. Struktura tabeli w bazie danych nr_rej pozycja_gps … prędkość Przechowanie danych wierszami WB4534 (52.2328, 20.9093) … 55,2 Przechowanie danych kolumnami WB4534 (52.2328, 20.9093) … 55,2 Umieszczenie rekordów danych na nośniku fizycznym Rys. 3.2. Idea przechowania danych w kolumnowej bazie danych Perspektywy zastosowania baz danych NoSQL w inteligentnych systemach transportowych 33 Do zalet kolumnowych baz danych należy odnieść: • wysoką skalowalność poziomą: wybór konkretnego serwera w klastrze zależy od kolumn występujących w zapytaniu, • wydajność przetwarzania danych rosnącą proporcjonalnie do liczby serwerów w klastrze ze względu na niski nakład na synchronizację danych, • możliwość stosowania popularnych technologii (np. ADO.NET, biblioteki ORM itp.) w aplikacjach wykorzystujących kolumnowe bazy danych bez wprowadzania istotnych zmian w warstwie logiki biznesowej wynikającą z przezroczystości interfejsów API kolumnowych baz danych dla użytkownika końcowego. Najczęściej wymienianymi wadami kolumnowych baz danych są: • czasochłonność operacji zapisu danych wynikająca z konieczności znalezienia pozycji wszystkich kolumn dla jednego wstawianego rekordu danych, • wysoka efektywność przetwarzania danych osiągana jest przy wybieraniu danych z małej liczby kolumn, • wysokie wymagania sprzętowe dotyczące CPU oraz maksymalne wykorzystanie pamięci operacyjnej RAM ze względu na kompresję oraz dekompresję danych. Jednym z pierwszych systemów CDBMS był Sybase IQ (lata 90. XX wieku). Obecnie grono kolumnowych systemów baz danych jest dość liczne i stale się powiększa [6]. Klasycznym przykładem współczesnego CDBMS jest system MonetDB zaliczany do kategorii systemów open-source [7]. 3.3. BAZY DANYCH GRAFOWE Idea organizacji modelu danych grafowego polega na przechowywaniu informacji w postaci grafu. Obiekty danych są przechowywane w węzłach grafu. Właściwości obiektów stanowią kolejne węzły grafu. W ten sposób uzyskuje się wysoką elastyczność struktury: każdy obiekt może posiadać dowolną liczbę właściwości, które mogą być dodawane dynamicznie w trakcie działania systemu. Stanowi to zasadniczą różnicę w porównaniu z modelem relacyjnym wymagającym odgórnego zadeklarowania struktury bazy. Relacje w modelu grafowym są implementowane jako krawędzie łączące węzły i również mogą posiadać właściwości (rys. 3.3). Kluczowe zalety grafowych baz danych: • elastyczność modelu danych pozwala na łatwą modyfikację struktury systemu, • efektywne przetwarzanie zapytań na danych semantycznie złożonych, • szybkie wyszukiwanie ścieżki w grafie wynika z założeń modelu grafowego. Implementacja systemów informatycznych z wykorzystaniem grafowej bazy danych może wymagać wprowadzenia nadmiarowości strukturalnej lub duplikowania danych szczególnie w przypadkach, gdy graf nie jest naturalnym odzwierciedleniem modelu przechowywanych danych. Operacja wyszukiwania w grafie pozwoli znaleźć optymalną trasę przejazdu, lecz raport z podsumowaniem sprzedaży biletów za okres będzie miał bardziej złożoną implementację niż analogiczne zapytanie w języku SQL na relacyjnej bazie danych. 34 Andrzej Czerepicki Dlatego w praktyce przy wykorzystaniu grafowych baz danych należy zwracać uwagę na możliwość stosowania naturalnego języka programowania do implementacji złożonych algorytmów. Przykładem temu może służyć system baz danych Neo4j [8] wspierający język programowania Java, co pozwala na budowanie aplikacji klasy Enterprise. Rys. 3.3. Koncepcja grafowej bazy danych 4. ZASTOSOWANIE BAZ DANYCH NoSQL W INTELIGENTNYCH SYSTEMACH TRANSPORTOWYCH Centralnym elementem Inteligentnych Systemów Transportowych (ang. Intelligent Transportation Systems, ITS) są systemy informatyczne. Zapewniają one funkcjonalność niezbędną do: • łączenia poszczególnych elementów ITS takich jak pojazdy, infrastruktura, osoby, w jedną integralną całość, • operacyjnego przetwarzania danych napływających z różnych źródeł (w terminologii baz danych – przetwarzania OLTP, ang. OnLine Transactional Processing) oraz podejmowania na ich podstawie decyzji taktycznych (np. zarządzanie ruchem na skrzyżowaniach), • gromadzenia danych w celu przeprowadzania analiz analitycznych (w terminologii baz danych – przetwarzania OLAP, ang. OnLine Analytical Processing) oraz Perspektywy zastosowania baz danych NoSQL w inteligentnych systemach transportowych 35 podejmowania na ich podstawie decyzji strategicznych (zmiana kierunków ruchu, czas postoju na światłach, rozkład jazdy transportu itp.). Zgodnie z klasyfikacją [9], wyróżniają osiem podstawowych obszarów ITS: • systemy informacji dla podróżujących, • systemy zarządzania ruchem, • systemy zarządzania komunikacją publiczną, • systemy elektronicznego poboru opłat, • systemy zarządzania flotami pojazdów komercyjnych, • systemy zarządzania kryzysowego w transporcie, • systemy bezpieczeństwa i kontroli pojazdów, • systemy zarządzania, przetwarzania i przechowywania danych. W celu określenia możliwości zastosowania baz danych NoSQL w poszczególnych obszarach ITS, w tablicy 4.1 przedstawiono wyniki analizy strategicznej SWOT nierelacyjnych baz danych, która obrazuje ich silne oraz słabe strony. Tablica 4.1 Analiza SWOT systemów baz danych NoSQL Mocne strony rozproszona architektura, wydajność przetwarzania danych, wysoka skalowalność, obsługa złożonych oraz nieregularnych struktur danych, możliwość asynchronicznego zapisu, otwartość kodu. Perspektywy systemy z duża liczbą użytkowników, wydajna obsługa prostych jednorazowych transakcji, integracja z usługami sieci WWW, perspektywy szybkiego rozwoju jako nowego segmentu baz danych. Słabe strony brak uniwersalnego języka zapytań, brak ogólnie przyjętych standardów, wysokie wymagania sprzętowe, słaba kontrola integralności danych, mały wybór narzędzi do analizy analitycznej. Zagrożenia odczyt niepewnej lub nieaktualnej informacji wyklucza zastosowanie w systemach krytycznych, wysoki koszt realizacji w systemach o mocnych związkach semantycznych danych, względnie krótki czas istnienia na rynku, mała liczba zrealizowanych projektów oraz mniejsze doświadczenie projektantów. Wymagania stawiane bazom danych stosowanym w ITS zależą od obszaru, do którego odnosi się konkretny system. Przy rozważaniu możliwości zastosowania bazy danych NoSQL w poszczególnych obszarach ITS należy przede wszystkim uwzględniać wymagania funkcjonalne w zakresie: • wydajności przetwarzania danych, • objętości przechowywanych danych, • liczby obsługiwanych użytkowników, • złożoności struktur danych oraz ich zmiany w czasie, • akceptowalności uzyskania wyniku nie spełniającego kryteria integralności, • konieczności przeprowadzania złożonych analiz analitycznych danych. 36 Andrzej Czerepicki Grafowe bazy danych ze względu na architekturę mają perspektywy zastosowania przede wszystkim w ITS przechowujących dane o trasie pojazdu. Należą do nich między innymi systemy informacji dla podróżujących (SIP), systemy zarządzania ruchem, komunikacją publiczną oraz flotą pojazdów. Wymienione systemy charakteryzują się dużą dynamiką zmian danych oraz koniecznością szybkiego podejmowania decyzji, zaś w przypadku SIP - dodatkowo dużą ilością odbiorców informacji. Kolumnowe bazy danych dodatkowo mogą być stosowane do przeprowadzania analizy informacji zgromadzonych w systemach zarządzania, przetwarzania i przechowywania danych, przede wszystkim ze względu na możliwość przechowywania danych o złożonej strukturze. Wydajność algorytmów wyznaczania tras jest tu jednak niższa w porównaniu z grafowymi bazami danych, dlatego przy projektowaniu systemu należy rozważyć użycie kombinacji obu wymienionych kategorii baz danych NoSQL. Bazy danych „klucz-wartość” nie mogą samodzielnie pełnić rolę podstawowej bazy danych systemu informatycznego w transporcie ze względu na ograniczone możliwości powiązania przechowywanych danych. Tym nie mniej ich wysoka wydajność oraz skalowalność może być wykorzystana w celu zbierania oraz wstępnej analizy danych napływających z różnych źródeł, ich filtracji oraz grupowania wg określonych charakterystyk (kluczy), z następnym przekazaniem do dalszej obróbki (tab. 4.2.). Tablica 4.2 Obszary potencjalnych zastosowań baz danych NoSQL w ITS Rodzaj bazy danych Systemy informacji dla podróżujących Systemy zarządzania ruchem Systemy zarządzania komunikacją publiczną Systemy elektronicznego poboru opłat Systemy zarządzania flotami pojazdów komercyjnych Systemy zarządzania kryzysowego w transporcie Systemy bezpieczeństwa i kontroli pojazdów Systemy zarządzania, przetwarzania i przechowywania danych Kolumnowe bazy danych Tak (np. do operacyjnego przetwarzania danych) Tak (np. do monitorowania natężenia ruchu) Tak (w zakresie gromadzenia danych) Nie Grafowe bazy danych Tak (np. do planowania podróży oraz wyznaczania trasy) Bazy danych klucz-wartość Raczej tak (np. do udostępnienia lub wymiany prostych informacji) Nie Tak (np. do wyznaczania trasy oraz monitorowania natężenia ruchu) Tak (np. analiza tras przejazdu) Nie Tak (np. do śledzenia pojazdów) Tak (np. do rejestracji trasy przejazdu) Nie Nie Raczej tak (np. do wymiany krótkich informacji) Nie Nie Nie Nie Raczej tak (analiza informacji w hurtowni) Raczej nie Nie Nie Nie Perspektywy zastosowania baz danych NoSQL w inteligentnych systemach transportowych 37 5. PODSUMOWANIE Bazy danych NoSQL stanowią dynamicznie rozwijający się segment rynku systemów informatycznych przeznaczonych do składowania i przetwarzania dużych ilości danych. Zapotrzebowanie na inny niż relacyjny model danych wynika ze słabej poziomej skalowalności relacyjnych baz danych. Nierelacyjne bazy danych oferują wydajność, którą można utrzymywać na wysokim poziomie niezależnie od ilości danych w systemie. Ceną tego jest częściowa rezygnacja lub utrudniona realizacja mechanizmów zapewniających integralność danych lub ich dostępność. W informatycznych systemach w transporcie dotychczas stosowano relacyjne bazy danych. Wynika to między innymi ze stopniowego rozwoju ww. systemów, do niedawna stosowanych głównie w centrach zarządzania transportem. Sytuacja jednak się zmieniła, kiedy na rynku systemów informatycznych pojawiła się grupa aplikacji ukierunkowanych na zwykłego użytkownika końcowego. O ile we wcześniejszych systemach był on głównie konsumentem danych, teraz staje się również ich dostawcą. Zmienia to diametralnie wymagania do systemu, który powinien obsługiwać większą liczbę użytkowników dostarczających coraz więcej danych. Rozwiązaniem problemu wydajności może być zastosowanie w systemie informatycznym baz danych typu NoSQL. W artykule przedstawiono podstawowe rodzaje baz danych NoSQL, omówiono wkrótce zasady ich działania oraz dokonano analizy poszczególnych właściwości w kontekście potencjalnego wykorzystania w systemach informatycznych kategorii ITS. Zastosowanie baz danych NoSQL w transporcie jest ograniczone przez specyfikę tych systemów. Przede wszystkim należy wymienić brak jednolitego języka do przetwarzania danych, jakim jest język SQL dla relacyjnych baz danych. Po drugie, nie dla wszystkich kategorii systemów transportowych warunki częściowej integralności danych lub ich potencjalna niedostępność są do zaakceptowania – wyklucza to stosowanie baz NoSQL np. w systemach zarządzania kryzysowego. Po trzecie, migracja danych z już działających systemów na model danych realizowany w NoSQL wiąże się z poniesieniem dodatkowych kosztów. Dlatego w najbliższej perspektywie należy się spodziewać wdrożenia baz danych NoSQL jako rozwiązania uzupełniającego, stosowanego obok klasycznej relacyjnej bazy danych w celu: • skrócenia dostępu do często wykorzystywanych danych, • szybkiego składowania słabo ustrukturyzowanych danych w celu późniejszej obróbki (bazy „klucz-wartość”), • przeprowadzania analiz analitycznych na dużych zbiorach danych (bazy kolumnowe), • wspomagania systemów wyznaczania trasy pojazdu (bazy danych grafowe). Obecnie systemy baz danych NoSQL nie posiadają wbudowanych możliwości do analizowania zgromadzonych danych, lub posiadają je w bardzo ograniczonym zakresie. Dlatego jako jeden z kierunków dalszych badań należy wymienić metody i algorytmy przeprowadzania analizy analitycznej OLAP w bazach danych NoSQL. Kolejnym perspektywicznym kierunkiem badań jest opracowanie modelu danych grafowego do wspomagania wyznaczania optymalnej trasy pojazdów. 38 Andrzej Czerepicki Bibliografia 1. http://nosql-database.org/ 2. Brewer, Eric A.: Towards robust distributed systems // Proceedings of the XIX annual ACM symposium on Principles of distributed computing. — Portland, OR: ACM, 2000. 3. Brewer, Eric A. A Certain Freedom: Thoughts on the CAP Theorem // Proceeding of the XXIX ACM SIGACT-SIGOPS symposium on Principles of distributed computing. — N. Y.: ACM, 2010. 4. Skalski D.: NoSQL – nierelacyjne systemy baz danych // Software Developer, 08/2011, s. 10-16. 5. http://redis.io/topics/whos-using-redis 6. Abadi D., Boncz P., Harizopoulos S.: Column-Oriented Database Systems // Journal Proceedings of the VLDB Endowment, Vol. 2 Issue 2, 09/2009. 7. http://www.monetdb.org/Home 8. http://docs.neo4j.org/chunked/milestone/index.html 9. Przegląd ITS, 10/2007, s. 5. PERSPECTIVES OF USING NoSQL DATABASES IN INTELLIGENT TRANSPORTATION SYSTEMS Summary: This paper presents an idea of the use of NoSQL databases in modern intelligent transportation systems. Presented evidence for the development of non-relational databases and the potential areas of their application. Shows the concepts of functioning of various types of NoSQL databases on examples of simple data structures. Presents the criteria for the applicability of non-relational database in the intelligent transportation systems of a given type. Keywords: non-relational databases, intelligent transportation systems, informatics