Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

W praktyce Prelegent: Michał Cywiński

Podobne prezentacje


Prezentacja na temat: "W praktyce Prelegent: Michał Cywiński"— Zapis prezentacji:

1 w praktyce Prelegent: Michał Cywiński

2 Czym jest NoSQL? Wstęp do RavenDB

3 -Big Data! -Brak wielu tabel i skomplikowanych relacji… -…Więc także brak licznych kluczy! -Jak największa prostota użycia -Zachowanie odpowiedników relacji za pomocą zagnieżdżania kolekcji -Wysoka skalowalność -Skalowalność pozioma NoSQL Rozwiązania hybrydowe

4 (Nie)Skalowalność tradycyjnych baz SQL-owych Serwer bazy danych w przedsiębiorstwie zaczyna zwalniać i kończy się miejsce na jego dyskach Przedsiębiorstwo dokupuje serwer i prosi administratora o rozproszenie bazy danych Administrator jest sfrustrowany, Występują liczne problemy przy migracji i wdrażaniu drugiego serwera Przedsiębiorstwo kupuje nowe dyski SSD, wymienia procesor i dorzuca dodatkowe 64 GB pamięci RAM Jakiś czas później, administrator informuje, że serwer znowu jest wolny i wracamy na początek

5 Skalowalność rozwiązań NoSQL – Skalowanie horyzontalne Przedsiębiorstwo może łatwo dodawać kolejne serwery do swojej infrastruktury, może nawet część z nich mieć u siebie w firmie, a inne w chmurze!

6 Jakie zagrożenia niesie NoSQL? -Brak relacyjności i potrzeba przestawienia myślenia programistów -Obsługa relacyjności musi być realizowana wewnątrz kodu aplikacji -Brak JOIN-ów ;) -Stosunkowo młode rozwiązania

7 Co przechowujemy w bazie RavenDB? -Dokumenty, dokumenty, dokumenty – czyli JSON! -JSON to ładny sposób zapisu obiektu i jego właściwości, będący podzbiorem języka Javascript. -Mimo to jest on niezależny od języka i jest standardem podobnym do np.: XML -Możemy zatem w RavenDB przechowywać obiektu serializowane do JSON! -Relacje możemy obsłużyć np.: zagnieżdżając hierarchicznie listy

8 Przykład JSON

9 Instalacja, konfiguracja, podpięcie do projektu

10 Instalacja 1. WWW: 2. Dostępne dwie opcje: -Zip -Instalator 3. Instalujemy wersję development 4. Wersja dev zawiera przydatne biblioteki dla programistów 5. Biblioteki podpinamy do projektu najlepiej przez NuGet

11 Raven.Server.exe – Tutaj zaczynamy zabawę Działanie oparte o API dla.net oraz API HTTP dla innych technologii Wygodny interfejs zarządznia w Silverlight Log działań

12 DEMO: Działanie przykładowej aplikacji i wygląd danych serializowanych do JSON z poziomu panelu zarządzania bazą danych https://github.com/mcywinski/KsiazkaTel

13 Zarządzanie bazą danych

14 DEMO: Podpinanie bibliotek do obsługi RavenDB przez NuGet

15 Poznajemy podstawy RavenDB + C#

16 Potrzebne przestrzenie nazw Raven.Client – klasy i metody do podłączania się do bazy danych Raven.Client.Document – klasy i metody do zarządania zawartością bazy danych

17 DocumentStore https://github.com/JG rzybowski/RavenDB- demo cs/2.0/server/scaling- out/sharding -Może reprezentować bazę danych na pojedynczej instancji serwera -Może reprezentować bazę rozproszoną pomiędzy różnymi maszynami. Jest to rozwiązanie niewidoczne z punktu widzenia programisty (Sharding!) -1 DocumentStore/Aplikacja, ale wiele sesji -Polecam po warsztatach zapoznać się z linkami podanymi obok!

18 DocumentStore i jego sesja oraz podstawowe metody Złota zasada: 1 sesja oznacza dla nas 1 transakcję RavenDB został zaprojektowany z transakcyjnością w podstawowych założeniach -DocumentStore.Initialize() -IDocumentSession -DocumentStore.OpenSession() -IDocumentSession.Query () -LINQ to podstawa! -IDocumentSession.Store() -IDocumentSession.SaveChanges() IDocumentSession.Delete()

19 DocumentStore i jego sesja oraz podstawowe metody Blok using! Inicjalizacja DocumentStore Otwarcie sesji Działania C# w domyśle działa referencyjnie, więc wybrane dokumenty z bazy modyfikujemy w locie Odpowiednio używamy Store() i Delete() Zatwierdzamy transakcję SaveChanges() Transakcja zostaje zamknięta na życzenie programisty, zmiany są zapisane

20 DEMO: Używamy podstawowych funkcjonalności RavenDB

21 Lucene Syntax syntax.html var results = session.Advanced.LuceneQuery ().Where("name:*wa*").ToList(); foreach (Person p in results) { Console.WriteLine(p.name); }

22 DEMO: Lucene Syntax

23 Kolejne warsztaty: Sharding w RavenDB

24 Dziękuję!


Pobierz ppt "W praktyce Prelegent: Michał Cywiński"

Podobne prezentacje


Reklamy Google