Typische MongoDB Anwendungsfälle

Preview:

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.

Citation preview

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)

Recommended