최신 데이터 웨어하우스를 위한 DataOps

Azure Data Factory
Azure Databricks
Azure DevOps
Azure Key Vault
Azure Synapse Analytics

이 문서에서는 가상의 도시 계획 사무소에서 이 솔루션을 사용하는 방법을 설명합니다. 이 솔루션은 MDW 아키텍처 패턴을 따르는 엔드 투 엔드 데이터 파이프라인과 해당 DevOps 및 DataOps 프로세스를 제공하여 주차 이용을 평가하고 보다 정보에 입각한 비즈니스 결정을 내릴 수 있습니다.

아키텍처

다음 다이어그램은 솔루션의 전체 아키텍처를 보여줍니다.

최신 데이터 웨어하우스에 대한 DataOps를 보여 주는 아키텍처 다이어그램

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

데이터 흐름

ADF(Azure Data Factory) 오케스트레이션 및 ADLS(Azure Data Lake Storage) Gen2는 데이터를 저장합니다.

  1. Contoso 도시 주차 웹 서비스 API를 사용하여 주차 장소에서 데이터를 전송할 수 있습니다.

  2. 방문 스키마로 데이터를 전송하는 ADF 복사 작업이 있습니다.

  3. 다음으로, Azure Databricks는 데이터를 정리하고 표준화합니다. 데이터 과학자가 사용할 수 있도록 원시 데이터와 조건이 사용됩니다.

  4. 유효성 검사에서 잘못된 데이터가 표시되면 잘못된 형식의 스키마에 덤프됩니다.

    중요

    데이터가 ADLS에 저장되기 전에 유효성이 검사되지 않는 이유에 대한 질문을 받았습니다. 그 이유는 유효성 검사에서 데이터 세트를 손상시킬 수 있는 버그가 발생할 수 있기 때문입니다. 이 단계에서 버그가 발생하는 경우 버그를 수정하고 파이프라인을 재생할 수 있습니다. 잘못된 데이터를 ADLS에 추가하기 전에 덤프한 경우 파이프라인을 재생할 수 없으므로 손상된 데이터는 쓸모가 없습니다.

  5. 데이터를 데이터 웨어하우스에 저장할 수 있는 형식으로 변환하는 두 번째 Azure Databricks 변환 단계가 있습니다.

  6. 마지막으로 파이프라인은 다음과 같은 두 가지 방법으로 데이터를 제공합니다.

    1. Databricks는 데이터 과학자가 모델을 학습시킬 수 있도록 데이터를 이용 가능하게 만듭니다.

    2. Polybase는 데이터 레이크에서 Azure Synapse Analytics로 데이터를 이동하고 Power BI 데이터에 액세스하여 비즈니스 사용자에게 제공합니다.

구성 요소

솔루션은 다음 구성 요소를 사용합니다.

시나리오 정보

MDW(최신 데이터 웨어하우스)를 사용하면 모든 데이터를 어떤 규모로든 쉽게 결합할 수 있습니다. 구조적, 비구조적 또는 반구조적 데이터인지 여부는 중요하지 않습니다. 모든 사용자에 대한 분석 대시보드, 운영 보고서 또는 고급 분석을 통해 MDW에 대한 인사이트를 얻을 수 있습니다.

개발(개발) 및 프로덕션(프로덕션) 환경 모두에 대한 MDW 환경 설정은 복잡합니다. 프로세스를 자동화하는 것이 중요합니다. 그렇게 하면 오류 위험을 최소화하면서 생산성을 높이는 데 도움이 됩니다.

이 문서에서는 가상의 도시 계획 사무소에서 이 솔루션을 사용하는 방법을 설명합니다. 이 솔루션은 MDW 아키텍처 패턴을 따르는 엔드 투 엔드 데이터 파이프라인과 해당 DevOps 및 DataOps 프로세스를 제공하여 주차 이용을 평가하고 보다 정보에 입각한 비즈니스 결정을 내릴 수 있습니다.

솔루션 요구 사항

  • 다른 원본 또는 시스템에서 데이터를 수집하는 기능.

  • 코드로서의 인프라: 자동화된 방식으로 새 개발 및 스테이징(stg) 환경을 배포합니다.

  • 자동화된 방식으로 다양한 환경에 애플리케이션 변경 내용을 배포합니다.

    • CI/CD(지속적인 통합/지속적인 업데이트) 파이프라인을 구현합니다.

    • 수동 승인을 위해 배포 게이트를 사용합니다.

  • 코드로서의 파이프라인: CI/CD 파이프라인 정의가 소스 제어에 있는지 확인합니다.

  • 샘플 데이터 집합을 사용하여 변경 내용에 대한 통합 테스트를 수행합니다.

  • 예약된 기준으로 파이프라인을 실행합니다.

  • 데이터 과학 워크로드 추가를 포함하여 향후 민첩한 개발을 지원합니다.

  • 행 수준 및 개체 수준 보안에 대한 지원:

    • 보안 기능은 SQL Database에서 사용할 수 있습니다.

    • Azure Synapse Analytics, AAS(Azure Analysis Services) 및 Power BI에서도 찾을 수 있습니다.

  • 10명의 동시 대시보드 사용자와 20명의 동시 고급 사용자를 지원합니다.

  • 데이터 파이프라인은 데이터 유효성 검사를 수행하고 잘못된 형식의 레코드를 지정된 저장소로 필터링해야 합니다.

  • 모니터링을 지원합니다.

  • Azure Key Vault와 같은 보안 스토리지에 중앙 집중식으로 구성되어 있습니다.

잠재적인 사용 사례

이 문서에서는 Contoso라는 가상의 도시를 통해 사용 사례 시나리오를 설명합니다. 이 예시에서 Contoso는 도시의 주차 센서를 소유하고 관리합니다. 또한 센서에 연결되고 데이터를 가져오는 API를 소유합니다. 다양한 소스에서 데이터를 수집하는 플랫폼이 필요합니다. 그런 다음 데이터의 유효성을 검사하고, 정리하고, 알려진 스키마로 변환해야 합니다. 그런 다음 Contoso 도시 계획자는 Power BI와 같은 데이터 시각화 도구를 사용하여 주차 사용에 대한 보고서 데이터를 탐색하고 평가하여 더 많은 주차 또는 관련 리소스가 필요한지 여부를 결정할 수 있습니다.

노상 주차 가능 여부

고려 사항

다음 목록에는 이 솔루션에서 보여 주는 주요 학습 및 모범 사례가 요약되어 있습니다.

참고

아래 목록의 각 항목은 GitHub 주차 센서 솔루션 예제에 대한 문서의 관련 Key Learnings 섹션에 연결됩니다.

시나리오 배포

다음 목록에는 해당 빌드 및 릴리스 파이프라인을 사용하여 주차 센서 솔루션을 설정하는 데 필요한 개략적인 단계가 포함되어 있습니다. 이 Azure 샘플 리포지토리에서 자세한 설정 단계 및 필수 구성 요소를 찾을 수 있습니다.

설치 및 배포

  1. 초기 설정: 필수 구성 요소를 설치하고, Azure 샘플 GitHub 리포지토리를 사용자 고유의 리포지토리로 가져오고, 필요한 환경 변수를 설정합니다.

  2. Azure 리소스 배포: 솔루션은 자동화된 배포 스크립트와 함께 제공됩니다. 환경당 필요한 모든 Azure 리소스 및 Microsoft Entra 서비스 주체를 배포합니다. 또한 스크립트는 Azure Pipelines, 변수 그룹 및 서비스 연결을 배포합니다.

  3. dev Data Factory에서 git 통합 설정: 가져온 GitHub 리포지토리와 함께 작동하도록 git 통합을 구성합니다.

  4. 초기 빌드 및 릴리스 수행: 일정 트리거를 사용하도록 설정하는 것과 같은 Data Factory의 샘플 변경 사항을 만든 다음, 환경 간에 변경 내용이 자동으로 배포되는 것을 지켜봅니다.

배포된 리소스

배포에 성공하면 Azure에 개발, stg 및 prod의 세 가지 환경을 나타내는 세 개의 리소스 그룹이 있어야 합니다. 또한 이러한 세 가지 환경에 변경 내용을 자동으로 배포할 수 있는 Azure DevOps 엔드 투 엔드 빌드 및 릴리스 파이프라인이 있어야 합니다.

모든 리소스의 자세한 목록은 DataOps - 주차 센서 데모 추가 정보에서 배포된 리소스 섹션을 참조하세요.

지속적인 통합 및 지속적인 업데이트

아래 다이어그램은 빌드 및 릴리스 파이프라인에 대한 CI/CD 프로세스 및 시퀀스를 보여 줍니다.

빌드 및 릴리스에 대한 프로세스 및 시퀀스를 보여 주는 다이어그램

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

  1. 개발자는 개발 리소스 그룹 내의 자체 샌드박스 환경에서 개발하고 변경 내용을 고유한 단기 Git 분기에 커밋합니다. <developer_name>/<branch_name>)을 입력합니다.

  2. 변경이 완료되면 개발자는 검토를 위해 기본 분기에 PR(끌어오기 요청)을 발생합니다. 이렇게 하면 단위 테스트, 린팅 및 DACPAC(데이터 계층 애플리케이션 패키지) 빌드를 실행하는 PR 유효성 검사 파이프라인이 자동으로 시작됩니다.

  3. PR 유효성 검사가 완료되면 기본 분기로의 커밋은 필요한 모든 빌드 아티팩트를 게시하는 빌드 파이프라인을 트리거합니다.

  4. 성공적인 빌드 파이프라인이 완료되면 릴리스 파이프라인의 첫 번째 단계가 트리거됩니다. 이렇게 하면 ADF를 제외하고 빌드 아티팩트 게시가 개발 환경에 배포됩니다.

    개발자는 공동 작업 분기(기본)에서 개발 ADF에 수동으로 게시합니다. 수동 게시는 adf_publish 분기의 ARM(Azure Resource Manager) 템플릿을 업데이트합니다.

  5. 첫 번째 단계가 성공적으로 완료되면 수동 승인 게이트가 트리거됩니다.

    승인하면 릴리스 파이프라인은 두 번째 단계로 진행되며 stg 환경에 변경 내용을 배포합니다.

  6. 통합 테스트를 실행하여 stg 환경의 변경 내용을 테스트합니다.

  7. 두 번째 단계가 성공적으로 완료되면 파이프라인은 두 번째 수동 승인 게이트를 트리거합니다.

    승인하면 릴리스 파이프라인은 세 번째 단계로 진행되며 prod 환경에 변경 내용을 배포합니다.

자세한 내용은 추가 정보의 빌드 및 릴리스 파이프라인 섹션을 참조하세요.

테스트

솔루션에는 단위 테스트 및 통합 테스트 모두에 대한 지원이 포함됩니다. pytest-adf 및 Nutter 테스트 프레임워크가 사용됩니다. 자세한 내용은 추가 정보의 테스트 섹션을 참조하세요.

관찰 가능성 및 모니터링

이 솔루션은 Databricks 및 Data Factory에 대한 관찰 가능성 및 모니터링을 지원합니다. 자세한 내용은 추가 정보의 관찰 가능성/모니터링 섹션을 참조하세요.

다음 단계

솔루션을 배포하려면 DataOps - 주차 센서 데모 추가 정보의 샘플 섹션을 사용하는 방법의 단계를 따릅니다.

GitHub 솔루션 코드 샘플

관찰성/모니터링

Azure Databricks

Data Factory

Synapse Analytics

Azure Storage

복원력 및 재해 복구

Azure Databricks

Data Factory

Synapse Analytics

Azure Storage

자세한 연습

솔루션 및 주요 개념에 대한 자세한 안내는 비디오 녹화 Microsoft Azure 최신 데이터 웨어하우스용 DataDevOps를 시청하세요.