In diesem Abschnitt wird der Prozess der Geocodierung beschrieben und wie ein Geocodierer im Stapelbetrieb von der Steuerzentrale aus ausgeführt wird.
Wie bereits erwähnt, verwendet DB2 Spatial Extender eine als Geocodierer bezeichnete Funktion für zwei Aktivitäten: die Umsetzung von Adressdaten in räumliche Daten und die Eintragung dieser räumlichen Daten in Tabellenspalten. Dieser Abschnitt erläutert die wesentlichen Unterschiede zwischen Geocodierern und ihren Quellen. Außerdem beschreibt er zwei Modi, in denen ein Geocodierer arbeiten kann, und stellt Faktoren vor, die bei der Planung der Arbeit mit einem Geocodierer berücksichtigt werden sollten.
Mit dem Spatial Extender haben Sie folgende Möglichkeiten:
Der Standard-Geocodierer kann Adressen in den USA geocodieren und sie in ST_Point-Daten umsetzen. Wenn Sie Daten mit anderen räumlichen Datentypen speichern wollen, können Sie einen anderen Geocodierer installieren, der solche Daten generiert. Wenn Sie räumliche Daten benötigen, die Standorte außerhalb der USA darstellen oder Standorte ohne Adresse, beispielsweise Ackerland mit unterschiedlichem Anteil an Muttererde, können Sie auch für diese Anforderung einen weiteren Geocodierer installieren.
Bevor Sie mit einem zusätzlichen Geocodierer arbeiten können, muss dieser registriert worden sein. Benutzer und Hersteller können einen solchen Geocodierer mit der gespeicherten Prozedur db2gse.gse_register_gc registrieren. Der Geocodierer kann nicht über die Steuerzentrale registriert werden.
Informationen zu db2gse.gse_register_gc finden Sie im Abschnitt db2gse.gse_register_gc. Allgemeine Informationen zur Verwendung der gespeicherten Prozeduren des Spatial Extender finden Sie in Kapitel 9, Gespeicherte Prozeduren.
Ein Geocodierer kann in zwei verschiedenen Modi arbeiten:
Die schrittweise steigende Geocodierung wird auch als automatische Geocodierung bezeichnet.
Wenn Sie vorhaben, einen Geocodierer zu verwenden, sollten Sie eventuell die folgenden Faktoren berücksichtigen:
Sie geben selbst an, wie hoch die Genauigkeit sein muss. Denken Sie daran, dass Sie die Genauigkeit eventuell anpassen müssen. Angenommen, die Genauigkeit ist 100. Wenn viele Quellendatensätze Adressen enthalten, die neuer sind als die Bezugsdaten, sind Übereinstimmungen von 100 Prozent zwischen diesen Datensätzen und den Bezugsdaten nicht möglich. Der Geocodierer weist diese Datensätze daher zurück. Insgesamt gilt: Wenn ein Geocodierer räumliche Daten generiert, die ungenügend oder weitgehend ungenau sind, können Sie dieses Problem eventuell umgehen, indem Sie die Genauigkeit ändern und den Geocodierer erneut starten.
Es gibt mehrere Möglichkeiten, die Anzahl oder den Bereich der Datensätze zu steuern, die ein Geocodierer vor dem Festschreiben bearbeitet:
Methode 1
Ein Geocodierer kann vor jeder Festschreibung Adressdaten in einer bestimmten Anzahl von Datensätzen geocodieren. Mit diese Methode kann die Größe der Arbeitseinheiten genau gesteuert werden. Allerdings ist der Systemaufwand bei dieser Methode erheblich höher als bei den übrigen hier vorgestellten Methoden.
Geben Sie zur Verwendung von Methode 1 die Anzahl der Datensätze an, die vor jeder Festschreibung verarbeitet werden sollen. Wenn Sie mit der Steuerzentrale arbeiten, stellen Sie diese Zahl mit dem Drehknopf Commit scope im Fenster Run Geocoder ein. Wenn Sie ein Anwendungsprogramm schreiben, ordnen Sie diese Zahl dem Parameter commitScope der gespeicherten Prozedur db2gse.gse_run_gc zu.
Methode 2
Ein Geocodierer kann vor jeder Festschreibung Adressdaten in allen Datensätzen einer Tabelle geocodieren. Bei dieser Methode verarbeitet der Geocodierer die Datensätze ähnlich wie eine Stapeloperation, wobei der Systemaufwand pro Datensatz erheblich niedriger ist als bei Methode 1. Allerdings können Sie bei dieser Methode die Größe der Arbeitseinheit nicht im selben Umfang steuern wie bei Methode 1. Infolgedessen haben Sie keinen Einfluss darauf, wie viele Sperren beibehalten werden oder wie viele Protokolleinträge während der Ausführung des Geocodierers erstellt werden. Darüber hinaus müssen Sie den Geocodierer so einstellen, dass er im Fall eines Fehlers, der eine ROLLBACK-Operation erfordert, alle Datensätze erneut verarbeitet. Dies kann erhebliche Ressourcenkosten verursachen, wenn die Tabelle sehr groß ist und der Fehler sowie die ROLLBACK-Operation auftreten, nachdem die meisten Datensätze bereits verarbeitet wurden.
Zum Starten von Methode 2 von der Steuerzentrale aus stellen Sie den Drehknopf Commit scope im Fenster Run Geocoder auf Null. Wenn Sie ein Anwendungsprogramm schreiben, setzen Sie den Parameter commitScope der gespeicherten Prozedur db2gse.gse_run_gc auf Null.
Methode 3
Ein Geocodierer kann vor jeder Festschreibung Adressdaten in einer Untergruppe der Datensätze einer Tabelle geocodieren. Anschließend kann der Geocodierer die Adressdaten in einer zweiten und, falls erforderlich, in einer dritten, einer vierten Untergruppe usw. geocodieren. Der Geocodierer verarbeitet jede Untergruppe ähnlich wie eine Stapeloperation, wobei der Systemaufwand pro Datensatz erheblich niedriger ist als bei Methode 1. Ebenso wie Methode 2 erlaubt jedoch auch Methode 3 keine direkte Einflussnahme auf die Größe der Arbeitseinheit. Außerdem fällt hier Systemaufwand für die mehrfache Einstellung und Ausführung des Geocodierers für jede Untergruppe von Datensätzen an.
So definieren Sie über die Steuerzentrale eine Untergruppe von Datensätzen:
Zur Definition einer Untergruppe von Datensätzen in einem Anwendungsprogramm codieren Sie die gespeicherte Prozedur db2gse.gse_run_gc wie folgt: