ElasticSearch pl prezentacja

background image

ElasticSearch - NoSQL DataBase

Marcin Kopacz

Department of Automatics

November 13, 2012

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

1 / 43

background image

ElasticSearch - NoSQL DataBase

Baz ˛

a danych

Baz ˛

a danych nazywamy zbiór danych o okre´slonej strukturze,

zapisany na zewn ˛etrznym no´sniku pami ˛eciowym komputera, mog ˛

acy

zaspokoi´c potrzeby wielu u˙zytkowników korzystaj ˛

acych z niego w

sposób selektywny w dogodnym dla siebie czasie (pierwsza definicja
sformułowana w 1962-1963).

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

2 / 43

background image

ElasticSearch - NoSQL DataBase

Pocz ˛

atki

Wraz z powstawaniem i rozwojem technologi informatycznych pojawiła
si ˛e potrzeba przechowywania i zarz ˛

adzania olbrzymimi ilo´sciami

danych. Pojawiły si ˛e wtedy dwa podstawowe modele danych: sieciowy
i hierarchiczny. Były ona niedoskonałe i ich głównymi wadami były
nadmierno´s´c danych, słaba integralno´s´c i silna zale˙zno´s´c od fizycznej
implementacji. W 1970 E. F. Codd zaproponował relacyjny model
danych, który był pozbawiony wad ówczesnych modeli.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

3 / 43

background image

Relacyjne Bazy Danych - zalety

z

Olbrzymia i niegasn ˛

aca popularno´s´c na rynku.

z

Posiadaj ˛

a prost ˛

a budow ˛e opieraj ˛

ac ˛

a si ˛e na relacjach i

powi ˛

azaniach pomi ˛edzy nimi, co jest naturalnym sposobem

odbierania danych przez człowieka.

z

Operacje na rekordach s ˛

a bardzo proste.

z

S ˛

a oparte na teorii relacji co daje solidny i łatwy zobrazowania

fundament teoretyczny.

z

Wyst ˛epuje w nich bardzo du˙za niezale˙zno´s´c fizyczna i logiczna
danych.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

4 / 43

background image

Relacyjne Bazy Danych - wady

z

W procesie modelowania tracimy informacj ˛e o tym, ˙ze w ´swiecie
rzeczywistym istniej ˛

a dwa identyczne obiekty.

z

„Sztuczny” j ˛ezyk opisu rzeczywisto´sci – s ˛

a nim dwuwymiarowe

tabelki.

z

Trudno´sci w przechowywaniu informacji zmiennych w czasie.

z

Trudno´sci w przechowywaniu informacji niepełnej,

z

Rozbudowane systemy posiadaj ˛

a tabele z setkami pól, ale cz ˛esto

tylko cz ˛e´s´c z nich jest istota w danym rekordzie czy zapytaniu.

z

Proces normalizacji bazy prowadzi do tworzenia wielu relacji, co
powoduje, ˙ze struktura danych przypomina drzewo. Poci ˛

aga to za

sob ˛

a ogromne konsekwencje w kwestii wydajno´sci (niestety

głównie negatywne).

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

5 / 43

background image

Skalowanie

Skalowanie

Skalowalno´s´c staje si ˛e jednym z wa˙zniejszych zagadnie ´n je´sli
wcze´sniej projektowy system zaczyna mie´c problemy z wydajno´sci ˛

a

(gwałtownie wzrasta ilo´s´c u˙zytkowników i danych). Jest to powszechne
zjawisko dotykaj ˛

ace wiele obecnych systemów.

Istniej ˛

a dwa podej´scia do tego zagadnienia:

z

skalowanie poziome (ang. scalling out)

z

skalowanie pionowe (ang. scalling up)

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

6 / 43

background image

ElasticSearch - NoSQL DataBase

Skalowanie pionowe

Skalowanie pionowe polega na dodawaniu do serwera lepszego
procesora (szybszego, z wi ˛eksz ˛

a liczb ˛

a rdzeni), zwi ˛ekszeniu pami ˛eci

operacyjnej, wprowadzeniu szybszych kanałów dyskowych (IDE SATA
SCSI), itd.

Ten typ rozbudowy, poza kosztami poniesionymi na jego zakup i
wdro˙zenie nie wi ˛

a˙ze si ˛e z ˙zadnymi dodatkowymi nakładami, a

jednocze´snie od razu pozwala cieszy´c si ˛e lepsz ˛

a wydajno´sci ˛

a.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

7 / 43

background image

ElasticSearch - NoSQL DataBase

Skalowanie poziome

Polega na dodawaniu kolejnych serwerów. Wi ˛ekszo´s´c SZBD
umo˙zliwia stosowanie takiego rozwi ˛

azania, wi ˛

a˙ze si ˛e to jednak z

konieczno´sci ˛

a zakupu dodatkowych licencji oraz serwerów.

Jest równie˙z trudniejsze we wdra˙zaniu i utrzymaniu, a co
najwa˙zniejsze dodawanie kolejnych serwerów nie zawsze przynosi
oczekiwane rezultaty.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

8 / 43

background image

ElasticSearch - NoSQL DataBase

Skalowanie poziome - replikacji

Najpopularniejsze podej´scia do poziomego skalowania to replikacja w
oparciu o schemat master-slave. Istnieje jeden w ˛ezeł master, który
odpowiada za obsług ˛e operacji modyfikacji danych oraz kilka w ˛ezłów
slave, które komunikuj ˛

a si ˛e z w ˛ezłem głównym aktualizuj ˛

ac posiadane

w replikach dane. Ich zadaniem jest wykonywanie operacji odczytu.

Drugim sposobem replikacji jest podział bazy na cz ˛e´sci (and.
sharding). Polega to na wył ˛

aczeniu grup tabel u˙zywanych razem w

zapytaniach i przenoszeniu ich na osobne serwery. Wymaga to zmian
w logice aplikacji i nie zawsze jest mo˙zliwe do zastosowania.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

9 / 43

background image

Twierdzenie CAP

Wysuni ˛ete przez Erica Brewera w 2000 roku podczas Symposium on
Principles of Distributed Computing.

System rozproszony nie mo˙ze jednocze´snie zapewnia´c:

z

spójno´sci (ang. consistency) - otrzymywanie identycznych
odpowiedzi na zapytania kierowane w tym samym kwancie czasu
do ró˙znych w ˛ezłów,

z

dost ˛epno´sci (ang. availability) - nieuszkodzony w ˛ezeł systemu
musi niezwłocznie wysła´c odpowied´z na ka˙zde zapytanie, jakie
otrzyma,

z

odporno´sci na podziały (ang. partition tolerance) — utrata
wiadomo´sci w przesyle nie mo˙ze skutkowa´c utraceniem spójno´sci
lub dost ˛epno´sci.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

10 / 43

background image

Twierdzenie CAP cd.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

11 / 43

background image

Twierdzenie CAP cd.

Relacyjne bazy danych zapewniaj ˛

a spójno´s´c i dost ˛epno´s´c, czego

kosztem s ˛

a problemy ze skalowalno´sci ˛

a na wielu maszynach. Obecne

systemy przetwarzaj ˛

a olbrzymie ilo´sci informacji, dlatego dalsza

skalowalno´s´c jest niezb ˛edna.

Bazy danych NoSQL pozwalaj ˛

a rozwi ˛

aza´c problem skalowalno´sci

jednak za cen ˛e utraty cz ˛e´sci spójno´sci b ˛

ad´z dost ˛epno´sci.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

12 / 43

background image

ElasticSearch - NoSQL DataBase

Co to jest „NoSQL”?

Termin „NoSQL” jest rozwini ˛eciem “Not only SQL i oznacza szerok ˛

a

gam ˛e systemów zarz ˛

adzania bazami danych, identyfikowanych

poprzez brak przynale˙zno´sci do systemów opartych o model relacyjny.

Termin ten został wyprowadzony przez Carlo Strozzi w 1998, a w 2009
roku Eric Evans u˙zył tego terminu w kontek´scie „the emergence of a
growing number of non-relational, distributed data stores”.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

13 / 43

background image

ElasticSearch - NoSQL DataBase

„NoSQL” DataBases

z

Nie s ˛

a zbudowane na tablicach (relacjach).

z

Generalnie, nie u˙zywaj ˛

a j ˛ezyka SQL (structured query language)

do manipulacji danymi.

z

Zwykle nie u˙zywaj ˛

a operacji zł ˛

acze ´n.

z

Umo˙zliwiaj ˛

a łatwe skalowanie w poziomie.

z

Najcz ˛e´sciej wysoce zoptymalizowanie w kierunku operacji
pobierania i doł ˛

aczania.

z

Cz ˛esto oferuj ˛

a mał ˛

a funkcjonalno´s´c zwi ˛

azan ˛

a z

przechowywaniem danych (np. poprzez klucz-warto´s´c)

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

14 / 43

background image

ACID

Transakcje w relacyjnych bazach posiadaj ˛

a szereg wła´sciwo´sci

okre´slonych jako ACID:

z

atomowo´s´c - ka˙zda transakcja jest jedn ˛

a jednostk ˛

a przetwarzania,

co oznacza, ˙ze wykonuje si ˛e w cało´sci albo nie wykonuje si ˛e w
ogóle.

z

spójno´s´c - ˙zadne wykonanie transakcji nie jest w stanie naruszy´c
zasad integralno´sci systemu.

z

izolacja - współbie˙znie wykonuj ˛

ace si ˛e transakcje nie widz ˛

a

wprowadzonych przez inne transakcje zmian, a˙z do zako ´nczenia
ich wykonywania.

z

trwało´s´c - gwarancja, ˙ze zmiany wprowadzone przez zako ´nczon ˛

a

sukcesem transakcje s ˛

a na stałe zapisane w systemie i dost ˛epne.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

15 / 43

background image

BASE

Podej´scie w całkowitej opozycji do wcze´sniejszego to BASE, które
opiera si ˛e na :

z

podstawowa dost ˛epno´s´c - system pozostaje dost ˛epny, ale nie
musi koniecznie zapewnia´c dost ˛epno´sci wszystkich elementów w
ka˙zdej chwili czasu.

z

niestały stan - wprowadzone informacje, mog ˛

a one ulec

automatycznej zmianie lub usuni ˛eciu, gdy nie zostan ˛

a w

ustalonym czasie od´swie˙zone przez u˙zytkownika, innymi słowy
informacje mog ˛

a straci´c wa˙zno´s´c.

z

ostateczna spójno´s´c - dane w bazie nie zawsze s ˛

a spójne.

Zakładamy jednak, ˙ze po odpowiednio długim czasie bez nowych
zamian wszystkie repliki w w ˛ezłach b ˛ed ˛

a identyczne.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

16 / 43

background image

Podział wzgl ˛edem struktury danych:

z

Bazy dokumentowe (ang. document stores) (CouchDB,
MongoDB, OrientDB, ElasticSearch, Terrastore, SimpleDB)

z

Bazy grafowe (ang. graph stores) (Triplestores: Virtuoso)

z

Bazy klucz-warto´s´c (ang. key-value stores) (Dynamo, Cassandra,
Voldemort, Riak, Redis, Membase, Membrain)

z

Bazy obiektowe (ang. object databases) (Loxim)

z

Bazy kolumnowe (ang. tabular stores) (BigTable, Mnesia,
HyperTable, ScaleDB)

z

Przestrzenie krotek (ang. tuple stores) (Jini, Apache River -
JavaSpaces)

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

17 / 43

background image

ElasticSearch - NoSQL DataBase

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

18 / 43

background image

ElasticSearch - NoSQL DataBase

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

19 / 43

background image

ElasticSearch - NoSQL DataBase

z

Jest to rozproszony, open source’owy silnik wyszukiwania oparty
na bibliotece Apache Lucene.

z

Został napisany od podstaw przez Shay Banon’a jako “skalowalne
rozwi ˛

azanie do wyszukiwa ´n” dla Projektu Compose.

z

Pierwsza wersja została wydana w lutym 2010 roku.

z

W pełni wykorzystuje wzorzec architektury REST (ang.
Representational State Transfer).

z

Jest napisany w j ˛ezyku Java i rozpowszechniany zgodnie
warunkami licencji Apache.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

20 / 43

background image

Representational State Transfer (REST)

REST - jest to styl architektury oprogramowania dla systemów
rozproszonych takich jak sie´c WWW. Stał on si ˛e dominuj ˛

acym

modelem dla Web serwisów. Jest efektem wielu lat do´swiadcze ´n przy
projektowaniu protokołu HTTP.

Model ten opisuje charakterystyki i ograniczenia makro-interakcji
pomi ˛edzy czterema elementami sieci, mianowicie: bazowymi
serwerami, portami, serwerami proxy i klientami, bez zakładania
ogranicze ´n na poszczególnych uczestników. REST zasadniczo
reguluje prawidłowe zachowanie tych uczestników (skalowanie
interakcji, powszechno´s´c interfejsu, niezale˙zno´s´c rozmieszczenia
elementów, elementy po´srednicz ˛

ace w celu zmniejszenia opó´znie ´n,

egzekwowanie bezpiecze ´nstwa i hermetyzacji starszych systemów).

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

21 / 43

background image

ElasticSearch - NoSQL DataBase

ElasticSearch - indeksowanie

ElasticSearch jest w stanie osi ˛

agn ˛

a´c bardzo szybk ˛

a odpowied´z

poniewa˙z zamiast wyszukiwania bezpo´srednio poprzez tekst u˙zywa
wyszukiwania po indeksach. Indeksowanie odbywa si ˛e przez indeks
inwersyjny. Jego działanie mo˙zna zobrazowa´c do pobierania stron w
ksi ˛

a˙zce zwi ˛

azanych z pewnym kluczem poprzez skanowanie indeksu

na ko ´ncu ksi ˛

a˙zki zawieraj ˛

acego podane słowo klucz.

Do tworzenia tych indeksów wykorzystywane s ˛

a bezpo´srednio

rozwi ˛

azania zawarte w bibliotece Apache Lucene

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

22 / 43

background image

ElasticSearch - reprezentacja danych

Dane w ElasticSearch reprezentowane s ˛

a wył ˛

acznie w postaci JSON

(ang. JavaScript Object Notation). Równie˙z wi ˛ekszo´s´c konfiguracji jest
zapisana w tym formacie (cz ˛e´s´c jest w YAML-u). Poni˙zej przykład
opisania ksi ˛

a˙zki w tym j ˛ezyku.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

23 / 43

background image

ElasticSearch - NoSQL DataBase

ElasticSearch - główne elementy

z

Cluster

z

Node

z

Shard and Replica

z

Index

z

Dokument

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

24 / 43

background image

ElasticSearch - struktura danych

W ElasticSearch’u jednostk ˛

a wyszukiwania i indeksowania jest

dokument. Indeks składa si ˛e z jednego lub wi ˛ecej dokumentów, a
dokument mo˙ze składa´c si ˛e z jednego lub wi ˛ecej pól. W terminologii
bazodanowej, dokument odpowiada wierszu tabeli, a pole odpowiada
kolumnie tabeli. Pole tworzy para klucz-warto´s´c.

Dzi ˛eki temu rozwi ˛

azaniu ElasticSearch nie ma sztywnego schematu,

przynajmniej w teorii. W praktyce chocia˙z nie jest wymagane aby
okre´sli´c schemat przed indeksowaniem dokumentu, to jednak
niezb ˛edne jest dodanie deklaracji mapowania je˙zeli wymagamy
czegokolwiek ponad najbardziej podstawowe pola i operacje.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

25 / 43

background image

ElasticSearch - struktura danych

Mapowanie opisuje:

z

jakie pola wyst ˛epuj ˛

a,

z

które pola powinny by´c u˙zywane jako klucze unikalne i
podstawowe,

z

które pola s ˛

a wymagane,

z

jak indeksowa´c i przeszukiwa´c ka˙zde pole,

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

26 / 43

background image

ElasticSearch - NoSQL DataBase

ElasticSearch - reprezentacja danych

W ElasticSearch, indeks mo˙ze przechowywa´c dokumenty ró˙znych
"typów mapowania". Mo˙zna skojarzy´c wiele definicji mapowania dla
ka˙zdego typu mapowania. Typ mapowania jest sposób rozdzielania
dokumentów w indeksie w logiczne grupy.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

27 / 43

background image

ElasticSearch - NoSQL DataBase

Moduły

ElasticSearch składa si ˛e z kilkunastu modułów, z których ka˙zdy
odpowiada za wydzielon ˛

a funkcjonalno´s´c:

z

Discovery (wykrywanie na bie˙z ˛

aco nodów w clustrze)

z

Gateway (utrwalanie zmian w metadanych clustra)

z

HTTP (udost ˛epnienie ElasticSearch’owego API poprzez HTTP)

z

Transport (wewn ˛etrzna komunikacja pomi ˛edzy nodami)

z

Network (udost ˛epnianie ustawie ´n sieciowych pomi ˛edzy nodami)

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

28 / 43

background image

ElasticSearch - NoSQL DataBase

z

Indices (kontrola globalnie zarz ˛

adzanych ustawie ´n wszystkich

indeksów)

z

Cluster (zarz ˛

adzanie alokacj ˛

a shardów dla nodów)

z

Scripting (obsługa wykonywania skryptów)

z

Thread Pool (zarz ˛

adzanie pulami w ˛

atków i ich konsumpcj ˛

a

pami ˛eci)

z

Node (kontrola zaawansowanych ustawie ´n nodów)

z

Plugins, JMX, memcached, Thrift

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

29 / 43

background image

ElasticSearch - instalacja

z

Pobieramy i rozpakujemy paczk˛e oficjalnej dystrybucji
ElasticSearch’a.

z

Uruchamiamy z konsoli “bin/elasticsearch -f” dla unix’a lub
“bin/elasticsearch.bat” dla systemu windows.

z

W oddzielnej konsoli testujemy działanie za pomoc ˛

a komendy

“curl -X GET http:/localhost:9200/”. Je´sli instalacja zako ´nczyła si ˛e
sukcesem otrzymamy informacje w stylu:

{ "ok" : true, "status" : 200, "name" : "Tommy Lightning",

"version" : { "number" : "0.19.11", "snapshot_build" : false },
"tagline" : "You Know, for Search" }

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

30 / 43

background image

ElasticSearch - Tworzenie node’a

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

31 / 43

background image

Wstawienie elementu do indeksu

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

32 / 43

background image

Operacja dodania POST

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

33 / 43

background image

Pobieranie elementu z indeksu

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

34 / 43

background image

Usuwanie elementów z indeksu

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

35 / 43

background image

Ustawienia i mapowanie

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

36 / 43

background image

Wyszukiwanie

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

37 / 43

background image

Wyszukiwanie cd.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

38 / 43

background image

Java API

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

39 / 43

background image

SQL-ElasticSearch hybrydy

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

40 / 43

background image

Korporacje wykorzystuj ˛

ace ElasticSearch:

z

Mozilla Foundation

z

StumbleUpon

z

Sony Computer Entertainment

z

InSTEDD

z

IGN

z

Sonian Inc.

z

Comarch

z

inne ...

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

41 / 43

background image

Podsumowanie:

z

Bazy NoSQL prze˙zywaj ˛

a rozkwit ze wzgl ˛edu na:

I

łatw ˛

a skalowalno´s´c,

I

wysok ˛

a wydajno´s´c,

I

elastyczny model danych,

I

nowo´s´c.

z

Wybór SZBD powinien zale˙ze´c od konkretnych zastosowa ´n.

z

U˙zycie nierelacyjnych baz danych jest nadu˙zywane i cz ˛esto nie
odpowiada im efektywnym obszarom zastosowa ´n.

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

42 / 43

background image

ElasticSearch - NoSQL DataBase

Dzi ˛ekuje za uwag ˛e

M. Kopacz (AGH)

ElasticSearch - NoSQL DataBase

November 13, 2012

43 / 43


Wyszukiwarka

Podobne podstrony:
Uploader pl Prezentacja1
Serwis PP 1 (945) Prawno Pracowniczy DODATEK www serwispp infor pl PREZENTY PROFESJONALNY TYGODNIK S
wyklad 2 Prezentacja danych PL
agh prezentacja 1 1 pl 3
zabawa z inspirander.pl, Śmieszne opakowania do prezentów, Śmieszne opakowania do prezentów
kawa, Studia PŁ, Ochrona Środowiska, Informatyka, prezentacja KAWA
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja2
agh prezentacja 1 1 pl 4
prezentacja kape pl
agh1 prezentacja pl 2
pozaplacowe systemy motywacji prezentacja [ www potrzebujegotowki pl ]
prezentacja [ www potrzebujegotowki pl ]
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja6
prezentacja na przedsiebiorstwo, BUDOWNICTWO PŁ, Semestr I, Ekonomia
Szata roślinna Polski tematy prezentacji, Studia PŁ, Ochrona Środowiska, szata roślinna
prezentacja - opis-[ www.potrzebujegotowki.pl ], Ściągi i wypracowania
Prezentacja PESA 1 10 09 2015 pl

więcej podobnych podstron