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

Podobne dokumenty