Azure Synapse Analytics를 사용하여 우주 데이터 분석

Azure Synapse Analytics
Azure AI 서비스
Azure Computer Vision
Azure Batch
Azure Storage

이 아키텍처는 Azure Synapse Analytics에서 지리 공간적 라이브러리 및 AI 모델을 사용하여 우주 데이터를 추출, 로드, 변환 및 분석하는 작업과 관련된 엔드투엔드 구현을 보여 주도록 설계되었습니다. 또한 이 문서에서는 지리 공간별 Azure Cognitive Services 모델, 파트너의 AI 모델, 사용자 고유의 데이터 가져오기 및 Azure Synapse Analytics를 사용하는 AI 모델을 통합하는 방법을 보여 줍니다. 이 문서의 대상 그룹은 지리 공간적 데이터 또는 우주 데이터를 사용하는 중간 수준의 기술을 갖춘 사용자입니다.

이 아키텍처의 구현은 GitHub에 있습니다.

Apache®, Apache Spark, Spark, Spark 로고, Apache Sedona, Apache Incubator, Apache 깃털 로고 및 Apache Incubator 프로젝트 로고는 미국 및/또는 기타 국가에서 Apache Software Foundation의 등록 상표 또는 상표입니다. 이러한 표시의 사용은 Apache Software Foundation에 의한 보증을 암시하지 않습니다.

아키텍처

지리 공간적 처리 분석 솔루션을 보여 주는 다이어그램

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

데이터 흐름

다음 섹션에서는 아키텍처의 단계에 대해 설명합니다.

데이터 수집

우주 데이터는 Airbus, NAIP/USDA(Planetary Computer API를 통해)Maxar와 같은 데이터 원본에서 가져온 것입니다. 데이터는 Azure Data Lake Storage에 수집되었습니다.

Azure Synapse Analytics는 웹 작업, 데이터 흐름 작업 및 사용자 지정 작업과 같은 다양한 파이프라인 및 작업을 제공하여 이러한 원본에 연결하고 데이터를 Data Lake Storage에 복사합니다.

Azure Synapse 사용자 지정 작업은 가상 머신의 Azure Batch 풀 또는 Docker 호환 컨테이너에서 사용자 지정 코드 논리를 실행합니다.

데이터 변환

데이터는 분석가와 AI 모델에서 사용할 수 있는 형식으로 처리되고 변환됩니다. GDAL, OGR, Rasterio 및 GeoPandas를 포함한 지리 공간적 라이브러리를 사용하여 변환을 수행할 수 있습니다.

Azure Synapse Spark 풀은 이러한 라이브러리를 구성하고 사용하여 데이터 변환을 수행할 수 있는 기능을 제공합니다. Azure Batch 풀을 사용하는 Azure Synapse 사용자 지정 작업도 사용할 수 있습니다.

Azure Synapse Notebook은 라이브 코드, 시각화 및 설명 텍스트가 포함된 파일을 만드는 데 사용할 수 있는 웹 인터페이스입니다. Notebook은 아이디어의 유효성을 검사하고, 변환을 정의하고, 빠른 실험을 수행하여 데이터에서 인사이트를 얻고 파이프라인을 빌드하는 데 적합한 장소입니다. 샘플 코드에서 GDAL 라이브러리는 Spark 풀에서 데이터 변환을 수행하는 데 사용됩니다. 자세한 내용은 이 문서의 샘플 코드 섹션을 참조하세요.

샘플 솔루션은 이 데이터 변환 단계에서 이 파이프라인을 구현합니다. 샘플은 앞에서 설명한 데이터 수집 방법을 통해 데이터가 Data Lake Storage에 복사된다는 가정하에 작성되었습니다. 래스터 데이터를 처리하는 이 파이프라인의 구현을 보여 줍니다.

AI 모델 분석 및 실행

Azure Synapse Notebook 환경은 AI 모델을 분석하고 실행합니다.

Cognitive Services Custom Vision 모델과 같은 서비스를 사용하여 개발되고 자체 환경에서 학습되고 Docker 컨테이너로 패키지된 AI 모델은 Azure Synapse 환경에서 사용할 수 있습니다.

Azure Synapse 환경에서는 파트너로부터 개체 감지, 변경 검색 및 대륙 분류와 같은 다양한 기능에 사용할 수 있는 AI 모델을 실행할 수도 있습니다. 이러한 모델은 자체 환경에서 학습되고 Docker 컨테이너로 패키지됩니다.

Azure Synapse는 Batch 풀에서 코드를 실행 파일 또는 Docker 컨테이너로 실행하는 사용자 지정 작업을 통해 이러한 AI 모델을 실행할 수 있습니다. 샘플 솔루션은 특정 지리 공간적 영역에서 개체 감지를 위한 Azure Synapse 파이프라인의 일부로 Custom Vision AI 모델을 실행하는 방법을 보여 줍니다.

사후 분석 및 시각화

  • 추가 분석 및 시각화의 경우 AI 모델의 분석 및 실행 출력을 Data Lake Storage, 데이터 인식 데이터베이스(예: Azure Database for PostgreSQL) 또는 Azure Cosmos DB에 저장할 수 있습니다. 샘플 솔루션은 AI 모델 출력을 변환하고 이를 GeoJSON 데이터로 Data Lake Storage 및 Azure Database for PostgreSQL에 저장하는 방법을 보여 줍니다. 여기서 출력을 검색하고 쿼리할 수 있습니다.
  • 시각화의 경우
    • 사용이 허가된 도구(예: ArcGIS Desktop) 또는 오픈 소스 도구(예: QGIS)를 사용할 수 있습니다.
    • Power BI를 사용하여 다양한 데이터 원본에서 GeoJSON에 액세스하고 GIS(지리 정보 시스템) 데이터를 시각화할 수 있습니다.
    • 클라이언트 쪽 JavaScript 기반 지리 공간적 라이브러리를 사용하여 웹 애플리케이션의 데이터를 시각화할 수 있습니다.

구성 요소

데이터 원본

데이터 수집

  • Azure Synapse Analytics는 데이터 통합, 엔터프라이즈 데이터 웨어하우징 및 빅 데이터 분석을 모두 결합하는 무제한 분석 서비스입니다. Azure Synapse에는 Azure Data Factory와 동일한 데이터 통합 엔진 및 환경이 포함되어 있으므로 Azure Synapse를 떠나지 않고도 대규모 ETL 파이프라인을 만들 수 있습니다.
  • Azure Data Lake Storage는 빅 데이터 분석 전용이며 Azure Blob Storage를 기반으로 합니다.
  • Azure Batch를 사용하면 Azure에서 대량의 일괄 처리 컴퓨팅 작업을 실행하고 크기를 조정할 수 있습니다. Batch 작업은 Batch 풀의 가상 머신(노드)에서 직접 실행할 수 있지만, 노드의 Docker 호환 컨테이너에서 작업을 실행하도록 Batch 풀을 설정할 수도 있습니다.
    • Azure Synapse 사용자 지정 작업은 가상 머신의 Azure Batch 풀 또는 Docker 컨테이너에서 사용자 지정 코드 논리를 실행합니다.
  • Azure Key Vault는 토큰, 암호 및 API 키와 같은 비밀을 저장하고 이러한 비밀에 대한 액세스를 제어합니다. 또한 Key Vault는 암호화 키를 만들고 제어하며 보안 인증서를 관리합니다.

데이터 변환

다음 지리 공간적 라이브러리 및 패키지는 모두 변환에 사용됩니다. 이러한 라이브러리 및 패키지는 서버리스 Spark 풀에 설치된 다음, Azure Synapse Notebook에 연결됩니다. 라이브러리를 설치하는 방법에 대한 자세한 내용은 이 문서 뒷부분의 Azure Synapse Spark 풀에 지리 공간적 패키지 설치를 참조하세요.

  • 지리 공간적 라이브러리
    • GDAL은 우주 데이터를 조작하는 도구 라이브러리입니다. GDAL은 래스터 및 벡터 데이터 형식에서 작동합니다. 우주 데이터로 작업하고 있는지 알 수 있는 좋은 도구입니다.
    • Rasterio는 래스터 처리를 위한 모듈입니다. Python에서 여러 가지 래스터 형식을 읽고 쓰는 데 사용할 수 있습니다. Rasterio는 GDAL 기반입니다. Rasterio를 가져오면 Python은 지원되는 형식을 읽기 위해 알려진 모든 GDAL 드라이버를 자동으로 등록합니다.
    • GeoPandas는 Python에서 우주 작업을 더 쉽게 수행할 수 있는 오픈 소스 프로젝트입니다. GeoPandas는 기하학적 형식에 대한 공간 작업을 허용하기 위해 Pandas에서 사용하는 데이터 형식을 확장합니다.
    • Shapely는 평면 기능의 집합론 분석 및 조작을 위한 Python 패키지입니다. 널리 배포된 GEOS 라이브러리의 함수를 사용(Python의 ctypes 모듈을 통해)합니다.
    • pyproj는 카토그래픽 변환을 수행합니다. PROJ를 사용하여 경도 및 위도에서 네이티브 맵 프로젝션 x, y 좌표로 그리고 그 반대로 변환합니다.
  • Azure Batch를 사용하면 Azure에서 대량의 일괄 처리 컴퓨팅 작업을 실행하고 크기를 조정할 수 있습니다.
  • Azure Synapse Notebook은 라이브 코드, 시각화 및 설명 텍스트가 포함된 파일을 만들 수 있는 웹 인터페이스입니다. Notebook 작업을 사용하여 기존 Azure Synapse Notebook을 Azure Synapse 파이프라인에 추가할 수 있습니다.
  • Apache Spark 풀은 데이터 변환을 수행하도록 라이브러리를 구성하고 사용하는 기능을 제공합니다. Spark 작업 정의 작업을 사용하여 기존 Spark 작업을 Azure Synapse 파이프라인에 추가할 수 있습니다.

분석 및 AI 모델링

  • Azure Synapse는 기계 학습 기능을 제공합니다.
  • Azure Batch를 사용하면 Azure에서 대량의 일괄 처리 컴퓨팅 작업을 실행하고 크기를 조정할 수 있습니다. 이 솔루션에서 Azure Synapse 사용자 지정 작업은 Azure Batch 풀에서 Docker 기반 AI 모델을 실행하는 데 사용됩니다.
  • Azure Cognitive Services는 비전을 앱에 포함하는 기능을 제공합니다. Cognitive Services의 구성 요소인 Custom Vision을 사용하여 특정 도메인에 대한 최신 컴퓨터 비전 이미지 분석을 사용자 지정하고 포함할 수 있습니다.
  • 사용자 고유의 AI 모델 및 Microsoft 파트너 AI 모델(예: blackshark.ai)을 사용할 수도 있습니다.

사후 분석 및 시각화 링크

  • Azure Database for PostgreSQL은 하이퍼스케일 워크로드용으로 설계된 완전 관리형 관계형 데이터베이스 서비스입니다. PostGIS 확장을 통해 우주 데이터를 지원합니다.
  • Azure Cosmos DBGeoJSON에 표시되는 지리 공간적 지점 데이터의 인덱싱 및 쿼리를 지원합니다.
  • Power BI는 보고서 및 대시보드를 작성하기 위한 대화형 데이터 시각화 도구입니다. Esri ArcGIS Maps에서 우주 데이터에 대한 인사이트를 얻을 수 있습니다.
  • QGIS는 지리 공간적 정보를 만들고, 편집하고, 시각화하고, 분석하고, 게시하는 무료 오픈 소스 GIS입니다.
  • ArcGIS Desktop은 Esri에서 제공하는 라이선스 제품입니다. 지리 정보를 만들고, 분석하고, 관리하고, 공유하는 데 사용할 수 있습니다.

대안

Azure Synapse에서 호출할 수 있는 컨테이너화된 AI 모델을 실행하려는 경우 Azure Kubernetes Service, Azure Container Instances 또는 Azure Container Apps를 사용할 수 있습니다.

Azure Databricks는 분석 파이프라인을 호스트하기 위한 대안을 제공합니다.

Azure HDInsight의 Spark는 Apache Spark 환경에서 지리 공간적 라이브러리를 사용하기 위한 대안을 제공합니다.

우주 데이터 처리에 사용할 수 있는 몇 가지 대체 라이브러리 및 프레임워크는 다음과 같습니다.

  • Apache Sedona(이전의 GeoSpark)는 대규모 공간 데이터를 처리하는 클러스터 컴퓨팅 시스템입니다. Sedona는 여러 컴퓨터에서 대규모 공간 데이터를 효율적으로 로드, 처리 및 분석하는 기본 제공 복원력 분산 데이터 세트 및 SpatialSQL을 사용하여 Spark 및 Spark SQL을 확장합니다.
  • Python용 Dask는 기존 Python 에코시스템의 크기를 조정하는 병렬 컴퓨팅 라이브러리입니다.

시나리오 정보

우주 데이터 수집은 점점 더 일반화되고 있습니다. AI를 적용하려면 기계 학습을 위해 저장된 데이터 보관이 필요합니다. 기업과 정부에서 더 나은 정보 기반 비즈니스 및 전술적 결정을 추진할 수 있도록 우주 데이터 분석을 위한 클라우드 기반 솔루션을 구축해야 하는 필요성이 더욱 중요해졌습니다.

잠재적인 사용 사례

이 솔루션은 항공 우주 및 항공기 산업에 적합합니다. 처리하는 시나리오는 다음과 같습니다.

  • 래스터 데이터 수집 및 처리
  • 미리 학습된 AI 모델을 통한 개체 감지
  • AI 모델을 통한 대륙 분류
  • AI 모델을 통한 환경 변경 모니터링
  • 전처리된 이미지 세트에서 파생된 데이터 세트
  • 벡터 시각화/작은 영역 사용량
  • 벡터 데이터 필터링 및 데이터 간 조인

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

운영 우수성

Git을 원본 제어에 사용하여 협업하는 경우 Synapse Studio를 사용하여 작업 영역을 Git 리포지토리, Azure DevOps 또는 GitHub와 연결할 수 있습니다. 자세한 내용은 Synapse Studio의 소스 제어를 참조하세요.

  • Azure Synapse 작업 영역에서 CI/CD는 모든 엔터티를 한 환경(개발, 테스트, 프로덕션)에서 다른 환경으로 이동합니다.
  • Azure DevOps 릴리스 파이프라인 및 GitHub Actions를 사용하여 Azure Synapse 작업 영역을 여러 환경에 배포하는 작업을 자동화할 수 있습니다.

성능

  • Azure Synapse는 이전 버전보다 성능이 더 좋은 Apache Spark 3.1.2를 지원합니다.
  • Spark 풀 크기 조정 및 노드 크기에 대한 자세한 내용은 Azure Synapse Analytics의 Spark 풀을 참조하세요.
  • Azure Batch를 사용하면 Azure Synapse 사용자 지정 작업에 제출된 변환에 대해 본질적으로 병렬로 확장할 수 있습니다. Azure Batch는 AI 모델을 실행하는 데 사용할 수 있는 특수 GPU 최적화 VM 크기를 지원합니다.

안정성

안정성은 애플리케이션이 고객에 대한 약속을 충족할 수 있도록 합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.

SLA 정보는 Azure Synapse SLA를 참조하세요.

보안

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

보안 모범 사례는 다음 문서를 참조하세요.

비용 최적화

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

가격 책정 및 비용 최적화에 대한 정보를 제공하는 리소스는 다음과 같습니다.

참고

파트너 AI 모델에 대한 가격 책정 및 사용 조건은 파트너의 설명서를 참조하세요.

시나리오 배포

샘플 솔루션의 Bicep 배포를 사용할 수 있습니다. 이 배포를 시작하려면 이러한 지침을 참조하세요.

배포된 샘플 솔루션의 아키텍처를 보여 주는 다이어그램

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

제한 사항

이 아키텍처에서는 Azure Synapse를 사용하는 엔드투엔드 지오프로세싱 및 분석 솔루션을 보여 줍니다. 이 샘플 구현은 소규모에서 중간 규모까지의 관심 영역과 래스터 데이터의 제한된 동시 지오프로세싱을 대상으로 합니다.

예제 코드

다음 지침에서는 Synapse Notebook을 사용하여 Azure Data Lake Storage에 저장된 래스터 데이터를 읽고, 쓰고, 변환을 적용하는 방법을 설명합니다. 변환을 보여 주는 것보다 Synapse Notebook에서 라이브러리를 사용하는 방법을 보여 주기 위한 것입니다.

사전 요구 사항

지침

  • 래스터 데이터에서 정보를 출력합니다.

    from osgeo import gdal
    gdal.UseExceptions()
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    dataset_info = gdal.Info('/vsiadls/aoa/input/sample_image.tiff')  #/vsiadls/<container_name>/path/to/image
    print(dataset_info)
    

    참고

    /vsiadls/는 Azure Data Lake Storage 파일 시스템에서 사용할 수 있는 주로 비공개 파일을 즉석에서 임의로 읽을 수 있도록 하는 파일 시스템 처리기입니다. 전체 파일을 미리 다운로드할 필요가 없습니다. /vsiadls//vsiaz/와 유사합니다. 동일한 구성 옵션을 인증에 사용합니다. /vsiaz/와 달리 /vsiadls/는 실제 디렉터리 관리 및 Unix 스타일 ACL 지원을 제공합니다. 일부 기능의 경우 Azure 스토리지에서 계층 구조 지원을 설정해야 합니다. 자세한 내용은 /vsiadls/ 설명서를 참조하세요.

    Driver: GTiff/GeoTIFF
    Files: /vsiadls/naip/input/sample_image.tiff
    Size is 6634, 7565
    Coordinate System is:
    PROJCRS["NAD83 / UTM zone 16N",
        BASEGEOGCRS["NAD83",
            DATUM["North American Datum 1983",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4269]],
        CONVERSION["UTM zone 16N",
            METHOD["Transverse Mercator",
                ID["EPSG",9807]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",-87,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["Scale factor at natural origin",0.9996,
                SCALEUNIT["unity",1],
                ID["EPSG",8805]],
            PARAMETER["False easting",500000,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]]],
        CS[Cartesian,2],
            AXIS["(E)",east,
                ORDER[1],
                LENGTHUNIT["metre",1]],
            AXIS["(N)",north,
                ORDER[2],
                LENGTHUNIT["metre",1]],
        USAGE[
            SCOPE["Engineering survey, topographic mapping."],
            AREA["North America - between 90°W and 84°W - onshore and offshore. Canada - Manitoba; Nunavut; Ontario. United States (USA) - Alabama; Arkansas; Florida; Georgia; Indiana; Illinois; Kentucky; Louisiana; Michigan; Minnesota; Mississippi; Missouri; North Carolina; Ohio; Tennessee; Wisconsin."],
            BBOX[23.97,-90,84,-84]],
        ID["EPSG",26916]]
    Data axis to CRS axis mapping: 1,2
    Origin = (427820.000000000000000,3395510.000000000000000)
    Pixel Size = (1.000000000000000,-1.000000000000000)
    Metadata:
      AREA_OR_POINT=Area
    Image Structure Metadata:
      COMPRESSION=DEFLATE
      INTERLEAVE=PIXEL
      LAYOUT=COG
      PREDICTOR=2
    Corner Coordinates:
    Upper Left  (  427820.000, 3395510.000) ( 87d45'13.12"W, 30d41'24.67"N)
    Lower Left  (  427820.000, 3387945.000) ( 87d45'11.21"W, 30d37'18.94"N)
    Upper Right (  434454.000, 3395510.000) ( 87d41' 3.77"W, 30d41'26.05"N)
    Lower Right (  434454.000, 3387945.000) ( 87d41' 2.04"W, 30d37'20.32"N)
    Center      (  431137.000, 3391727.500) ( 87d43' 7.54"W, 30d39'22.51"N)
    Band 1 Block=512x512 Type=Byte, ColorInterp=Red
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 2 Block=512x512 Type=Byte, ColorInterp=Green
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 3 Block=512x512 Type=Byte, ColorInterp=Blue
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 4 Block=512x512 Type=Byte, ColorInterp=Undefined
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    
  • GDAL을 사용하여 GeoTiff를 PNG로 변환합니다.

    from osgeo import gdal
    gdal.UseExceptions()
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    tiff_in = "/vsiadls/aoa/input/sample_image.tiff" #/vsiadls/<container_name>/path/to/image
    png_out = "/vsiadls/aoa/input/sample_image.png" #/vsiadls/<container_name>/path/to/image
    options = gdal.TranslateOptions(format='PNG')
    gdal.Translate(png_out, tiff_in, options=options)
    
  • GeoTiff 이미지를 Azure Data Lake Storage에 저장합니다.

    데이터가 클라우드에 저장되는 방법 및 파일 처리기(/vsiaz//vsiadls/)에서 순차 쓰기만 지원한다는 사실로 인해 mssparkutils 패키지에서 제공되는 파일 탑재 기능을 사용합니다. 출력이 탑재 위치에 기록되면 이 샘플 변환에서와 같이 Azure Data Lake Storage에 복사합니다.

    import shutil
    import sys
    from osgeo import gdal
    from notebookutils import mssparkutils
    
    mssparkutils.fs.mount(
        "abfss://<container_name>@<storage_account_name>.dfs.core.windows.net",
        "/<mount_path>",
        {"linkedService":"<linked_service_name>"}
    )
    
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    
    options = gdal.WarpOptions(options=['tr'], xRes=1000, yRes=1000)
    gdal.Warp('dst_img.tiff', '/vsiadls/<container_name>/path/to/src_img.tiff', options=options)
    
    jobId = mssparkutils.env.getJobId()
    
    shutil.copy("dst_img.tiff", f"/synfs/{jobId}/<mount_path>/path/to/dst_img.tiff")
    

    Azure Synapse에서 Azure Data Lake Storage를 연결된 서비스 중 하나로 추가할 수 있습니다. 지침은 연결된 서비스를 참조하세요.

샘플 솔루션

이 아키텍처의 구현은 GitHub에 있습니다.

다음 다이어그램에서는 샘플 솔루션의 단계를 보여 줍니다.

샘플 솔루션의 단계를 보여 주는 다이어그램

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

참고

데이터는 우주 데이터 원본에서 가져와서 Azure Data Lake Storage에 복사됩니다. 데이터 수집은 참조 구현의 일부가 아닙니다.

  1. Azure Synapse 파이프라인에서 Azure Data Lake Storage로부터 우주 데이터를 읽습니다.
  2. Azure Synapse Notebook에서 GDAL 라이브러리를 사용하여 데이터를 처리합니다.
  3. 처리된 데이터를 Azure Data Lake Storage에 저장합니다.
  4. Azure Data Lake Storage에서 처리된 데이터를 읽고 Azure Synapse 사용자 지정 작업을 통해 개체 감지 Custom Vision AI 모델에 전달합니다. 사용자 지정 작업에서 Azure Batch 풀을 사용하여 개체 감지 모델을 실행합니다.
  5. 개체 감지 모델에서 감지된 개체 및 경계 상자의 목록을 출력합니다.
  6. 감지된 개체를 GeoJSON으로 변환하여 Azure Data Lake Storage에 저장합니다.
  7. Azure Data Lake Storage에서 GeoJSON 데이터를 읽고 PostgreSQL 데이터베이스에 저장합니다.
  8. PostgreSQL 데이터베이스에서 데이터를 읽습니다. 이러한 데이터는 ArcGIS Pro, QGIS 및 Power BI와 같은 도구에서 추가로 시각화할 수 있습니다.

Azure Synapse Spark 풀에 지리 공간적 패키지 설치

패키지 관리 기능을 사용하여 패키지를 Azure Synapse Spark 풀에 설치해야 합니다. 자세한 내용은 Azure Synapse 패키지 관리를 참조하세요.

Azure Synapse에서 우주 데이터 워크로드를 지원하려면 GDAL, RasterioGeoPandas와 같은 라이브러리가 필요합니다. 이러한 라이브러리는 YAML 파일을 사용하여 서버리스 Apache Spark 풀에 설치할 수 있습니다. Anaconda 라이브러리는 Spark 풀에 미리 설치되어 있습니다.

사전 요구 사항

지침

  1. 다음 라이브러리 및 패키지는 environment.yml 파일에서 사용할 수 있습니다. 이 파일을 사용하여 라이브러리를 Spark 풀에 설치하는 것이 좋습니다. 아래 콘텐츠를 복사하는 경우 YAML에서 공백만 들여쓰기로 허용하므로 탭이 없는지 확인하세요.

    name: aoi-env
    channels:
      - conda-forge
      - defaults
    dependencies:
      - azure-storage-file-datalake
      - gdal=3.3.0
      - libgdal
      - pip>=20.1.1
      - pyproj
      - shapely
      - pip:
        - rasterio
        - geopandas
    

    참고

    GDAL은 /vsiadls/ 가상 파일 시스템을 Azure Data Lake Storage에 사용합니다. 이 기능은 GDAL v3.3.0부터 사용할 수 있습니다. 3.3.0 버전 이상을 사용하세요.

  2. https://web.azuresynapse.net 으로 이동하여 작업 영역에 로그인합니다.

  3. 탐색 영역 창에서 관리를 선택한 다음, Apache Spark 풀을 선택합니다.

  4. Spark 풀에서 줄임표(...) 단추를 선택하여 패키지를 선택합니다. 로컬에서 environment.yml 파일을 업로드하고 패키지 설정을 적용합니다.

  5. 설치가 완료되면 포털의 알림 섹션에서 알려줍니다. 다음 단계를 수행하여 설치 진행률을 추적할 수도 있습니다.

    1. 모니터 탭에서 Spark 애플리케이션 목록으로 이동합니다.
    2. 풀 업데이트에 해당하는 SystemReservedJob-LibraryManagement 링크를 선택합니다.
    3. 드라이버 로그를 봅니다.
  6. 다음 코드를 실행하여 올바른 버전의 라이브러리가 설치되어 있는지 확인합니다. Conda에서 설치하는 미리 설치된 라이브러리도 나열됩니다.

    import pkg_resources
    for d in pkg_resources.working_set:
       print(d)
    

자세한 내용은 패키지 관리를 참조하세요.

참가자

이 문서는 Microsoft에서 업데이트 및 유지 관리 중입니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

추가 기여자:

다음 단계