Download - Typische MongoDB Anwendungsfälle
Solutions Architect, 10gen
Marc Schwering
@m4rcsch
Typische MongoDB Anwendungsfälle
NoSQL & MongoDB
Marc Schwering, 10gen - @m4rcsch
NoSQL Eigenschaften
Flexible Datentypen• Listen, eingebettete Objekte
• Sparse Data• Semi-strukturierte Daten
• Agile Development
Hoher Datendurchsatz• Lesen• Schreiben
Große Datenmengen• Aggregierte Datengröße• Anzahl an Datensätzen
geringe Latenz• Fürs lesen und schreiben
• ms Bereich
Cloud Computing• Läuft “überall”• Keine spezielle Hardware
Commodity Hardware• Ethernet• Lokaler Datenspeicher
Marc Schwering, 10gen - @m4rcsch
MongoDB
Flexible Datentypen• Listen, eingebettete Objekte
• Sparse schemas• Semi-strukturierte Daten
• Agile Development
Hoher Datendurchsatz• Lesen• Schreiben
Große Datenmengen• Aggregierte Datengröße• Anzahl an Datensätzen
geringe Latenz• Fürs lesen und schreiben
• ms Bereich
Cloud Computing• Läuft “überall”• Keine spezielle Hardware
Commodity Hardware• Ethernet• Lokaler Datenspeicher
• JSON basiert• Dynamische
Schemata
• Auto Fragmentierung
• gridFS• Transparente
Fragmentierung
• In-memory cache
• Scale-out working set
• Einfaches Setup
• Breite Unterstützung
• X86_64 Systeme
• Lokales fs
Anwendungsfälle / Use Cases
Marc Schwering, 10gen - @m4rcsch
High Volume Data Feeds
• Sehr viele Sensoren “überall”• Variable Struktur(en)
Maschinendaten
• HochfrequenzhandelAktienhandel
• Viele Datenquellen• FormatänderungenSocial Media
Marc Schwering, 10gen - @m4rcsch
High Volume Data Feeds
Data Sources
Asynchrones schreiben
Flexibles Schema für Datenformat-
anpassungen
WriteConcern: SafeMode
(in Memory)
Data SourcesData
SourcesDatenquellen
Skalierung durch Fragmentierung
Marc Schwering, 10gen - @m4rcsch
Operational Intelligence
• Extrem viele Statiwechsel (Tracking)
• Strikte Anforderungen an LatenzAd Targeting
• Reporting für tausende von Nutzern
• Konsistente Echtzeit Updates!
Real time dashboards
• Worüber sprechen die Leute?Social Media Monitoring
Marc Schwering, 10gen - @m4rcsch
Operational Intelligence
Dashboards
API
Geringe Leselatenz
Parallelisierung von Lese.- und
Schreibzugriffen via Shards und
Replikas
Pre-Aggregation & Aggregation
Framework
Flexible Schemata für
verschiedenste InputformateTransparente
Skalierung
Marc Schwering, 10gen - @m4rcsch
Beispiel Tracking & Conversion
1
2
3
See Ad
See Ad
4
Click
Convert
{ cookie_id: “1234512413243”, advertiser:{ apple: { actions: [ { impression: ‘ad1’, time: 123 }, { impression: ‘ad2’, time: 232 }, { click: ‘ad2’, time: 235 }, { add_to_cart: ‘laptop’, sku: ‘asdf23f’, time: 254 }, { purchase: ‘laptop’, time: 354 } ] …
Umfangreiches Schema um
komplexe Stati abzubilden
“Scale out” für hohen
Datendurchsatz
Dynamische Schemata durch
Kundenanforderungen
Marc Schwering, 10gen - @m4rcsch
Management von Metadaten
• Metadaten• Referenzspeicher
Datenarchivierung
• DataminingInformations
analyse
• Retina Scans• FingerabdrückeBiometrie
Marc Schwering, 10gen - @m4rcsch
Metadaten Beispiel
{ ISBN: “00e8da9b”, type: “Book”, country: “Egypt”, title: “Ancient Egypt”}
{ type: “Artefact”, medium: “Ceramic”, country: “Egypt”, year: “3000 BC”}
Flexibles Daten-Modell
Umfangreiche Abfrage und
Indexierungs- möglichkeiten.db.archives.
find({ “country”: “Egypt” });
Marc Schwering, 10gen - @m4rcsch
Content Management
• Nutzergenerierte Inhalte• Personalisierung von Inhalt und
LayoutNews-Seite
• Layout “on the fly”• Kaum statischer Inhalt
Verschiedene Kanäle
• Binär.- und MetadatenSharing
Marc Schwering, 10gen - @m4rcsch
Content Management
{ camera: “Nikon d4”, location: [ -122.418333, 37.775 ] }
{ camera: “Canon 5d mkII”, people: [ “Jim”, “Carol” ], taken_on: ISODate("2012-03-07T18:32:35.002Z")}
{ origin: “facebook.com/photos/xwdf23fsdf”, license: “Creative Commons CC0”, size: { dimensions: [ 124, 52 ], units: “pixels” }}
Flexibles Schema für einfache
Erweiterungen
Horizontale Skalierbarkeit für große Datensätze
GeoSpatial IndexGridFS für Binärdaten
Passt mein Use-Case zu MongoDB?
Marc Schwering, 10gen - @m4rcsch
Projekt CharakteristikaApplikations-Anforderungen
Warum MongoDB gut passen könnte
Variable Daten in Objekten Dynamische Schemata und JSON erlauben flexible Datenspeicherung ohne Sparse-Tabellen oder komplexe “JOINS”.
Geringe Latenz MongoDB Memory Mapping bietet ”In-Memory”- Geschwindigkeit und ist konsistent.
Hoher Datendurchsatzund/oder viele Daten
Sharding und Replikation für einfache Skalierbarkeit
Cloud-basiertes deployment
Sharding und Replikation nutzen alle Möglichkeiten von Cloud-Computing
WechselndeBusiness Anforderungen
Flexibles Datenmodell ermöglicht agile Softwareentwicklung
Marc Schwering, Solutions Architect -10gen (the MongoDB
Company)
Vielen Dank!
Fragen? Chat, oder: @m4rcsch
Kommende Events: MongoDB Berlin: 26. Feb. ( http://welu.se/1Zl )
Webinar über MongoDB v 2.4 (Ende März)