Anforderungen
Wenn Sie über eine ArcGIS Enterprise-Bereitstellung verfügen, können Sie zum Erzielen der bestmöglichen Locator-Service-Performance ein serverseitiges asynchrones Batch-Geokodierungsmuster nutzen. Dieser Ansatz funktioniert mit Locators, die Sie auf dem Portal veröffentlicht und als Utility-Service hinzugefügt haben. Weitere Informationen zum Erstellen von Locators, zu ihrer Freigabe in einem Portal und zum Hinzufügen als Utility-Service finden Sie unter Konfigurieren des Portals zum Geokodieren von Adressen.
Vorteile
Die Leistungsfähigkeit von ArcGIS Enterprise ermöglicht es Ihnen, die veröffentlichten Geokodierungsservices optimal zu nutzen. Nachdem ein Locator im Portal freigegeben wurde, steht er für die Batch-Geokodierung zur Verfügung. Die Verwendung des Portals zum Ausführen von Batch-Geokodierungen bietet unter anderem folgende Vorteile:
- Maximieren Sie die Serverressourcen, um die Batch-Geokodierung so schnell wie möglich durchzuführen.
- Erlauben Sie dem ArcGIS-Administrator die Verwaltung von Back-End-Ressourcen, um die Überlastung von Services zu vermeiden.
- Führen Sie umfangreiche Batch-Geokodierungsaufträge hinter der Firewall Ihrer Organisation unter Verwendung Ihrer Daten und Ihres eigenen veröffentlichten Locators durch.
- Chunking und Retry-Logik sind integriert, um sicherzustellen, dass umfangreiche Batch-Geokodierungsaufträge fehlerfrei durchgeführt werden können.
Architektur
Zur optimalen Nutzung der veröffentlichten Locator-Services können Sie die Anzahl der Instanzen des Geokodierungsservers erhöhen. Navigieren Sie hierzu zum Services-Verzeichnis in ArcGIS Server Manager, wählen Sie den Geokodierungsservice aus, den Sie hochskalieren möchten, wechseln Sie zur Registerkarte Pooling und wählen Sie die Parameter Minimale Anzahl Instanzen pro Computer und Maximale Anzahl Instanzen pro Computer aus. Für die Geokodierung sollten diese Zahlen immer gleich sein. Wenn Sie möchten, dass immer vier Instanzen verfügbar sind, können Sie diese beiden Werte auf 4 ändern.
In dem obigen Schema hat der ArcGIS-Administrator den Locator-Service auf vier Instanzen erweitert. Der ArcGIS-Administrator für Ihre Organisation kann dann die Eigenschaft "numBatchThreads" für den Locator auf 4 setzen und die Batch-Geokodierungs-Performance um das Vierfache steigern. Der Administrator kann die Eigenschaft "numBatchThreads" im Verzeichnis "Sharing" des Portal for ArcGIS-Verzeichnisses festlegen. Beachten Sie, wenn zwei Benutzer gleichzeitig eine Stapel-Geokodierung durchführen möchten, der ArcGIS-Administrator die Eigenschaft "numBatchThreads" auf 2 setzen sollte, da sonst Aufträge in die Warteschlange eingereiht werden und es möglicherweise zum Timeout kommt, während ein anderer Auftrag abgeschlossen wird. Dadurch wird jeder Stapel-Geokodierungsauftrag mit zwei der verfügbaren Locator-Instanzen ausgeführt, und die Back-End-Locator-Services können die Last der gleichzeitigen Übermittlung mehrerer Aufträge bewältigen.
Konfiguration
Die folgenden Schritte beschreiben, wie der ArcGIS-Administrator das Portal so konfigurieren kann, dass es das oben beschriebene asynchrone Batch-Geokodierungsmuster nutzt.
Hinzufügen der Protokollierung für mehr Feedback während der Batch-Geokodierung
Standardmäßig wird für den GeocodingTools-Geoverarbeitungsservice die Meldungsebene Warnung festgelegt. Für detailliertere Fehlermeldungen und bessere Aktualisierungen zum Status Ihres Batch-Geokodierungsauftrags können Sie für den GeocodingTools-Geoverarbeitungsservice die Protokollierungsebene Info festlegen.
- Navigieren Sie zum ArcGIS Server Manager Ihres Hosting-Servers.
- Klicken Sie auf den Ordner Utilities im Server Manager-Verzeichnis.
- Klicken Sie auf den Geoverarbeitungsservice GeocodingTools.
- Klicken Sie auf das Banner Parameter auf der linken Seite, und legen Sie die Meldungsebene auf Info fest. Klicken Sie dann auf die Schaltfläche Speichern und neu starten in der oberen rechten Ecke.
Das Ändern der Protokollierungsebene zu Info führt zwar zu einer leichten Verschlechterung der Performance, ermöglicht aber ein besseres Feedback zum Auftragsfortschritt und stellt mehr Informationen über ggf. aufgetretene Fehler bereit. Diese Vorteile lassen sich in den Werkzeugen Tabelle geokodieren, Positionen aus Tabelle geokodieren undDatei geokodieren in ArcGIS Pro feststellen.
Erhöhen des Timeout-Wertes für die Batch-Geokodierung
Standardmäßig wird das Zeitlimit des GeocodingTools-Geoverarbeitungsservice überschritten, wenn Aufträge länger als 200 Minuten dauern. Wenn Sie damit rechnen, dass für den Abschluss eines Batch-Geokodierungsauftrags mehr als 3 Stunden und 20 Minuten benötigt werden, empfiehlt es sich, die maximale Zeit, die ein Client den Service verwenden kann, zu erhöhen.
- Navigieren Sie zum ArcGIS Server Manager Ihres Hosting-Servers.
- Klicken Sie auf den Ordner Utilities im Server Manager-Verzeichnis.
- Klicken Sie auf den Geoverarbeitungsservice GeocodingTools.
- Klicken Sie links auf das Banner Pooling, und ändern Sie die maximale Zeit, die ein Client den Service verwenden kann. Wenn Sie diese Einstellung auf einen sehr großen Wert erhöhen, können Sie sicherstellen, dass umfangreiche Batch-Geokodierungsaufträge niemals das Zeitlimit überschreiten. Klicken Sie dann auf die Schaltfläche Speichern und neu starten in der oberen rechten Ecke.
Konfigurieren der vorgeschlagenen Anzahl gleichzeitiger Batch-Geokodierungsanforderungen (numBatchThreads) für den Locator
Der Locator des Portals kann auch vom GeocodingTools-Geoverarbeitungsservice verwendet werden, der auf der verbundenen GIS Server-Site ausgeführt wird. Der Geoverarbeitungsservice kann mehrere gleichzeitige Anforderungen an den Geokodierungs-Utility-Service senden, um die allgemeine Ausführung für die Batch-Geokodierung zu beschleunigen. Die Anzahl der gleichzeitigen Anforderungen des Geoverarbeitungsservice kann von einem Portal-Administrator konfiguriert werden. Sendet der Geoverarbeitungsservice übermäßig viele gleichzeitige Anforderungen an den Locator, kann dies die Performance des Locators beeinträchtigen, was wiederum zu mehr Fehlern beim Ausführen des Geoverarbeitungsservice führen kann. Aus diesem Grund sollte der Administrator die Anzahl der vom Geoverarbeitungsservice verwendeten Instanzen basierend auf der Anzahl der für den Locator-Service verfügbaren Instanzen festlegen und außerdem die Anzahl der gleichzeitigen Batch-Geokodierungsanforderungen konfigurieren, die eine Instanz des GeocodingTools-Geoverarbeitungsservice senden kann.
Es empfiehlt sich, dass die Anzahl der Instanzen für den Locator-Service immer größer oder gleich der Anzahl der für den GeocodingTools-Geoverarbeitungsservice verfügbaren Instanzen ist. Die Anzahl der gleichzeitigen Batch-Geokodierungsanforderungen sollte proportional zur Anzahl der für den Locator und die Geoverarbeitungsservices verfügbaren Instanzen festgelegt werden. Wenn für den Locator-Service beispielsweise acht Instanzen und für den Geoverarbeitungsservice zwei Instanzen verfügbar sind, sollte die Anzahl der gleichzeitigen Batch-Geokodierungsanforderungen auf vier festgelegt werden. Wird der Geoverarbeitungsservice ausgeführt, sendet er vier gleichzeitige Batch-Geokodierungsanforderungen an den Locator-Service. Falls mehr Instanzen für den Locator-Service zur Verfügung stehen, passen Sie die Anzahl gleichzeitiger Batch-Geokodierungsanforderungen entsprechend an, um die Nutzung der Instanzen für den Locator-Service zu maximieren.
Beachten Sie, dass der Esri World Batch Geocoder nicht für die Verwendung mehrerer gleichzeitiger Anforderungen konfiguriert werden kann. Die folgende Konfiguration wird auf alle anderen veröffentlichten Locator-Services angewendet, die als Utility-Services konfiguriert sind.
Führen Sie die folgenden Schritte aus, um die vorgeschlagene Anzahl gleichzeitiger Batch-Geokodierungsanforderungen für den Locator-Service festzulegen:
- Wechseln Sie zum Verzeichnis "Sharing" des Portal for ArcGIS-Verzeichnisses, und melden Sie sich als Mitglied mit Administratorberechtigungen an. Die URL hat das Format https://webadaptorhost.domain.com/<webadaptorname>/sharing/rest.
- Navigieren Sie zu Startseite > Portale > Auto.
- Klicken Sie unten auf der Seite auf Update.
- Im Textfeld Geokodierungsservice werden die Locator-Services angezeigt, die derzeit mit dem Portal konfiguriert wurden. Für die Services, die Batch-Geokodierung zulassen (Services, deren batch-Eigenschaft auf true gesetzt ist), können Sie die vorgeschlagene Anzahl
gleichzeitiger Batch-Geokodierungsanforderungen konfigurieren. Wählen Sie den Service aus, den Sie mit dieser Eigenschaft konfigurierten möchten. Der JSON-Code im Textfeld Geokodierungsservice hat das folgende Format:
[{ "url" : "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer", "northLat" : "Ymax", "southLat" : "Ymin", "eastLon" : "Xmax", "westLon" : "Xmin", "name" : "Esri World Geocoder", "batch": false, "suggest" : true }, { "url" : "https://machine.domain.com/server/rest/services/Locators/USA/GeocodeServer", "name" : "Streetmap Premium USA Geocoder", "placeholder" : "Find address or place", "singleLineFieldName" : "SingleLine", "batch" : true, "placefinding" : true, "suggest" : true, "zoomScale" : 10000 }]
- Fügen Sie die Eigenschaft numBatchThreads allen Locator-Services hinzu, die Sie mit dem GeocodingTools-Geoverarbeitungsservice verwenden möchten. Um den numBatchThreads-Wert einzustellen, legen Sie zunächst die Anzahl der gleichzeitigen Batch-Geokodierungsanforderungen, die Sie für einen angegebenen Locator-Service aktivieren möchten, und dann die Eigenschaft auf diese Anzahl fest. Beachten Sie, dass numBatchThreads auf batch gesetzt sein muss, damit true für den Locator-Service konfiguriert werden kann.
In diesem Beispiel ist die Anzahl der zulässigen gleichzeitigen Batch-Geokodierungsanforderungen für den Geokodierungs-Utility-Service "Streetmap Premium USA" auf vier festgelegt.
[{ "url" : "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer", "northLat" : "Ymax", "southLat" : "Ymin", "eastLon" : "Xmax", "westLon" : "Xmin", "name" : "Esri World Geocoder", "batch": false, "suggest" : true }, { "url" : "https://machine.domain.com/server/rest/services/Locators/USA/GeocodeServer", "name" : "Streetmap Premium USA Geocoder", "placeholder" : "Find address or place", "singleLineFieldName" : "SingleLine", "batch" : true, "placefinding" : true, "suggest" : true, "zoomScale" : 10000, "numBatchThreads" : 4 }]
- Nachdem Sie den JSON-Code im Textfeld Geokodierungsservice aktualisiert haben, klicken Sie unten auf der Seite auf Organisation aktualisieren.
Für die Batch-Geokodierung aktivierte Werkzeuge
Nachdem der ArcGIS-Administrator die Eigenschaft "numBatchThreads" pro Locator konfiguriert hat, können Benutzer die höhere Performance für ihre Batch-Geokodierungsaufträge nutzen. Diese Performance-Steigerung kann von den WerkzeugenTabelle geokodieren, Positionen aus Tabelle geokodieren und Datei geokodieren in ArcGIS Pro sowiePositionen aus Tabelle geokodieren in Map Viewer genutzt werden.