Typische MongoDB Anwendungsfälle

17
Solutions Architect, 10gen Marc Schwering @m4rcsch Typische MongoDB Anwendungsfälle

description

Die Funktionsweise von MongoDB unterscheidet sich von der anderer gängiger Datenbanken. Das dokumentenorientierte Datenmodell, Range-Partitionierung und das robuste Konsistenzmodell sind nicht für alle Aufgabenstellungen gleichermaßen geeignet. In diesem Webinar schildern wir einige konkrete Anwendungsfälle, bei denen die Besonderheiten von MongoDB zum Tragen kommen. Sie erfahren, wie 10gen-Kunden MongoDB implementiert haben und wie Sie ähnliche Lösungen für Ihre Umgebung konzipieren können.

Transcript of Typische MongoDB Anwendungsfälle

Page 1: Typische MongoDB Anwendungsfälle

Solutions Architect, 10gen

Marc Schwering

@m4rcsch

Typische MongoDB Anwendungsfälle

Page 2: Typische MongoDB Anwendungsfälle

NoSQL & MongoDB

Page 3: Typische MongoDB Anwendungsfälle

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

Page 4: Typische MongoDB Anwendungsfälle

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

Page 5: Typische MongoDB Anwendungsfälle

Anwendungsfälle / Use Cases

Page 6: Typische MongoDB Anwendungsfälle

Marc Schwering, 10gen - @m4rcsch

High Volume Data Feeds

• Sehr viele Sensoren “überall”• Variable Struktur(en)

Maschinendaten

• HochfrequenzhandelAktienhandel

• Viele Datenquellen• FormatänderungenSocial Media

Page 7: Typische MongoDB Anwendungsfälle

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

Page 8: Typische MongoDB Anwendungsfälle

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

Page 9: Typische MongoDB Anwendungsfälle

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

Page 10: Typische MongoDB Anwendungsfälle

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

Page 11: Typische MongoDB Anwendungsfälle

Marc Schwering, 10gen - @m4rcsch

Management von Metadaten

• Metadaten• Referenzspeicher

Datenarchivierung

• DataminingInformations

analyse

• Retina Scans• FingerabdrückeBiometrie

Page 12: Typische MongoDB Anwendungsfälle

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” });

Page 13: Typische MongoDB Anwendungsfälle

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

Page 14: Typische MongoDB Anwendungsfälle

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

Page 15: Typische MongoDB Anwendungsfälle

Passt mein Use-Case zu MongoDB?

Page 16: Typische MongoDB Anwendungsfälle

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

Page 17: Typische MongoDB Anwendungsfälle

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)