요구 사항
ArcGIS Enterprise 배포가 있는 경우 서버 측 비동기 일괄 지오코딩 패턴을 활용하면 로케이터 서비스에서 최적의 성능을 얻을 수 있습니다. 이 방법은 포털에서 발행하고 유틸리티 서비스로 추가한 로케이터에서 작동됩니다. 로케이터를 생성한 후 포털에 공유하고 유틸리티 서비스로 추가하는 작업에 대한 자세한 내용은 주소를 지오코딩할 포털 구성을 참고하세요.
장점
ArcGIS Enterprise를 사용하면 발행된 지오코딩 서비스를 최대한 활용할 수 있습니다. 로케이터가 포털에 공유되고 나면 로케이터를 사용하여 일괄 지오코딩을 수행할 수 있습니다. 포털을 사용하여 일괄 지오코딩을 수행하면 다음과 같은 몇 가지 장점이 있습니다.
- 일괄 지오코딩 작업을 최대한 빨리 완료하도록 서버 리소스를 최대화합니다.
- ArcGIS 관리자가 백엔드 리소스를 관리하여 서비스가 오버로드되지 않도록 합니다.
- 내 데이터와 발행된 위치 로케이터를 사용하여 기관의 방화벽으로 보호되는 대규모 일괄 지오코딩을 수행할 수 있습니다.
- 대규모 일괄 지오코딩 작업이 실패하지 않도록 청크 및 재시도 로직이 빌트인되어 있습니다.
건축
발행된 로케이터 서비스를 최대한 활용하려면 지오코드 서버의 인스턴스 수를 늘리면 됩니다. ArcGIS Server Manager의 서비스 디렉터리로 이동하여 확장할 지오코딩 서비스를 선택한 후 풀링 탭으로 이동하여 머신당 최소 인스턴스 개수와 머신당 최대 인스턴스 개수 매개변수를 변경합니다. 지오코딩의 경우 이 수는 항상 동일해야 합니다. 4개의 인스턴스를 항상 사용할 수 있도록 하려면 이 값을 모두 4로 변경하면 됩니다.
위의 다이어그램에서 ArcGIS 관리자는 로케이터 서비스를 4개의 인스턴스로 확장했습니다. 기관의 ArcGIS 관리자는 로케이터에 대한 numBatchThreads 등록정보를 4로 설정하여 일괄 지오코딩 성능을 4배로 향상시킬 수 있습니다. 관리자는 Portal for ArcGIS 디렉터리 공유 위치에서 numBatchThreads 등록정보를 설정할 수 있습니다. 2명의 사용자가 동시에 일괄 지오코딩을 수행하려는 경우 ArcGIS 관리자는 numBatchThreads 등록정보를 2로 설정할 수 있으며, 다른 작업이 완료될 때까지 기다리는 동안 작업이 대기 목록에 추가되고 시간이 초과될 수 있습니다. 그러면 각각의 일괄 지오코딩 작업이 사용 가능한 로케이터 인스턴스 중 2개에 대해 실행되고 백엔드 위치 로케이터 서비스는 여러 작업을 동시에 제출하는 작업을 처리할 수 있습니다.
구성
다음 단계에서는 ArcGIS 관리자가 위에서 설명한 비동기 일괄 지오코딩 패턴을 활용하도록 포털을 구성하는 방법을 설명합니다.
일괄 지오코딩 중 추가 피드백을 위한 로깅 추가
기본 설정에 따라 GeocodingTools 지오프로세싱 서비스 메시지 수준은 경고로 설정되어 있습니다. 오류 메시지에 대한 자세한 내용과 일괄 지오코딩 작업의 상태에 대한 더 나은 업데이트를 알아보려면 GeocodingTools 지오프로세싱 서비스의 로깅 수준을 정보로 설정하면 됩니다.
- 호스팅 서버의 ArcGIS Server Manager로 이동합니다.
- Server Manager 디렉터리의 유틸리티 폴더를 클릭합니다.
- 지오코딩 도구 지오프로세싱 서비스를 클릭합니다.
- 왼쪽에 있는 매개변수 배너를 클릭하고 메시지 수준을 정보로 변경합니다. 그런 다음 우측 상단에 있는 저장 후 다시 시작 버튼을 클릭합니다.
로깅 수준을 정보로 변경하면 성능이 약간 떨어지지만 작업 진행 상황에 대한 더 나은 피드백과 발생 가능한 오류에 대한 자세한 정보가 제공됩니다. 이러한 장점은 ArcGIS Pro의 지오코드 테이블, 테이블의 위치 지오코딩, 지오코드 파일 도구에서 확인할 수 있습니다.
일괄 지오코딩 시간 제한 늘리기
기본 설정에 따라 GeocodingTools 지오프로세싱 서비스는 200분 넘게 걸리는 작업에 대해 시간 초과됩니다. 일괄 지오코딩 작업을 완료하는 데 걸리는 시간이 3시간 20분을 초과하는 것으로 예상될 경우 클라이언트가 서비스를 사용할 수 있는 최대 시간을 늘릴 수 있습니다.
- 호스팅 서버의 ArcGIS Server Manager로 이동합니다.
- Server Manager 디렉터리의 유틸리티 폴더를 클릭합니다.
- 지오코딩 도구 지오프로세싱 서비스를 클릭합니다.
- 왼쪽의 풀링 배너를 클릭한 다음 클라이언트가 서비스를 사용할 수 있는 최대 시간을 변경합니다. 대규모 일괄 지오코딩 작업이 시간 초과되지 않도록 해당 값을 매우 큰 수로 늘립니다. 그런 다음 우측 상단에 있는 저장 후 다시 시작 버튼을 클릭합니다.
로케이터에 대한 제안된 동시 일괄 지오코딩 요청 수(numBatchThreads) 구성
포털의 로케이터는 페더레이션된 GIS Server 사이트에서 실행되는 GeocodingTools 지오프로세싱 서비스에서도 사용됩니다. 이 지오프로세싱 서비스는 여러 동시 요청을 지오코드 유틸리티 서비스로 보내 일괄 지오코딩을 위한 전체 실행을 빠르게 수행할 수 있습니다. 지오프로세싱 서비스에서 보내는 동시 요청 수는 포털 관리자가 구성할 수 있습니다. 지오프로세싱 서비스가 로케이터로 보내는 동시 요청 수가 과도할 경우 지오코드 서비스의 성능이 저하되어 지오프로세싱 서비스 실행 시 오류가 늘어날 수 있습니다. 따라서 관리자는 로케이터 서비스에 사용 가능한 인스턴스 수를 기반으로 지오프로세싱 서비스에 사용되는 인스턴스 수를 설정해야 하며 GeocodingTools 지오프로세싱 서비스 인스턴스에서 보낼 수 있는 동시 일괄 지오코딩 요청 수도 구성해야 합니다.
가장 바람직한 방법으로는 로케이터 서비스의 인스턴스 수를 항상 GeocodingTools 지오프로세싱 서비스에 사용 가능한 인스턴스 수보다 크거나 같게 설정하는 것입니다. 동시 일괄 지오코딩 요청 수는 로케이터와 지오프로세싱 서비스에 사용 가능한 인스턴스 수와 비례해서 설정해야 합니다. 예를 들어 로케이터 서비스에 사용 가능한 인스턴스 수는 8개이고 지오프로세싱 서비스에 사용 가능한 인스턴스 수는 2개인 경우 동시 일괄 지오코딩 요청 수를 4로 설정합니다. 지오프로세싱 서비스가 실행되면 4개의 동시 일괄 지오코딩 요청이 로케이터 서비스에 전송됩니다. 로케이터 서비스에 더 많은 인스턴스를 사용할 수 있는 경우에는 동시 일괄 지오코딩 요청 수를 적절히 조정하여 로케이터 서비스의 인스턴스를 최대한 활용합니다.
더 많은 동시 요청을 사용하도록 Esri World Batch Geocoder를 구성할 수는 없습니다. 다음 구성은 유틸리티 서비스로 구성되어 발행된 다른 모든 로케이터 서비스에 적용됩니다.
로케이터 서비스에 대한 제안된 동시 일괄 지오코딩 요청 수를 설정하려면 다음 단계를 따르세요.
- Portal for ArcGIS 디렉터리 공유 위치로 이동하여 관리 권한이 있는 구성원으로 로그인합니다. URL은 https://webadaptorhost.domain.com/<webadaptorname>/sharing/rest 형식입니다 .
- 홈 > 포털 > 자체로 이동합니다.
- 페이지 하단에서 업데이트를 클릭합니다.
- 지오코드 서비스 텍스트 상자에는 포털에 현재 구성되어 있는 로케이터 서비스가 표시되어 있습니다. 일괄 지오코딩이 허용되는 서비스(batch 등록정보가 true로 설정된 서비스)의 경우 제안된 동시 일괄 지오코딩 요청 수를 구성할 수 있습니다. 이 등록정보로 구성하려는 서비스를 선택합니다. 지오코드 서비스 텍스트 상자의 JSON은 다음 형식으로 지정됩니다.
[{ "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 }]
- GeocodingTools 지오프로세싱 서비스와 함께 사용할 모든 로케이터 서비스에 numBatchThreads 등록정보를 추가합니다. numBatchThreads 값을 설정하려면 먼저, 지정된 로케이터 서비스에 대해 사용하려는 동시 일괄 지오코딩 요청 수를 결정한 후 이 수와 동일하게 등록정보를 설정합니다. 로케이터 서비스에서 numBatchThreads를 구성하려면 서비스의 batch를 true로 설정해야 합니다.
아래 예시에서는 Streetmap Premium USA Geocoder 유틸리티 서비스의 허용 가능한 동시 일괄 지오코딩 요청 수가 4로 설정됩니다.
[{ "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 }]
- 지오코드 서비스 텍스트 상자의 JSON을 업데이트한 후 페이지 하단에 있는 기관 업데이트를 클릭합니다.
일괄 지오코딩이 활성화된 도구
ArcGIS 관리자가 로케이터별로 numBatchThreads를 구성한 후에는 사용자가 일괄 지오코딩 작업에서 향상된 성능을 이용할 수 있습니다. 이러한 향상된 성능을 이용할 수 있는 도구에는 ArcGIS Pro의 지오코드 테이블, 테이블에서 위치 지오코딩, 지오코드 파일과 Map Viewer의 테이블에서 위치 지오코딩이 있습니다.