Tematika. MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework

Hasonló dokumentumok
NoSql, Document Store, MongoDB. Gombos Gergő

Adatbázis-kezelő rendszerek alkalmazása. MongoDB beadandó feladat Programtervező informatikus szak

SQL Server High Availability

MySQL kontra MongoDB programozás. SQL és NoSQL megközelítés egy konkrét példán keresztül

SZERVER OLDALI JAVASCRIPT. 8. hét MongoDB, séma tervezés, performancia kérdések

MongoDB THE NOSQL DATABASE. Készítette: Hugyák Tamás v2.1.1

SQL Server High Availability. Bevezetés az SQL Server magas rendelkezésre állási megoldásaiba

Szathmáry László Debreceni Egyetem Informatikai Kar

Alternatív adatbázisok Gráfadatbázisok

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

mongodb gyakorlat április.

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

SQLServer. DB Recovery modes

Programozás alapjai. 5. előadás

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

API tervezése mobil környezetbe. gyakorlat

ANDROID ALKALMAZÁSFEJLESZTÉS

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

BEVEZETÉS Az objektum fogalma

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Adatbázis-kezelés. Harmadik előadás

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

SQLServer. Particionálás

webalkalmazások fejlesztése elosztott alapon

Üzemeltetési kihívások 2015

C#, OOP. Osztályok tervezése C#-ban

OOP és UML Áttekintés

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

S z á m í t ó g é p e s a l a p i s m e r e t e k

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Cisco Catalyst 3500XL switch segédlet

1 Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

RIA Rich Internet Application

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Másolatképzési technikák és azok felhasználási lehetőségei

Summer of LabVIEW The Sunny Side of System Design

Multimédiás adatbázisok

Programozási nyelvek Java

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Operációs rendszerek. Elvárások az NTFS-sel szemben

Adatbázis használata PHP-ből

Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok

Osztályok. 4. gyakorlat

Smalltalk 2. Készítette: Szabó Éva

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

Operációs rendszerek. UNIX/Linux fájlrendszerek

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter

Programozás I gyakorlat

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Szervervirtualizáció és fürtözés újdonságok a WS16 TP3-ban

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Az Oracle rendszer komponensei

Budapest Sysadmin Meetup Failover Cluster 1x1. Gál Tamás. Cloud Infrastructure TSP Microsoft Magyarország

Generikus Típusok, Kollekciók

Windows há lo záti ádminisztrá cio gyákorlát

SQLServer. SQLServer konfigurációk

GDi Esri Magyarország Felhasználói Konferencia Timár Gábor: Konkurens adatfeldolgozás ArcGIS rendszerben

Adatbázis-kezelés ODBC driverrel

GENERÁCIÓS ADATBÁZISOK A BIG DATA KÜLÖNBÖZŐ TERÜLETEIN

12.óra jquery Framework #1. Gyimesi Ákos

Verziószám: 1.0. Kiadás időpontja: MÁSOLATKÉSZÍTÉSI REND

Weblog elemzés Hadoopon 1/39

A DOLLÁROS PIZZA TÖRTÉNETE, AVAGY MENNYIT ÉR A BITCOIN?

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

SC Kérdés. SC Kérdés. SC Kérdés

Foglalkozási napló a 20 /20. tanévre

Microsoft SQL Server telepítése

PHP alapjai II. Vincze Dávid Miskolci Egyetem, IIT

RDBMS fejlesztési irányok. Ferris Wheel (óriáskerék) Jim Gray törvényei. Elosztott adatbázisok problémái. Elosztott adatbázisok

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

Collections. Összetett adatstruktúrák

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal.

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Szkriptnyelvek. 1. UNIX shell

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Üzleti kritikus alkalmazások Novell Open Enterprise Serveren

ZFS - Zettabyte File System

Szárnyas Gábor (BME) diáinak felhasználásával.

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

1. Kapcsolók konfigurálása

IP150 frissítés 4.20-ra

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

A JavaScript főbb tulajdonságai

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Átírás:

MONGODB

Tematika MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework

Koncepció párhuzamosítás: hardver infrastruktúra adta lehetőségeket kihasználni (sok szerver, sok core etb.) könnyen legyen skálázható fejlesztések támogatása: gyors és könnyű legyen változtatni komplex struktúrák, struktúrűtlan vagy polimorf adatok támogatása

MongoDB= document oriented JSON: Java Script Object Notification nyelvfüggetlen { } x : 3, y : abc, z : [1,2], d : { }

JSON: struktúrált dokumentumok tárolására szolgál hasonló dokmentom formátum pl. XML Adattípusok: string number boolean NULL array object/document string típus asszociatív tömb, de csak string lehet a kulcs { name : jill, age : 2, voted : true, school : null, likes : [ tennis, math ], addr : { city : New York, addr : 3rd Street } }

XML vs JSON <phones> <phone type = home >123</phone> <phone type = mobile >456</phone> </phones> { } phones : [ { phone : 123, type : home }, { phone : 456, type : mobil }]

BSON JSON bináris reprezentációja könnyen skálázható mongoimport BSON műveletekhez MongoDB-s reprezentáció: 32 bit Int32 a /0 s string b /0 xyz /0 /0 16 bit 32 bit BSON dokomentum hossza típus objektum vége Default: BSON objektum 16MB lehet, ha ennél nagyobb objektumaink vannak pl. videók, azokat GridFS segítségével oldhatjuk meg

Schemaless ez nem teljesen igaz dinamikus séma design rugalmasság sokfajta és másfajta adattípusok támogatása statikus adatszerkezet: kevésbé erőteljes

Polimorfia {alakzat: négyszög, x: 3, y:4, terület : 12} {alakzat: kör, r: 1, terület : 3.14}

Adatok beszúrása I. mongo cluster database >db.<collection name>.insert(<document>) >db.getlasterror collections documents (BSON, JSON)

Adatok beszúrása II. write concern Az a garancia, amit a MongoDb nyújt az írási műveletek sikerességével kapcsolatban A garancia mértéke egyenesen arányos az írási múvelet ellenőrzésének mértékével ha az insert, update ill. delete műveleteknél ez az ellenőrzés gyenge, akkor gyors a visszatérés ha erős az ellenőrzés, akkor a műveletek garantáltak de lassabb az írás az alkalmazás adatainak igényeihez állítható _id egyedi kulcs, ha nincs kitöltve a rendszer ad egy azonosítót

Write concern szintjei Errors Ignored Unacknowledged Acknowledged Journaled Replica Set Acknowledged

Errors Ignored a MongoDB nem nyugtázza a kéréseket kliens nem kap visszajelzést a hibás írási műveletekről, mint pl. kapcsolati hiba mongod kivételek pl. kulcsütközés cserébe: nagyon gyors az írás ára: gondok lehetnek az adat perzisztenciával és tartósságával éles üzemben nem ajánlott driver beállítás: -1

Unacknowledged Hasonló az előzőhöz Különbség: a kliens a hálózati hibákat konfigurációtól függően detektálhatja Driver beállítás: 0 2012. november release-ig ez volt a default

Acknowledged mongod ebben az esetben küld nyugtát a kliens felé kliens képes detektálni hálózati hibákat, kulcsütközést stb. driver beállítás: 1 ez a default érték

Journaled mongod addig nem nyugtázza az írást, amíg a journal-ba nem vezette át journal-t engedélyezni kell

Replica Set Acknowledged Alap write concern az egy mongod példány érint amennyiben replica seteket használunk, megtehetjük, hogy a nyugtázzuk az írási műveletet a replica set tagjainál is

Update Teljes dokumentum cseréje Részleges update _id nem változtatható update művelettel >db.<collection name>.update(<hol>,<dokumentum> ) vagy partial update (részleges frissítés)

Delete/Remove több dokumentumot is töröhet egyszerre reguláris kifejezést is támogat db.<collection name>.remove(where)

Storage adat file extents: egy kollekció adatait tartalmazza record: itt vannak a dokumentumok, ennek a végén van szabad hely, azért, hogy ha nő a dokumentum, akkor legyen, amennyiben ez kevés, akkor a mongod elmozgatja

MongoDB Storage

datasize

storagesize

filesize

Lekérdezések készítése Map/Reduce built-in single thread: teljesítmény limit gyors és könnyű (javascript) akkor ajánlott ha olyat szeretnénk, amit a beépített framework nem tud Aggregation framework(2.2.4-estől, aktuális verzió: 2.4.9) ez a default és az ajánlott teljesítmény szempontjából jobb Hadoop connector

Aggregation framework egész a pipeline filozófiára épül mint a unix pipe-ok collection output Ezt holnap a gyakorlaton fogjuk kipróbálni

Replica set I. Másolatok az eredeti adatról egy időpillanatban csak egy primary Master-master replikáció megoldható tag-aware shardinggal több sort érintő műveletek pl. multi update vagy multi delete soronként replikálódnak

Replica set II. kliens mindig a primary-re kapcsolódik az írás mindig a primary-re megy az olvasás mehet a secondary-re is konszenzus : primary down esemény esetén szavazás atomic failover atomic node recovery: azon írási műveletek, amik nem mentek, visszagörgetődnek, archiválódnak és a replikéció elindul OpLog: replikációs művelet logja

Replica set III. Inicializálás: konfig elkészítése alap adatok logikai hostneveket használjunk ne használjunk IP-t, ne használjunk /etc/hosts a system db nem replikálódik csak az adat csak akkor enged a slave-ről olvasni, ha ezt explicit elfogadjuk a konfiguráció írása atomi művelet

Sharding

Indexek B-fa indexek ensureindex() ha nagy a kollekció az index létrehozás sokáig tarhat, az index létrehozás blokkol is, ezért célszerű ezt karbantartás alatt végezni _id implicit létrejön minden egyéb esetben explicit kell létrehozni olvasást gyorsítja, írást lassítja

Mentés és helyreállítás mongodump oplog file rendszer snapshot journaling enabled db.fsynclock() db.fsynchunlock() nincsenek query ilyenkor secondary-ről mentés: shutdown, copy, restart Backup és sharding: Balancer kikapcs sh.stopbalancer(), chunk migrálás miatt config db backup mongodump dbconfig backup minden shard replica setre sh.startbalancer()

Hasznos linkek http://en.wikipedia.org/wiki/mongodb http://docs.mongodb.org/manual/core/sharding/ http://docs.mongodb.org/manual/core/write-concern/ http://blog.mongolab.com/2014/01/how-big-is-yourmongodb/ Letölthető: http://www.mongodb.org/downloads

Kérdések és válaszok