[NoSQL/JSON/BSON] MongoDB

Crashdowns

Ensign
Registriert
Juni 2010
Beiträge
138
Hallo leute,
folgendes Problem: Ich habe 50 Orte (a,b,....), jeder Ort hat bis zu 4000 Adressen(für Ort a -> a1, a2, ... oder Ort b -> b1, b2, ...) und jede dieser adressen enthält eine List mit 10.000-40.000 TimeSeries Datensätze.

Was ist die effizienteste Art diese datensätze zu speicher/abzufragen?
Hier meine momentane Idee:

Code:
{'a': ort1,
        'a1': {
             'name': 'name1',
              '...':  ....,
              ....
             'list': [{ here are 10.000-40.000 datasets}]
     }
     'a2': {
         'name': 'name2',
         '...':  ....,
         ....
         'list': [{ here are 10.000-40.000 timeseries datasets}]
     }
}

{'b': ort2,
     'b1': {
         'name': 'name2',
         '...':  ....,
         ....
         'list': [{ here are 10.000-40.000 timeseries datasets}]
     }
     ...
}

Oder die Listen getrennt woanders hinterlegen und mit irgendeinem identifier darauf zugreifen? Oder noch komplett andere ideen?
Die Queries beziehen sich hauptsächlich auf die TimeSeries Datenstätze die nach bestimmt Kriterien ausgewertet werden soll.

Datenbank -> MongoDB
 
Zuletzt bearbeitet:
Ok, irgendwie scheint das falsch rübergekommen zu sein. MongoDB ist eine Vorgabe, ebenso die Attribute (auf beides habe ich leider keinen Einfluss).
Es geht jetzt viel mehr nur darum, wie die Daten innerhalb der DB gespeichert werden sollen um möglichst zeiteffizient Query's auf die TimeSeries - Datasets laufen zu lassen. Bei 50 Orten * 4000 Adressen * (10.000 bis 40.000 TimeSeries Datasets) ergeben sich im schlimmsten Fall bis zu 8 Milliarden TimeSeries Einträge (auch wenn die erste Ausbaustufe wohl "nur" in Richtung 0,5 - 1,0 Millarden gehen wird.

Wenn ich deinen Link nicht komplett missinterpretiert habe, dann hilft der mir bei der Problemstellung nicht so richtig weiter oder?
 
Zuletzt bearbeitet:
Ja stimmt, der Link war dir in diesem Fall tatsächlich keine Hilfe. Ich dachte es stünde dir frei wie du die Daten speicherst. Zu MongoDB kann ich leider nichts sagen. Allgemein musst du dir überlegen, was für eine Art Anfragen du hast. Sprich ob du viele Scans hast, also viele zusammenhängende Daten zusammen abfragst, oder häufig wenige Datensätze selektieren musst. Im zweiten Fall würde sich zB ein Index anbieten, welcher im ersten Fall eher hinderlich ist.
 
Eine der häufigsten Anfragen wird wohl sein: "Gib mir alle TimeSeries die zwischen Datum1 und Datum2 liegen und zu folgender Adresse + Ort gehören" -> meißt über größere Zeiträume (500-1500 TimeSeries - Datensätze).
Und das für jeweiles tausende Adressen in fast allen Orten.
Ergänzung ()

niemand sonst erfahrungen oder ideen?
 
Zuletzt bearbeitet:
Zurück
Oben