Ich benutze mongodb zum Speichern von 30-Tage-Daten, die mir als Stream kommen. Ich suche nach einem Reinigungsmechanismus, mit dem ich die ältesten Daten wegwerfen kann, um Platz für neue Daten zu schaffen. Ich benutzte mysql, in dem ich diese Situation mit Partitionen behandelte. Ich habe 30 Partitionen behalten, die auf dem Datum basieren. Ich lösche die älteste datierte Partition und erstellte eine neue Partition, um neue Daten zu speichern.
Wenn ich die gleiche Sache in mongodb abbilde, habe ich das Gefühl, eine datumsbasierte "Scherbe" zu verwenden. Aber das Problem ist, dass es meine Datenverteilung schlecht macht. Wenn sich alle neuen Daten im selben Shard befinden, ist dieser Shard so heiß, dass viele Leute darauf zugreifen und die Shards mit älteren Daten weniger von Benutzern geladen werden.
Ich kann eine sammlungbasierte Bereinigung verwenden. Ich kann 30 Sammlungen haben und ich kann die älteste Sammlung wegwerfen, um neue Daten unterzubringen. Aber ein paar Probleme sind 1) Wenn ich Sammlungen kleiner mache, kann ich nicht viel davon profitieren, wie sie pro Kollektion gesammelt werden. 2) Meine Abfragen müssen sich ändern, um von allen 30 Sammlungen abzufragen und eine Vereinigung zu nehmen.
Bitte schlagen Sie mir einen guten Reinigungsmechanismus (falls vorhanden) vor, um mit dieser Situation fertig zu werden.
Es gibt wirklich nur drei Möglichkeiten, um in MongoDB zu bereinigen. Es sieht so aus, als ob Sie bereits mehrere Kompromisse gefunden haben.
Option # 1: einzelne Sammlung
Profis
Nachteile
Option # 2: Sammlung pro Tag
Profis
collection.drop()
ist sehr schnell. Nachteile
Option # 3: Datenbank pro Tag
Profis
Nachteile
Jetzt gibt es eine Option # 4, aber es ist keine allgemeine Lösung. Ich kenne einige Leute, die "gereinigt" haben, indem sie einfach Capped Collections verwendet haben. Es gibt definitiv Fälle, in denen das funktioniert, aber es hat eine Reihe von Vorbehalten, so dass Sie wirklich wissen müssen, was Sie tun.
Ich hatte eine ähnliche Situation und diese Seite hat mir geholfen, besonders der Abschnitt "Hilfreiche Skripte" unten. Ссылка
Tags und Links mongodb database-design