Große Mengen von Geodaten verwalten? [geschlossen]

83

Wie verwalten Sie Ihre Geodaten? Ich habe Terabytes an Daten, die auf Hunderte von Datensätzen verteilt sind, und eine Ad-hoc-Lösung, die symbolische Links innerhalb von Projekten verwendet, die für jeden Datensatz auf ein auf Domänennamen basierendes Archivverzeichnis verweisen. Das funktioniert meistens, hat aber seine eigenen Probleme.

Ich bin auch gespannt, ob jemand seine Geodaten in einem Revisionskontrollsystem verwaltet. Ich verwende derzeit eine für meinen Code und kleine Datensätze, aber nicht für vollständige Datensätze.

scw
quelle
1
Es wäre nützlich zu wissen, welche Art von Dateien Sie verwenden, welche Anwendungen Zugriff auf die Dateien benötigen usw.
JasonBirch
Ich interessiere mich generell für dieses Problem, daher sind alle Antworten großartig.
scw
1
Ich erkannte, dass diese Frage wahrscheinlich ein Community-Wiki sein sollte, damit wir eine eindeutige Antwort erhalten können. Rückblick ist eine exakte Wissenschaft.
scw

Antworten:

51

Ich denke, die gängige / naheliegende Antwort wäre die Verwendung einer räumlichen Datenbank (PostGIS, Oracle, SDE, MSSQL Spatial usw.) in Verbindung mit einem Metadatenserver wie dem GeoPortal von esri oder der Open-Source-Anwendung GeoNetwork die beste Lösung. Wahrscheinlich werden Sie jedoch immer projektbasierte Snapshots / Branches / Tags benötigen. Einige der fortschrittlicheren Datenbanken bieten Möglichkeiten zur Verwaltung dieser, aber im Allgemeinen sind sie nicht so einfach zu verwalten.

Für Dinge, die Sie außerhalb einer Datenbank speichern (große Bilder, projektbasierte Dateien), ist meiner Meinung nach eine einheitliche Benennungskonvention und wiederum eine Metadatenregistrierung (sogar eine einfache Technik wie eine Kalkulationstabelle) der Schlüssel, mit der Sie sie verfolgen und verwalten können Stellen Sie sicher, dass sie ordnungsgemäß verwaltet werden. Bei projektbasierten Dateien können diese beispielsweise gelöscht werden, wenn die Richtlinien zur Datensatzverwaltung dies vorschreiben, oder nach Abschluss des Projekts in das zentrale Repository übertragen werden.

Ich habe einige interessante Lösungen gesehen ...

Damals, als das Umweltministerium von British Columbia die Arc / Info-Deckungen verließ, gab es einen wirklich coolen Zwei-Wege-Synchronisationsprozess auf Rsync-Basis. Die Abdeckungen, die unter zentraler Kontrolle standen, wurden jede Nacht in Regionen verschoben und regionale Daten wurden zurückgeschoben. Diese differenzielle Übertragung auf Blockebene funktionierte auch über 56.000 Verbindungen sehr gut. Es gab ähnliche Prozesse für die Replikation der Oracle-basierten Attributdatenbanken, aber ich glaube nicht, dass sie über DFÜ in der Regel zu gut abschnitten :)

Mein jetziger Arbeitsplatz verwendet eine ähnliche hybride Lösung. Jedes Dataset verfügt über eine maßgebliche Kopie (einige in Oracle, andere in MapInfo, andere in Personal Geodatabases), die jede Nacht mithilfe von FME einer Cross-ETL unterzogen werden. Allerdings ist hier ein ziemlich großer Aufwand für die Wartung zu verzeichnen. Der Aufwand für die Erstellung eines neuen Datensatzes und die Gewährleistung der Transparenz der Organisation ist erheblich höher als erwartet. Wir sind dabei, eine Überprüfung durchzuführen, um einen Weg zur Konsolidierung zu finden und diesen Overhead zu vermeiden.

JasonBirch
quelle
10
Wenn Sie mit PostGIS, seine erwähnenswert die Geschichte Tabellen verfügen über neu in 1.5
fmark
1
Wenn die Datensätze zusammenhängen, sollten Sie auch die Postgresql-Vererbung in Betracht ziehen, um die Konsistenz beizubehalten, die Leistung zu verbessern und hierarchische Zusammenfassungen zu ermöglichen.
Adrian
Die großen Mengen an Geodaten sind auf die Verwendung eines verteilten Versionsverwaltungssystems zurückzuführen, das die Daten auf jedem Knoten dupliziert (meistens mit dem Revisionsverwaltungssystem für Code verwendet). Dies geschieht nicht in einem Client-Server-System (zentralisiert) zur Versionsverwaltung von Daten, z. B. mit postgres-postgis. youtube.com/watch?v=1FsonLiSDR8
Alfredo Garcia
23

Metadaten sind hier mit Abstand das wichtigste Thema. Wenn Metadaten auf wen antworten , wann, warum, wo es sich um einen akzeptablen Metadatensatz handelt.

Aufgrund unserer Berufserfahrung in großen Unternehmen mit nur wenigen GIS-Benutzern (ca. 30) hatten wir große Probleme bei der Kontrolle von Daten, insbesondere von Versionen und Berechtigungen. Eine Seite davon kann mit einer umfassenden Dokumentation von Daten (Metadaten) gelöst werden, und die anderen Probleme werden höchstwahrscheinlich mit einem zentralen Repository gelöst, in dem PostGIS glänzt.

GeoNetwork ist ein guter Einstieg in die Behandlung von Metadatenproblemen. Die Lösung des zentralen Repositorys ist komplizierter, da die Datenbank möglicherweise von einer spezialisierten Person entworfen / verwaltet werden muss.

Das komplizierte Problem ist , wer für die QA / QC dieser Datensätze und ihrer Metadaten verantwortlich ist. Obwohl computergesteuerte Prozesse hervorragend funktionieren, können sie nicht so streng sein wie ein guter Datenmanager / Datenverwalter, der in dieser Firma hergestellt wurde, in der ich gearbeitet habe. Jetzt ist ausschließlich jemand da, der Metadaten überprüft / festschreibt und Geodaten organisiert, die nicht in einem DBMS zentralisiert sind.

George Silva
quelle
11

Wir haben ein Dateisystem verwendet, das hierarchisch gegliedert ist nach: - geografischer Ausdehnung (Land oder Kontinent) - Datenanbieter, Lizenzgeber - Domäne / Datensatz - Datum / Version

Danach haben wir die Richtlinie, die Quelldaten (im gleichen Format wie auf der vom Anbieter bereitgestellten CD / DVD) von allen abgeleiteten Datensätzen zu trennen, die wir in unserem Unternehmen erstellt haben.

Das Dateisystem macht es wirklich einfach, Daten vom Kunden aufzunehmen, und ermöglicht auch eine gewisse Flexibilität hinsichtlich des physischen Speichers. Wir speichern unsere Archive auf größeren, langsameren Festplatten und haben spezielle Dateiserver (transparent in die Hierarchie eingebunden) für die am häufigsten verwendeten Datensätze.

Um die Verwaltung innerhalb von Projekten zu erleichtern, verwenden wir symbolische Links. Wir speichern unsere Vektoren in einer Datenbank (Oracle) und machen es zur Regel, dass mindestens eine Datenbankinstanz pro Kunde (und mehrere Benutzer / Schemata für die Projekte) vorhanden ist. Wir haben jedoch nicht viele Raster in einer Datenbank gespeichert, da sie auch außerhalb einer zu viel Speicherplatz beanspruchen. Außerdem möchten wir unsere Datenbankinstanzen so leicht wie möglich halten.

Und ja, wir haben jemanden, der dafür zuständig ist, das Ganze zu überwachen, damit es nicht zu chaotisch wird.

Das größte Problem bei diesem Setup ist derzeit das Fehlen einer netten Benutzeroberfläche, die uns helfen würde, einen besseren Überblick über das Ganze zu erhalten. Darüber hinaus wollten wir einen Metadatenspeicher einbinden. Wir prüfen hier immer noch unsere Optionen.

Wir verwenden die Versionskontrolle für unseren Code und haben sie für Dokumente verwendet. Es stellt sich jedoch heraus, dass die Versionskontrolle nicht für große Datasets geeignet ist, insbesondere wenn es sich hauptsächlich um Binärdateien handelt. Daher würde ich dies nicht empfehlen , es sei denn, Sie haben es mit GML oder etwas ähnlich Textähnlichem zu tun (zu den Problemen gehören ein hoher Overhead bei der serverseitigen Datenträgerverwendung sowie ein Absturz von Clients beim Auschecken großer Repositorys).

mkadunc
quelle
6

Wie @JasonBirch sagte, ist die Versionskontrolle ein großes Problem.

Wir haben auch festgestellt, dass ein angemessener Workflow von enormer Bedeutung ist. Wenn wir beispielsweise Felddaten erfassen, verwenden wir in der Regel Staging-Datenbanken, in denen die Felddaten einer Qualitätssicherung unterzogen werden können, bevor sie in den Stammdatensatz eingefügt werden. Abhängig davon, wie viele Daten einer Qualitätssicherung unterzogen werden müssen, entsteht immer ein gewisser Overhead.

Auch wenn Sie es nicht gesehen haben, empfehle ich Ihnen, sich das E-Book zu Geokommunikation und Informationsdesign von Lars Brodersen anzuschauen , zumindest für einen Teil dessen, was er zur Datenmodellierung zu sagen hat.

om_henners
quelle
5

Postgres wie bereits gesagt, aber wenn Sie es portabel und leicht zu transportieren haben möchten, können Sie immer SQLite + die Spatialite-Erweiterung verwenden.

In Bezug auf Management-Tools nicht so einfach zu bedienen wie Postgres, aber QGis KANN problemlos direkt mit einer GIS-Datenbank kommunizieren, die für Spatialites geeignet ist.

Eigentlich verwende ich SQLite + Spatialite zum Sichern, ich habe einen Windows-Dienst, der im Hintergrund ausgeführt wird (benutzerdefiniert geschrieben), der meine PGSql-Instanz überwacht und meine GIS-Daten in verschiedene SQLite-DBs spiegelt, die sich auf externen USB-Laufwerken befinden.

Noch ein Tipp mit PG, benutze Schemata

Viele Leute, von denen ich weiß, dass sie einfach alles "öffentlich" machen und damit fertig sind, aber wenn Sie Ihre Datenbank richtig organisieren, macht es den Unterschied.

Beispielsweise enthält meine Datenbank "Ordnance_Survey" Schemas für VectormapDistrict VectormapLocal Topo50 LookupGrids CodePointWithPolygons CodePointOpen

wo ich alle zugehörigen Daten aufbewahre.

Während die Metadatentabellen, wie Geometriespalten usw., nur in "Öffentlich" gespeichert sind, ist die Postgis-Erweiterung auch nur für das öffentliche Schema aktiviert. Sie kann jedoch von allen anderen verwendeten Schemas aus aufgerufen werden.

shawty
quelle
4

Wie in den vorherigen Beiträgen erwähnt, sind räumliche DBs und ein Metadatenserver das übliche Setup. Ich denke, eine wichtige Sache, an die man sich erinnern sollte, ist, dass eine Größe nicht für alle passt. Sie erhalten Daten, die sich am besten für Oracle, Dateiserver und SQL Server eignen. Ich habe versucht, alle Datenanforderungen in einer Lösung zusammenzufassen, und in der Regel schlägt dies fehl.

Erwarten Sie, dass Sie unterschiedliche Lösungen verwenden, die zu den Daten passen und für sie planen. Hier kommt das Geo-Portal (Metadaten-Server) wirklich ins Spiel.

Laine
quelle
2

Ich muss 'George' zustimmen, dass Metadaten eine große Rolle bei der Verwaltung von Geodaten spielen sollten. Bei allen digitalen Daten sind Metadaten der Schlüssel - denken Sie an einen Fotografen, der versucht, seine digitalen Fotodateien ohne richtige Metadaten zu verwalten. Das Leben wird so viel einfacher, wenn Sie Dinge religiös kennzeichnen und eine gute Software haben, die die Daten nutzen kann. Jetzt ist die ursprüngliche Frage zu "Geodaten verwalten" ziemlich weit gefasst - dies können zu speichernde Datenformate, Benennungskonventionen, Hierarchien von Datensätzen und Features, Bearbeiten von Rollen und Berechtigungen usw. usw. sein.

Kevin
quelle
1

Das Speichermuster für Geodaten hängt davon ab, wie Sie sie abfragen möchten bzw. was Sie damit tun möchten. Im Folgenden finden Sie einige Tools, die Sie in Betracht ziehen können:

Postgres + PostGIS: Unterstützt Geodatenindizes und alle Arten von Abfragen, die Sie sich vorstellen können. Um Ihre Terabyte an Daten zu verwalten, müssen Sie Sharding, Abfrageoptimierung usw. anwenden. Wenn Ihre Schreiblast hoch ist, würde ich dies nicht empfehlen.

MongoDB: Dies unterstützt große Datenmengen. Ideal für einfaches Speichern, Abrufen und begrenzte räumliche Abfragen.

Dateispeicherung: Wenn Sie wirklich nur ein Archivierungssystem sind und nur einen Teil der Daten zum Abfragen verwenden, ist es möglicherweise wirtschaftlich, Ihre Daten als Dateien zu speichern. Ihre Versionskontrollanforderung könnte hiermit zufrieden sein.

Redis: Sie können eine der oben genannten Optionen mit der Redis Geo-Unterstützung kombinieren, um eine kleine Menge von aktuellen Daten in Redis zu speichern, auf die Sie häufig zugreifen müssen. Stellen Sie sich das als Ihren Cache vor.

Amit Rathi
quelle