2 Stimmen

MongoDB vs. Oracle für Echtzeitsuche

Ich baue eine Anwendung, in der ich Benutzeraktivitätsänderungen verfolge und die Aktivitätsprotokolle den Benutzern zeige. Hier sind ein paar Punkte :

  1. 100 Millionen Datensätze pro Tag einfügen.
  2. Diese Datensätze sollen indiziert und sofort in den Suchergebnissen verfügbar sein (innerhalb von wenigen Sekunden).
  3. Benutzer können Datensätze nach einem der 10 freigegebenen Felder filtern.

1voto

Cody Caughlan Punkte 31774

Ich denke, dass weder Mongo noch Oracle das leisten können, was du brauchst. Ich würde empfehlen, die Suchkomponente von deinem primären Datenspeicher auszulagern, vielleicht etwas wie ElasticSearch:

http://www.elasticsearch.org/

1voto

Aravind Yarram Punkte 76365

Meine Empfehlung ist ElasticSearch da Ihr Hauptanwendungsfall "filtern" ist (Facetten in ElasticSearch) und Suche. Es ist darauf ausgelegt, sich zu skalieren (ansonsten ist auch Lucene gut) und dabei große Datenmengen im Blick zu behalten.

0voto

snez Punkte 2284

100 Millionen Datensätze pro Tag klingen danach, als bräuchten Sie eine schnell wachsende Serverfarm, um die Daten zu speichern. Ich bin nicht vertraut damit, wie Oracle diese Daten verteilen würde, aber mit MongoDB müssten Sie Ihre Daten basierend auf den Feldern scharden, die Ihre Suchabfragen verwenden (einschließlich der 10 Felder zum Filtern). Wenn Sie nur nach Shard-Key suchen, ist MongoDB intelligent genug, um nur die Maschinen zu durchsuchen, die den richtigen Shard enthalten, sodass es wäre, als würde man eine kleine Datenbank auf einer Maschine abfragen, um das Gewünschte zurückzuerhalten. Darüber hinaus, wenn die Shard-Keys in den Speicher jeder Maschine in Ihrem Cluster passen können und mit dem btree-Indexieren von MongoDB indiziert sind, dann wären Ihre Abfragen ziemlich sofortig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X