지리 공간적 데이터 처리 및 분석

Azure Data Factory
Azure Data Lake Storage
Azure Database for PostgreSQL
Azure Databricks
Azure Event Hubs

이 문서에서는 대량의 지리 공간적 데이터를 분석에 사용할 수 있도록 하기 위한 관리 가능한 솔루션에 대해 간략하게 설명합니다.

아키텍처

지리 공간적 데이터가 Azure 시스템을 통해 흐르는 방법을 보여 주는 아키텍처 다이어그램. 다양한 구성 요소가 데이터를 수신, 처리, 저장, 분석, 게시합니다.

이 아키텍처의 Visio 파일을 다운로드합니다.

이 다이어그램에는 각각 다른 레이블의 회색 상자가 여러 개 포함되어 있습니다. 왼쪽부터 수집, 준비, 로드, 제공, 시각화 및 탐색 레이블입니다. 다른 상자 아래의 마지막 상자에는 모니터 및 보안 레이블이 있습니다. 각 상자에는 다양한 Azure 서비스를 나타내는 아이콘이 포함되어 있습니다. 번호가 매겨진 화살표는 다이어그램 설명에서 해당 단계가 설명하는 방식으로 상자를 연결합니다.

워크플로

  1. IoT 데이터는 다음과 같이 시스템에 입력됩니다.

    • Azure Event Hubs에서 IoT 데이터의 스트림을 수집합니다. 데이터에는 디바이스 위치를 식별하는 좌표 또는 기타 정보가 포함됩니다.
    • Event Hubs는 초기 스트림 처리에 Azure Databricks를 사용합니다.
    • Event Hubs가 Azure Data Lake Storage에 데이터를 저장합니다.
  2. GIS 데이터는 다음과 같이 시스템에 입력됩니다.

    • Azure Data Factory에서 모든 형식의 래스터 GIS 데이터 및 벡터 GIS 데이터를 수집합니다.

      • 래스터 데이터는 값의 그리드로 구성됩니다. 각 픽셀 값은 지리적 영역의 온도 또는 상승과 같은 특성을 나타냅니다.
      • 벡터 데이터는 특정 지리적 기능을 나타냅니다. 꼭짓점 또는 불연속 기하학적 위치는 벡터를 구성하고 각 공간 개체의 모양을 정의합니다.
    • Data Factory가 Data Lake Storage에 데이터를 저장합니다.

  3. Azure Databricks의 Spark 클러스터는 지리 공간적 코드 라이브러리를 사용하여 데이터를 변환하고 정규화합니다.

  4. Data Factory가 준비된 벡터 및 래스터 데이터를 Azure Database for PostgreSQL에 로드합니다. 솔루션은 이 데이터베이스와 함께 PostGIS 확장을 사용합니다.

  5. Data Factory가 준비된 벡터 및 래스터 데이터를 Azure Data Explorer에 로드합니다.

  6. Azure Database for PostgreSQL에서 GIS 데이터를 저장합니다. API를 사용하면 이 데이터를 다음과 같이 표준화된 형식으로 사용할 수 있습니다.

    • GeoJSON은 JSON(JavaScript Object Notation)을 기반으로 합니다. GeoJSON은 단순한 지리적 기능 및 비 공간 속성을 나타냅니다.
    • WKT(잘 알려진 텍스트)는 벡터 기하 도형 개체를 나타내는 텍스트 표시 언어입니다.
    • 벡터 타일 은 지리 데이터의 패킷입니다. 경량 형식은 매핑 성능을 향상시킵니다.

    Redis 캐시는 데이터에 대한 빠른 액세스를 제공하여 성능을 향상시킵니다.

  7. Azure App Service의 Web Apps 기능은 Azure Maps와 함께 작동하여 데이터의 시각적 개체를 생성합니다.

  8. 사용자는 Azure Data Explorer를 사용하여 데이터를 분석합니다. 이 도구의 GIS 기능은 통찰력 있는 시각화를 만듭니다. 예를 들면 지리 공간적 데이터에서 산점도 생성이 있습니다.

  9. Power BI는 사용자 지정된 보고서 및 BI(비즈니스 인텔리전스)를 제공합니다. Power BI 대한 Azure Maps 시각적 개체는 비즈니스 결과에서 위치 데이터의 역할을 강조 표시합니다.

프로세스 전체:

  • Azure Monitor는 이벤트 및 성능에 대한 정보를 수집합니다.
  • Log Analytics는 모니터 로그에서 쿼리를 실행하고 결과를 분석합니다.
  • Azure Key Vault는 암호, 연결 문자열 및 비밀을 보호합니다.

구성 요소

  • Azure Event Hubs는 빅 데이터를 위한 완전 관리형 스트리밍 플랫폼입니다. 이 PaaS(Platform as a Service)는 분할된 소비자 모델을 제공합니다. 여러 애플리케이션에서 이 모델을 사용하여 데이터 스트림을 동시에 처리할 수 있습니다.

  • Azure Data Factory는 서로 다른 데이터 저장소의 데이터와 함께 작동하는 통합 서비스입니다. 완전 관리형 서버리스 플랫폼을 사용하여 데이터 변환 워크플로를 만들고 예약하며 오케스트레이션할 수 있습니다.

  • Azure Databricks는 데이터 분석 플랫폼입니다. 완전 관리형 Spark 클러스터는 여러 원본에서 대량의 데이터 스트림을 처리합니다. Azure Databricks는 분석 및 데이터 시각화에 사용하기 위해 지리 공간적 데이터를 대규모로 변환할 수 있습니다.

  • Data Lake Storage는 고성능 분석 워크로드를 위한 확장 가능하고 안전한 데이터 레이크입니다. 이 서비스는 수백 기가비트의 처리량을 유지하면서 수 페타바이트의 정보를 관리할 수 있습니다. 데이터는 일반적으로 다른 유형의 여러 소스에서 제공되며 구조화, 반구조화 또는 구조화되지 않을 수 있습니다.

  • Azure Database for PostgreSQL은 오픈 소스 PostgreSQL 데이터베이스 엔진의 커뮤니티 버전을 기반으로 하는 완전 관리형 관계형 데이터베이스 서비스입니다.

  • PostGIS는 GIS 서버와 통합되는 PostgreSQL 데이터베이스의 확장입니다. PostGIS는 지리적 개체를 포함하는 SQL 위치 쿼리를 실행할 수 있습니다.

  • Redis는 오픈 소스 메모리 내 데이터 저장소입니다. Redis 캐시는 서버 메모리에 자주 액세스하는 데이터를 유지합니다. 그런 다음 캐시는 데이터를 사용하는 대량의 애플리케이션 요청을 신속하게 처리할 수 있습니다.

  • Power BI는 소프트웨어 서비스 및 앱의 컬렉션입니다. Power BI를 사용하여 관련 없는 데이터 원본을 연결하고 시각적 개체를 만들 수 있습니다.

  • Power BI용 Azure Maps 시각적 개체는 공간 데이터로 맵을 향상시키는 방법을 제공합니다. 이 시각적 개체를 사용하여 위치 데이터가 비즈니스 메트릭에 미치는 영향을 보여줄 수 있습니다.

  • Azure App Service 및 포함된 Web Apps 기능은 웹앱의 빌드, 배포 및 크기 조정을 위한 프레임워크를 제공합니다. App Service 플랫폼은 기본 제공 인프라 유지 관리, 보안 패치 및 크기 조정을 제공합니다.

  • Azure Maps의 GIS 데이터 API는 GeoJSON 및 벡터 타일과 같은 형식으로 맵 데이터를 저장하고 검색합니다.

  • Azure Data Explorer대량의 데이터로 신속하게 작업할 수 있는 완전 관리형 데이터 분석 서비스입니다. 이 서비스는 원래 시계열 및 로그 분석에 초점을 맞췄습니다. 이제 애플리케이션, 웹 사이트, IoT 디바이스 및 기타 원본의 다양한 데이터 스트림도 처리합니다. Azure Data Explorer의 지리 공간적 기능은 맵 데이터를 렌더링하기 위한 옵션을 제공합니다.

  • Azure Monitor는 환경 및 Azure 리소스에 대한 데이터를 수집합니다. 이 진단 정보는 가용성 및 성능을 유지하는 데 유용합니다. Monitor를 구성하는 두 데이터 플랫폼은 다음과 같습니다.

  • Log Analytics는 Monitor 로그 데이터에 대한 쿼리를 실행하는 Azure Portal 도구입니다. Log Analytics는 쿼리 결과를 차트로 작성하고 통계적으로 분석하는 기능도 제공합니다.

  • Key Vault는 토큰, 암호, API 키와 같은 비밀을 저장하고 이러한 비밀에 대한 액세스를 제어합니다. 또한 Key Vault는 암호화 키를 만들고 제어하며 보안 인증서를 관리합니다.

대안

  • 자체 API를 개발하는 대신 Martin을 사용하는 것이 좋습니다. 이 오픈 소스 타일 서버는 웹앱에서 벡터 타일을 사용할 수 있도록 합니다. Rust로 작성된 Martin은 PostgreSQL 테이블에 연결합니다. 사용자는 컨테이너로 배포할 수 있습니다.

  • GIS 데이터에 표준화된 인터페이스를 제공하는 것이 목표인 경우 GeoServer를 사용하는 것이 좋습니다. 이 개방형 프레임워크는 WFS(Web Feature Service)와 같은 업계 표준 OGC(Open Geospatial Consortium) 프로토콜을 구현합니다. 또한 일반적인 공간 데이터 원본과 통합됩니다. GeoServer를 가상 머신에 컨테이너로 배포할 수 있습니다. 사용자 지정된 웹앱 및 예비 쿼리가 보조인 경우 GeoServer는 지리 공간적 데이터를 게시하는 간단한 방법을 제공합니다.

  • Azure Databricks에서 지리 공간적 데이터를 사용하는 데 다양한 Spark 라이브러리를 사용할 수 있습니다. 이 솔루션은 다음 라이브러리를 사용합니다.

    그러나 Azure Databricks를 사용하여 지리 공간적 워크로드를 처리하고 크기 조정하기 위한 다른 솔루션도 있습니다.

  • 벡터 타일 은 지도에 GIS 데이터를 표시하는 효율적인 방법을 제공합니다. 이 솔루션은 PostGIS를 사용하여 벡터 타일을 동적으로 쿼리합니다. 이 방법은 100만 개 미만의 레코드를 포함하는 간단한 쿼리 및 결과 집합에 적합합니다. 그러나 다음의 경우에는 다른 방법이 더 좋을 수 있습니다.

    • 쿼리 계산 비용이 많이 들 경우
    • 데이터가 자주 변경되지 않는 경우
    • 대용량 데이터 세트를 표시하는 경우

    이러한 경우 Tippecanoe를 사용하여 벡터 타일을 생성하는 것이 좋습니다. 컨테이너 또는 Azure Functions를 사용하여 데이터 처리 흐름의 일부로 Tippecanoe를 실행할 수 있습니다. API를 통해 결과 타일을 사용할 수 있도록 할 수 있습니다.

  • Event Hubs와 마찬가지로 Azure IoT Hub는 많은 양의 데이터를 수집할 수 있습니다. 그러나 IoT Hub는 디바이스와의 양방향 통신 기능도 제공합니다. 디바이스에서 직접 데이터를 수신하지만 명령 및 정책을 디바이스로 다시 보내는 경우, Event Hubs 대신 IoT Hub를 사용하는 것이 좋습니다.

  • 솔루션을 간소화하려면 다음 구성 요소를 생략합니다.

    • Azure Data Explorer
    • Power BI

시나리오 정보

지리 공간적 데이터 또는 지리적 구성 요소가 포함된 정보를 사용할 수 있는 많은 가능성이 있습니다. 예를 들어 GIS(지리 정보 시스템) 소프트웨어 및 표준을 널리 사용할 수 있습니다. 이러한 기술은 지리 공간적 데이터에 대한 액세스를 저장, 처리 및 제공할 수 있습니다. 그러나 지리 공간적 데이터로 작업하는 시스템을 구성하고 유지 관리하는 일은 어려운 경우가 많습니다. 또한 이러한 시스템을 다른 시스템과 통합하려면 전문가의 지식이 필요합니다.

이 문서에서는 대량의 지리 공간적 데이터를 분석에 사용할 수 있도록 하기 위한 관리 가능한 솔루션에 대해 간략하게 설명합니다. 이 접근 방식은 고급 분석 참조 아키텍처를 기반으로 하며 다음 Azure 서비스를 사용합니다.

  • GIS Spark 라이브러리가 포함된 Azure Databricks는 데이터를 처리합니다.
  • Azure Database for PostgreSQL은 사용자가 API를 통해 요청하는 데이터를 쿼리합니다.
  • Azure Data Explorer는 빠른 탐색 쿼리를 실행합니다.
  • Azure Maps는 웹 애플리케이션에서 지리 공간적 데이터의 시각적 개체를 만듭니다.
  • Power BI의 Azure Maps Power BI 시각적 기능은 사용자 지정 보고서를 제공합니다.

잠재적인 사용 사례

이 솔루션은 다음의 여러 영역에 적용됩니다.

  • 지도 또는 기후 데이터와 같은 대량의 래스터 데이터 처리, 저장 및 액세스 제공
  • ERP(엔터프라이즈 리소스 계획) 시스템 엔터티의 지리적 위치 식별
  • 엔터티 위치 데이터를 GIS 참조 데이터와 결합
  • 디바이스 이동에서 IoT(사물 인터넷) 원격 분석 저장
  • 분석 지리 공간적 쿼리 실행
  • 큐레이팅되고 상황에 맞는 지리 공간적 데이터를 웹앱에 포함

고려 사항

Microsoft Azure Well-Architected Framework를 기반으로 하는 다음 고려 사항이 이 솔루션에 적용됩니다.

가용성

확장성

이 솔루션의 구현은 다음 조건을 충족합니다.

  • 하루에 최대 1,000만 개의 데이터 세트를 처리합니다. 데이터 세트에는 일괄 처리 또는 스트리밍 이벤트가 포함됩니다.
  • Azure Database for PostgreSQL 데이터베이스에 1억 개의 데이터 세트를 저장합니다.
  • 100만 개 이하의 데이터 세트를 동시에 쿼리합니다. 최대 30명의 사용자가 쿼리를 실행합니다.

환경에서는 다음 구성을 사용합니다.

  • 4개의 F8s_V2 작업자 노드가 있는 Azure Databricks 클러스터
  • Azure Database for PostgreSQL의 메모리 최적화 인스턴스
  • 두 개의 표준 S2 인스턴스가 있는 App Service 요금제

구현에 대해 수행할 조정을 결정하려면 다음 요소를 고려합니다.

  • 데이터 수집 속도
  • 데이터 볼륨
  • 쿼리 볼륨
  • 지원해야 하는 병렬 쿼리 수

다음과 같이 Azure 구성 요소를 독립적으로 확장할 수 있습니다.

Monitor의 자동 크기 조정 기능은 크기 조정 기능도 제공합니다. 부하 증가를 처리하는 리소스를 추가하도록 이 기능을 구성할 수 있습니다. 또한 비용을 절감하기 위해 리소스를 제거할 수도 있습니다.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

  • 이 솔루션을 구현하는 비용을 예측하려면 샘플 비용 프로필을 참조하세요. 이 프로필은 확장성 고려 사항에 설명된 환경의 단일 구현을 위한 것입니다. Azure Data Explorer의 비용은 포함되지 않습니다.
  • 매개 변수를 조정하고 사용자 환경에서 이 솔루션을 실행하는 비용을 탐색하려면 Azure 가격 계산기를 사용합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

다음 단계

제품 설명서:

이 솔루션 구현을 시작하려면 다음 정보를 참조하세요.

지리 공간적 데이터 처리에 대한 정보