2012-10-10 11 views
13

Ich muss GPS-Tracks speichern, die Benutzer in einer Datenbank aufzeichnen. Die Spuren bestehen aus einer Markierung alle 5 Meter, um eine Linie auf einer Karte zu zeichnen. Ich schätze 200 km Spuren, was 40.000 lnlt Marker bedeutet. Ich schätze 50.000 Benutzer Minimum und 20 Stücke von 200 km Spuren für jeden. Das sind mindestens 40 Milliarden lnlt-Marker.So speichern Sie 800 Milliarden GPS-Marker in der Datenbank

Dies muss skalieren, so dass für 1 Million Benutzer ich für 800 Milliarden GPS Marker benötigen Kapazität.

Da jeder Satz von 40.000 Markern gehören zu einer einzigen Spur, wir sprechen hier von 1 bis 20.000.000 Datensätze/Sätze von GPS-Tracks.

Anforderungen: Benutzer diese Tracks auf einer Google-Karte in einer mobilen Anwendung zu betrachten, wird darum ersuchen.

Relations: Im Moment habe ich 2 Tabellen. Tabelle eins hat: [Trackid], [Benutzer-ID], [Kommentar], [Entfernung], [Zeit], [Höchstgeschwindigkeit].

Tabelle 2 hat [TrackID] [Länge] [Breite] und das ist, wo alle GPS-Markierungen gespeichert sind. Was ist eine effiziente Möglichkeit, diese Menge an GPS-Daten zu speichern und gleichzeitig die Leseleistung beizubehalten?

Neue Informationen:

in einer KML-Datei, um die GPS-Daten speichern zu dem Zweck, sich als eine Spur auf einer Google-Karte anzuzeigen ist eine gute Lösung, die Datenbank Platz spart. Durch das Komprimieren der KML in eine KMZ (im Grunde eine gezippte KML mit einer KMZ-Erweiterung) wird die Dateigröße weiter reduziert. KMZ lädt viel schneller als GPX und kann mit dem Google Maps API als KML-Layer integriert werden. See this information from Google für weitere Unterstützung. Dies scheint die bisher beste Lösung für die beabsichtigte Anforderung zu sein.

+1

Sie es sogar in einer flachen Dateien speichern können, hat eine Markierung mit fester Länge , so können Sie die Datei leicht suchen. – Andrey

+5

Ich bin mir nicht sicher, ob Produktempfehlungen laut den Richtlinien der Website am Thema oder konstruktiv sind ... Aber es klingt, als wären das hochgradig normalisierte Daten. Jedes gute RDBMS sollte funktionieren. – David

+0

können Sie diese in eine B-SPLINE für die Spur komprimieren? – Randy

Antwort

6

Die Wahl einer bestimmten Datenbank, wie immer ist, gebunden, wie Sie die Informationen gespeichert werden sollen und wie möchten Sie es verwenden. Als solches, ohne die genauen Anforderungen Ihres Projekts, sowie die Beziehungen der Daten zu kennen, wäre das beste, zu tun, ein wenig zu diesem Thema zu lesen, um zu bestimmen, welches bestimmte Produkt oder Speichermodell für Sie am besten geeignet ist.

Ein guter Anfang ist Blogs zu lesen, die die Leistung und die Verwendung der Datenbanken (siehe Anhang) vergleichen:

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

+1

Gut bemerkt. Ich änderte die Formulierung meiner Frage und fügte die Anforderungen für dieses Problem und die Beziehungen zwischen den aktuellen Tabellen hinzu. Vielleicht kann es wieder geöffnet werden? – Karl

+2

Weitere Informationen für alle, die große Mengen an GPS-Markierdaten verwalten möchten, finden Sie hier https://developers.google.com/maps/articles/toomanymarkers über Google-Lösungen wie Fusionstabellen. – Karl

+0

Gute Sportlichkeit. Ehrlich gesagt, denke ich, dass Ihre Frage immer noch zu weit gefasst ist, da Sie versuchen, viele verschiedene Bereiche auf einmal zu erfassen. Persönlich habe ich nicht genug Privilegien, um Ihre Frage erneut zu öffnen (es erfordert 3000 Reputation). Weitere Informationen zum erneuten Öffnen von Fragen finden Sie unter [this] (http://meta.stackexchange.com/questions/36415/how-do-you-reopen-a-closed-question). – jrd1

Verwandte Themen