Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Pinczel Balázs, ELTE IK, április Emlékeztető: NoSQL Célok: Nagy teljesítmény Magas rendelkezésre állás Elosztott működés Következmények:

Hasonló előadás


Az előadások a következő témára: "Pinczel Balázs, ELTE IK, április Emlékeztető: NoSQL Célok: Nagy teljesítmény Magas rendelkezésre állás Elosztott működés Következmények:"— Előadás másolata:

1 Pinczel Balázs, ELTE IK, 2013. április 15. 1

2 Emlékeztető: NoSQL Célok: Nagy teljesítmény Magas rendelkezésre állás Elosztott működés Következmények: Egyszerűsített adatmodell (kulcs-érték, dokumentum, big table, stb.) Egyszerűsített műveletek (nincs join) Másféle megközelítés Nem deklaratív lekérdezőnyelvek Backup helyett replikálás Kevésbé kidolgozott tranzakciós modell Stb. 2

3 Emlékeztető: Adatmodell: dokumentumok 3 { "_id" : ObjectId("5114e0bd42…"), "first" : "John", "last" : "Doe", "age" : 39, "interests" : [ "Reading", "Mountain Biking" ] "favorites" : { "color" : "Blue", "sport" : "Soccer" } }

4 Emlékeztető: Alapfogalmak: 4 RDBMSMongoDB Database Table, ViewCollection RowDocument (BSON) ColumnField Index JoinEmbedded Document Foreign KeyReference PartitionShard http://docs.mongodb.org/manual/reference/sql-comparison/

5 Emlékeztető: Lehetőségek: Másodlagos indexek Replikálás Shardolás MapReduce In-Memory működés Sokféle API: C, C++, C#, Erlang, Java, Javascript, Node.js, Perl, PHP, Python, Ruby, Scala 5

6 Előkészületek 1.Az operációs rendszernek megfelelő MongoDB csomag letöltése a honlapjukról: http://www.mongodb.org/downloads 2.A letöltött állomány kitömörítése 3.Kliens futtatása A bin könyvtárban: mongo (.exe ) futtatható fájl Indítás: mongo eszakigrid108.inf.elte.hu 6

7 Adatbázisok Létrehozás: Automatikusan létrejön, amikor adatok kerülnek bele Listázás: show dbs Váltás: use (Nem létezőre is lehet) 7

8 Gyűjtemények Létrehozás: Automatikusan létrejön, amikor adatok kerülnek bele Listázás: db.getCollectionNames() Beszúrás: db..insert( ) Lekérdezés: db..find() db..findOne() 8

9 Példa 9

10 JavaScript A mongo kliens, mint JavaScript értelmező: 10

11 Egyszerű szűrések és vetítések Szűrés adott mezők értékére: find({ :, …, : }) Az összes feltételnek teljesülnie kell Lista típusú mezőnél akkor teljesül, ha legalább egyszer benne van az érték Beágyazva is lehet szűrni: pl. " favorites.color": "Blue" Vetítés adott mezőkre: find({…}, { : true, …, : true}) Visszaadja a megadott mezőket és az _id -t find({…}, { : false, …, : false}) Visszaad a megadott mezőkön kívül mindent 11

12 JavaScript szűrés Példák: find("this.a == 5") find(function(){return this.a == 5}) find({$where: "this.a == 5"}) find({$where: function(){return this.a == 5}}) Előnyök: Nagyobb kifejezőerő Hátrányok: Nem tudja használni az indexeket Nem párhuzamosítható Nem szakítható meg 12

13 Szűrési operátorok Operátorokkal érdemes megoldani amit csak lehet (ld. JavaScript szűrés hátrányai) Összehasonlítás: $gt, $gte, $lt, $lte, $ne Halmazhoz tartozás: $in, $nin, $all Logikai: $and, $or, $not, $nor Mező létezése: $exists (Reguláris kifejezés: $regex ) 13 http://docs.mongodb.org/manual/reference/operators/

14 Példa 14

15 Példa 15

16 Egyéb lehetőségek Eredmények számolása: find(…).count() count(…) Eredmények rendezése: find(…).sort({ :, …}) Irány: Pozitív érték → növekvő Negatív érték → csökkenő Eredmények formázása: find(…).pretty() Egyéb: find(…).limit( ), find(…).skip( ) 16 http://docs.mongodb.org/manual/reference/mongo-shell/#queries

17 Twitter adatok a feladatokhoz Host: eszakigrid108.inf.elte.hu Adatbázis: twitter Gyűjtemény: messages Adatok: Beérkező tweetek https://dev.twitter.com/docs/platform-objects/tweets Törölt tweetek https://dev.twitter.com/docs/streaming-apis/messages 17


Letölteni ppt "Pinczel Balázs, ELTE IK, április Emlékeztető: NoSQL Célok: Nagy teljesítmény Magas rendelkezésre állás Elosztott működés Következmények:"

Hasonló előadás


Google Hirdetések