Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MongoDB Fabian Bielmeier, David Claybourne, Reinhard Stampp, Denis Wolf.

Ähnliche Präsentationen


Präsentation zum Thema: "MongoDB Fabian Bielmeier, David Claybourne, Reinhard Stampp, Denis Wolf."—  Präsentation transkript:

1 MongoDB Fabian Bielmeier, David Claybourne, Reinhard Stampp, Denis Wolf

2

3 Documents Collection Database

4 Documents Collection Database FlughafenTickets00QKXC00D3N0

5 { "_id" : "00ZH5M", "passengers" : [ { "lastname" : "Rauss", "firstname" : "Armin", "type" : "Mr" } ], "flights" : [ { "departs" : { "date" : " ", "time" : "06:50" }, "airline" : "Lufthansa", "arrives" : { "date" : " ", "time" : "08:00" }, "flight" : "LH2023", "from" : { "airport" : "DUS", "city" : "Dusseldorf, Germany" }, "to" : { "airport" : "MUC", "terminal" : "Terminal 2", "city" : "Munich, Germany" }, "baggage" : "ADT 1PC", "class" : "Economy (B)", "duration" : "01:10", "status" : "Confirmed", "aircraft" : "Airbus Industrie A /200", "services" : { "etickets" : [ " C1" ], "seats" : [ "07D" ] } ],

6 "fares" : { "segment" : [ 1, 2 ], "name:" : { "lastname" : "Rauss", "firstname" : "Armin", "type" : "Mr" }, "type" : "ADT", "fop" : "INVOICE", "currency" : "EUR", "base" : "667.00", "taxes" : "260.91", "total" : "927.91" }

7 MongoDB kann JSON Dateien mit Hilfe des Befehls mongoimport importieren: mongoimport --db flughafen --collection tickets –type json –file file.json

8

9 Zum Abfragen der Datenbank wird der Befehl find benutzt Beispiel: db.tickets.find({"_id":/^009GH1$/i}).pretty() databasecollectionfind()

10 Alle Buchungen, die noch nicht ausgestellt wurden (d.h. kein Preis vorhanden): db.tickets.find({"fares" : {$exists : false}}).pretty() Alle Buchungen mit mehr als einem Passagier: db.tickets.find({$where : "this.passengers.length > 1"}).pretty() Alle Buchungen, bei denen der Flug in Dusseldorf (DUS) begonnen wird: db.tickets.find({"flights.0.from.airport" : "DUS"}).pretty() Die Anzahl der Buchungen, bei denen der Flug in Dusseldorf (DUS) begonnen wurde: db.tickets.find({"flights.0.from.airport" : "DUS"}).count()

11 Den Buchungssatz mit der Ticketnummer : db.tickets.find({"flights.services.etickets : / /i}).pretty() Alle Buchungen, die kein Direktflug sind (d.h. mit Umsteigen): db.tickets.find({ $where : "this.flights.length > 1 && this.flights[0].to.airport == this.flights[1].from.airport && this.flights[0].from.airport != this.flights[1].to.airport"}).pretty() Alle Buchungen, die ein One-Way sind (d.h. ohne Rückflug): db.tickets.find("this.flights[0].from.airport != this.flights[this.flights.length-1].to.airport").pretty()

12 Praktikum 3 + 4

13 Erzeugen von JSON-Dateien mit 1 Millionen 5 Millionen …. Datensätzen durch eigenes Python-Skript Import und Zeitmessung durch: time mongoimport --db flughafen --collection tickets --type json --file data.json Größe der Collection mit: db.tickets.stats();

14 db.average.drop(); var startTime = new Date(); db.tickets.mapReduce( function() { if (this.fares != null && this.fares.taxes != null) emit({}, {sum: this.fares.taxes, num: 1}); else emit({}, {sum: 0, num: 0}); }, function(name, values) { var n = {sum: 0, num: 0}; for (var i = 0; i < values.length; i++) { n.sum += values[i].sum; n.num += values[i].num; } return n; }, { finalize: function(who, res) { res.avg = res.sum / res.num; return res; }, out: "average" } ); print((new Date - startTime) / "sec"); db.average.find().pretty();

15 DatensätzeZeit für ImportGröße der CollectionZeit für Berechnung 1 Millionen78.080s1,11GB11.232s 5 Millionen s5,557GB56.429s 10 Millionen s11,1GB s 15 Millionen s16,925GB s 20 Millionen s22,318GB s


Herunterladen ppt "MongoDB Fabian Bielmeier, David Claybourne, Reinhard Stampp, Denis Wolf."

Ähnliche Präsentationen


Google-Anzeigen