Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

MongoDB @ Limango IT

No description
by

Michael Kellerer

on 3 September 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of MongoDB @ Limango IT

Grundlagen
Herausforderungen
Skalierung
Beispiele bei limango
Ausblick
Schema Design
Vorteile
Vorarbeit:


Schema Design
denormalisiert, "aggregat-orientiert"

Access Patterns

Indizes

anwendungsseitige Logik
ReplicaSets & Sharding
Weitere mögliche Anwendungen:

A/B-Tests

W-Code zuweisen

User-Daten für CRM-Strecken

Recommendation Engine
MongoDB vs. MySQL
Collections
Dokumente
heterogene Daten
"eventual consistent"


Features:
Replikation mit automatischem Fail-Over
Nested Objects mit direktem Zugriff (Arrays)
GridFS: Dateispeicher (distributed)
Geodaten (indizierbar, implizite Operationen)
Master
Secondary
Secondary
Tabellen
Spalten
streng typisiert
ACID
Application
dokument-orientierte NoSQL-Datenbank

hoch skalierbar

kein festes Schema

JSON-basiert (BSON-Format)
old Master
Master
Secondary
User:
{ _id : ObjectId("xxxx"),
userid : 123456,
email : "test@limango.de",
addresses : [
{ street : "Landsberger Straße 6",
city : "München" },
{ street : "Landsbergerstr. 6",
city : "München",
postal_code : 80339 }
]
...
}
Produkt:
{
_id : ObjectId("xxx"),
name : "Hose in blau",
color : "blue",
size : "W 32 L 32"
},
{
_id : ObjectId("xxy"),
name : "Sonnenbrille",
color : "black"
}
RS 1
Application
Master
Secondary
Secondary
RS 2
Master
Secondary
Secondary
RS 3
Master
Secondary
Secondary
Service Log:
{ _id : ObjectId("xxxx"),
userid : 123456,
orderid : 123456,
type : "shipment",
attributes : {
text: "Versand Rhenus"
}
}
Service Log:
{ _id : ObjectId("xxxx"),
userid : 123456,
orderid : 123456,
type : "payolution",
attributes : {
subtype: "payment",
id: "assdfjnq232q13"
}
}
Service Log:
{ _id : ObjectId("xxxx"),
userid : 123456,
orderid : 123456,
type : "payolution",
attributes : {
subtype: "shipping",
status: "ok"
}
}
Service Log:
{ _id : ObjectId("xxxx"),
userid : 123456,
orderid : 123456,
type : "email",
attributes : {
from: "matthias@lim.de",
to: "michi@gmail.com",
text: "foobar"
}
}
Echtzeit-Newsletter
Neusortierung der Kacheln nach Beliebtheit
Globale Sortierung:
{
newsletter_id : 1914,
send_day : ISODate("2013-03-12T23:00:00Z"),
time_update : ISODate("2013-03-13T10:00:01.748Z"),
ranking : ["1_6483", "2_4", "1_5788", "3_2343359"]
}

Nach Öffnung (Laden der Bilder):
{
newsletter_id : 1914, send_day : ...,
open_time : ISODate("2013-03-13T16:20:51.235Z"),
access_code : "9guL7YGM",
ranking : ["1_6483", "2_4", "1_5788", "3_2343359"]
}

+ Collection für Klick-Tracking
www.limango.de/mkt/newsletter/nlrealtime.jpg?
n=1914&s=20130313&p=3&ac=9guL7YGM
Eine Einführung
Echtzeit-Checkout-Log
Tracking der Aktivität (für Rechnungskauf)
{ "_id": ObjectId("50f81b2bdf5b345112000012"),
"end": ISODate("2013-01-17T15:45:15.662Z"),
"groups": { "Rechnungskauf": 0 },
"log": [ "cart", "cart", "pay1", "pay2", "paym_rk_lim_reject", "pay3",
"pay1", "pay2", "paym_rk_lim_reject", "pay3", "cart" ],
"start": ISODate("2013-01-17T15:39:23.951Z"),
"user": 5069815
}
Beispiele bei limango
Outlet
Message Queue
Full transcript