2012-04-10 10 views
3

Dies ist eher eine architektonische Frage als eine technologische Frage per se.Data Warehouse und Django

Ich baue gerade eine Business-Website/ein soziales Netzwerk, das große Datenmengen speichern und diese Daten verwenden muss, um Analysen (Verbraucherverhalten) zu erstellen.

Ich benutze Django und eine PostgreSQL-Datenbank.

Nun meine Frage ist: Ich möchte diese Architektur um ein Data Warehouse erweitern. Das Ideal wäre: Die operationelle DB wäre die aktuelle Django PostgreSQL-Datenbank, und das Data Warehouse wäre etwas Zusätzliches, vorzugsweise in einem multidimensionalen Modell.

Wir sind immer noch in einer sehr frühen Phase, wir werden mit 50 Benutzern testen, also etwas primitives wie eine einspaltige Tabelle für Starter wäre genug.

Ich würde gerne wissen, ob jemand Erfahrung in dieser Situation hat, und das könnte mir ein Framework zum Erstellen eines Data Warehouse empfehlen, während die Betriebs-DB mit den Django-Modellen für die Benutzerfreundlichkeit (wenn möglich) beibehalten wird.

Vielen Dank im Voraus!

+0

Was ist mit der Replikation zu Ihrem Datawarehouse? – Marcin

Antwort

7

Hier sind ein paar coolen Open Source Tools, die ich vor kurzem verwendet:

  • Kettle - großes ETL-Tool, können Sie diese verwenden, um die Daten aus dem operativen Datenbank in Ihr Lager zu extrahieren. Unterstützt jede Datenbank mit einem JDBC-Treiber und macht es sehr einfach, z. ein Sternschema.
  • Saiku - schönes Web 2.0-Frontend auf Pentaho Mondrian (MDX-Implementierung) gebaut. Auf diese Weise können Ihre Benutzer komplexe Aggregationsabfragen auf einfache Weise erstellen (denken Sie an die Pivot-Tabelle in Excel), und die Mondrian-Ebene bietet Caching usw., damit alles schnell geht. Versuchen Sie the demo hier.
+0

Danke, das sind sehr sehr gute Kandidaten. Dies ist wahrscheinlich auf der Linie von dem, was ich brauche. –

+0

+1. Hallo Ramseyer, ich habe ein paar OLAP-Projekte mit SSAS + Tableau Software entwickelt. Für eine gemeinnützige Organisation werde ich ein neues Projekt mit Mondrian + Saiku starten. Ich kann meine E-Mail-Adresse an Sie senden, wenn Sie Ihr Fachwissen mit mir teilen möchten. Nur um zu wissen, was zu beachten ist, bevor Sie in diese Umgebung wechseln. – danihp

0

Meine Antwort gilt nicht unbedingt für Data Warehousing. In Ihrem Fall sehe ich die Möglichkeit, eine NoSQL Datenbanklösung neben einem relationalen OLTP-Speicher, in diesem Fall PostgreSQL, zu implementieren.

Warum betrachten NoSQL? Zusätzlich zu den offensichtlichen Skalierbarkeitsvorteilen bietet NoSQL eine Reihe von Vorteilen, die wahrscheinlich für Ihr Szenario gelten. Zum Beispiel die Flexibilität, Datensätze mit verschiedenen Feldgruppen zu haben, und schlüsselbasierten Zugriff.

Da Sie sich noch im "Test" -Stadium befinden, fällt es Ihnen möglicherweise leichter, sich für eine NoSQL-Datenbanklösung je nach Hosting-Provider zu entscheiden. Zum Beispiel AWS haben SimpleDB, Google App Engine bieten ihre eigenen DataStore, etc. Allerdings gibt es viele andere NoSQL-Lösungen, die Sie für die schöne Python-Bindungen haben können gehen.

+1

Die Skalierbarkeitsvorteile sind für mich nicht offensichtlich. Eine Social Site erwägt, das zu tun, was Sie beschreiben und vergleicht die Produkte, die sie in Betracht gezogen haben. Sehen Sie sich die Präsentation ihrer Ergebnisse hier an: http://www.pgcon.org/2010/schedule/attachments/141_PostgreSQL-and-NoSQL.pdf Die Seiten 33 und 34 haben die Graphen von Zeit für Produkt (kürzere Balken bedeuten bessere Leistung). – kgrittn

+0

Vielen Dank für den Vorschlag. In Anbetracht der Tatsache, dass ich sehr komplexe Abfragen durchführen muss, die Aggregationen enthalten, wäre ein System, das OLAP anstelle von OLTP unterstützt, vorzuziehen, richtig? –

+0

@VascoPatricio Ja, in der Tat. –

Verwandte Themen