Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Big-Data-Technology MongoDB Fabian Bielmeier, David Claybourne,

Ähnliche Präsentationen


Präsentation zum Thema: "Big-Data-Technology MongoDB Fabian Bielmeier, David Claybourne,"—  Präsentation transkript:

1 Big-Data-Technology MongoDB Fabian Bielmeier, David Claybourne,
Reinhard Stampp, Denis Wolf

2 Datenmodellierung

3 Datenmodellierung in MongoDB
Documents Collection Database

4 Unser Datenmodell Database Collection Documents Flughafen Tickets
00QKXC 00D3N0

5 Datenmodellierung - JSON-Struktur (1)
{ "_id" : "00ZH5M", "passengers" : [ "lastname" : "Rauss", "firstname" : "Armin", "type" : "Mr" } ], "flights" : [ "departs" : { "date" : " ", "time" : "06:50" }, "airline" : "Lufthansa", "arrives" : { "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 Datenmodellierung - JSON-Struktur (2)
"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 Importieren der Daten MongoDB kann JSON Dateien mit Hilfe des Befehls „mongoimport“ importieren: mongoimport --db flughafen --collection tickets –type json –file file.json

8 Datenbankabfragen

9 Datenbankabfrage-Befehl
Zum Abfragen der Datenbank wird der Befehl „find“ benutzt Beispiel: db.tickets.find({"_id":/^009GH1$/i}).pretty() database collection find()

10 Datenbankabfragen (1) 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 Datenbankabfragen (2) Den Buchungssatz mit der Ticketnummer : db.tickets .find({"flights.services.etickets„ : / /i}).pretty() Alle Buchungen, die kein Direktflug sind (d.h. mit Umsteigen): .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): .find("this.flights[0].from.airport != this.flights[this.flights.length-1].to.airport").pretty()

12 Verteilte Anfragen auf großen Datenmengen
Praktikum 3 + 4

13 Datenimport 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 Durchschnittsberechnung mit MapReduce
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 Auswertung Datensätze Zeit für Import Größe der Collection
Zeit für Berechnung 1 Millionen 78.080s 1,11GB 11.232s 5 Millionen s 5,557GB 56.429s 10 Millionen s 11,1GB s 15 Millionen s 16,925GB s 20 Millionen s 22,318GB s


Herunterladen ppt "Big-Data-Technology MongoDB Fabian Bielmeier, David Claybourne,"

Ähnliche Präsentationen


Google-Anzeigen