netz98 Blog

Der E-Commerce &
Magento Blog

Big Data Magento

Big Data und Magento – MongoDB machts möglich

Das performante Handling von Produktdaten ist in vielen E-Commerce-Projekten ein zentrales Erfolgskriterium. Die Daten müssen sauber, korrekt und eindeutig identifizierbar sein. Ein gutes Beispiel, welche Herausforderung das sein kann, sind Fahrzeug-Ersatzteile. Hier geht es nicht nur darum ein großes Artikelvolumen zu verwalten, sondern die einzelnen Artikel auch den jeweiligen Fahrzeugen korrekt zuzuordnen.

 

Big Data kommt im E-Commerce an

In einem Onlineshop stellt sich das folgendermaßen dar: Sie suchen für einen VW Golf IV Variant eine Lichtmaschine. Für die Modelle dieser Baureihe werden mehr als hundert Lichtmaschinen angeboten – diese Artikel müssen also in der Datenbank für den VW Golf IV Variant markiert sein, damit Sie sie finden können. Aber nicht alle Lichtmaschinen passen zu jeder Modellvariante. Für die 28 unterschiedlich motorisierten Typen eines VW GOLF IV Variant passen etwa immer nur 45 auf den jeweiligen Typ. Das heißt, wir müssen auch die zahlreichen Abhängigkeiten in der Datenbank abbilden können und für eine performante Bereitstellung über die Suche sorgen. Aus den Hunderten unterschiedlichen Marken und Hunderttausenden Artikeln (eigentlich sind es im internationalen Markt mehrere Millionen, aber niemand bietet alle Artikel aller Hersteller an – ansonsten wäre bei der Sortimentspolitik etwas falsch gelaufen) ergeben sich so Millionen von Kombinationsmöglichkeiten, die als Datenbankobjekte mit entsprechenden Abhängigkeiten hinterlegt und bei Bedarf abrufbar sein müssen.

 

Grenzen relationaler Datenbanken in Magento

Eine herkömmliche relationale Datenbank, wie etwa auch die Open-Source-Datenbank MySQL, die in Magento-Shopsystemen eingesetzt wird, würde für jede Abfrage mehrere Sekunden bis Minuten benötigen, da sie ihre Einträge Spalte für Spalte und Zeile für Zeile durchgehen muss. Außerdem müssen die Beziehungen zwischen den Einträgen wiederum durch Relationstabellen dargestellt werden, wodurch die Struktur immer komplexer wird.

 

nichtrelationale Datenbank für den Einsatz mit Magento

MongoDB für komplexe Produkte

Um umfangreiche und komplexe Daten schnell lesen und bearbeiten zu können, sind klassische Datenbanken also eher ungeeignet. Wir haben das Problem mithilfe einer nichtrelationalen Datenbankstruktur gelöst. Die NoSQL Datenbank MongoDB speichert Datensätze nicht in einem klassischen relationalen Tabellenschema, sondern arbeitet dokumentenbasiert. Durch die Verwendung von intelligenten Indexoperationen lassen sich Daten stets schnell auffinden. Das klingt etwas sperrig, heißt aber letztlich nur, dass man die Produktdaten strukturieren kann, wie man möchte.

 

Performancesteigerung mit Magento Enterprise Modul

Für zusätzliche Performance sorgen wir mit dem Einsatz dedizierter MongoDB-Server sowie einem eigenentwickelten Magento Enterprise Modul für die leistungsfähige Anbindung der Datenbank an ein Magento-E-Commerce-Shopsystem. Das Modul sorgt nicht nur dafür, dass Magento problemlos auf MongoDB zugreifen kann, sondern auch, dass die von den Herstellern vorgesehenen Artikel-Zuordnungen klar dargestellt werden können. Damit lassen sich Big Data und Magento vereinen.

Über den Autor / die Autorin

Comments (3)

  • Steven Fritzsche

    Hallo Herr Lieser,

    ehrlich gesagt fehlt es dem Beitrag ein wenig an Informationen. Mir fallen spontan folgende Fragen ein:

    1. Welche Versionen wurden verwendet ? MongoDB & Magento
    2. Was genau habt Ihr gemacht ? Habt Ihr die Produkttabellen durch eigene MongoDB Tabellen ersetzt oder neue Funktionen implementiert, die die genannten Relationen dann in MongoDB Tabellen ablegen ?
    3. Von welchen Datenmengen (Produkte, Relationen usw. ) sprechen wir genau ?
    4. Was genau bedeutet Performancesteigerung und auf welcher Basis basiert diese Steigerung ?
    5. Wie Magentonah konnte dies insgesamt gelöst werden ?
    6. Gibt es Pläne dies kostenpflichtig zu veröffentlichen oder ist dies zu speziell ?
    7. Könnte man dies auch auf die CE Edtion adaptieren ?

    Gruß

    Steven

  • Ralf Lieser

    Hallo Herr Fritzsche,
    etwas Abhilfe kann ich da sicherlich noch schaffen.

    Zu Ihren ersten beiden Fragen:
    Wir setzen auf die zu diesem Zeitpunkt aktuellste Version von MongoDB sowie Magento Enterprise 1.14. Für die sinnvolle Nutzung von MongoDB mit Magento gilt es dann im Detail und bereits für die Konzeption der Software-Architektur zu entscheiden, ob etwa Änderungen der Produkttypen oder gar deren Neuentwicklung notwendig sind und ob sich EAV-Objekte in der gegebenen Struktur weiter verwenden lassen. Die Beantwortung solcher Fragen ist immer abhängig vom Einzelfall, erfordert ein hohes Maß an Fachkompetenz und ist entscheidend für den Erfolg unserer Kunden, weswegen wir dieses Know-how auch exklusiv unseren Kunden anbieten.

    Zu 3+4:
    In dem für den Beitrag Pate stehenden Projekt ging es etwa um mehrere hunderttausend Datensätze und daraus resultierenden Kombinationen im dreistelligen Millionenbereich, die in der Datenbank verwaltet und bearbeitet werden müssen. Die Abfragen solch großer Datenmengen nahmen in einer relationalen Datenbank mehrere Minuten in Anspruch, mit unserem individuellen Lösungsansatz unter Verwendung von MongoDB erzielten wir wenige Millisekunden.

    zu 5: Durch die Flexibilität von Magento und die Möglichkeit, das EAV und MongoDB prinzipiell eng zusammenarbeiten können, lässt sich das alles sehr nahe am Standard lösen.

    zu 6: Wir erarbeiten für unsere Kunden maßgeschneiderte Lösungen und greifen dabei selbstverständlich auf Best Practices und bewährte Entwicklungen bzw. Lösungen zurück, sobald es für ein Projekt Sinn macht. Das Ziel ist es natürlich, durch eine gewisse Standardisierung bessere Projektergebnisse zu erreichen. Der SAP-Connector, über den ich im vergangenen Jahr berichtet habe, ist ebenfalls ein gutes Beispiel. Ein solches Modul ist keine Extension im klassischen Sinne. Und unabhängig davon, dass es nicht zu unserer Praxis gehört, würde auch kein „Käufer“ davon profitieren.

    zu 7: Ja, die Community Edition ist zwar kein aktiver Teil unseres Leistungsspektrums, aber wir unterstützen natürlich auch Kunden, die die CE einsetzen möchten mit unseren Innovationen.

    Ich hoffe, ich konnte damit wenigstens einige Ihrer Fragen beantworten.
    Beste Grüße
    Ralf Lieser

  • Ada

    hallo schönen guten Morgen,
    ich bin Student und beschäftige mich aktuell mit dem Themen Datenbanken und der MongoDB. ( In einigen Unternehmen werden die Daten mit Oracle SQL Developer hochgeladen (csv datein) in deren Server und dann über MongoDB weiterverarbeitet und letztendlich Reports erstellt). Es wird also zwischen 2 Datenbanken umgeswitched. Hierbei ist von Wichtigkeit: Die Performance, Skalierbarkeit, Indexierung, Datenvolumen (Big Data), Datenschema etc.
    Da ich mich gerne im Bereich MongoDB vertiefen möchte, bräuchte ich eine kleine Hilfestellung von Ihnen als Experte.

    1.
    a) Kann man oder wie wäre es möglich/machbar das Sternschema aus Oracle in die Mongo DB zu überführen?
    Und b) mit Hinblick auf die Struktur
    c) wenn das Sternschema möglich sei im MongoDB (normalerweise geht es ja nicht!), welche weiteren Schritte sind oder wären notwendig für die Enwickler?
    2. Kann man Mongo DB automatisieren geht das überhaupt?
    3. Was für Fehler können auftreten oder muss man rechnen beim Übertragen der Daten von Oracle zu MongoDB? Eventuell welche Datentypen mit ein paar Bsp.
    4. Macht es Sinn wenn wir MongoDB nehmen und hierdrauf weiterentwickeln und dafür Oracle komplett aussen vor also weglassen? Ist dies prinzipiell machbar, wenn ja, worauf sollte man achten wenn nein, aus welchem Grund bitte.
    5. Wie ist der Support geregelt bei der PostgreeSQL bitte? Es gibt ja bei kommerziellen, also kostenpflichtigen Lizenzen einen Technischen Support. PostgreSQL ist ja in unserem Fall Open Source. Was haben wir hier für Möglichkeiten für den Support?
    6. Zusammenhang zwischen Hadoop/MapReduce/Big Data und die Definition dieser?
    7. Was für Vorteile bringt die MongoDB gegenüber der Oracle Datenbank in Bezug auf die Daten (egal welche Art von Daten) ?
    Ich bin ja relativ frisch unterwegs und möchte mehr an Hintergrund wissen und kennenlernen bezüglich MongoDB und Oracle und deren Bezug..
    Über eine Rückmeldung freue ich mich und danke ich sehr.
    Viele Grüße
    Ada

Kommentar hinterlassen

*Pflichtfeld