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

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

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

Architecture

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

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

이 아키텍처의 Visio 파일을 다운로드하십시오

데이터 흐름

Azure Data Factory 데이터를 오케스트레이션하고 Azure Data Lake Storage Gen2 저장합니다.

다음 데이터 흐름은 이전 다이어그램에 해당합니다.

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

  2. 랜딩 스키마로 데이터를 전송하는 데이터 팩터리 복사 작업이 있습니다.

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

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

    Important

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

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

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

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

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

Components

  • Azure Data Factory 데이터 이동 및 오케스트레이션을 가능하게 하는 클라우드 기반 데이터 통합 서비스입니다. 이 아키텍처에서는 Contoso 도시 주차 웹 서비스 API의 데이터를 데이터 레이크의 랜딩 존으로 복사하여 파이프라인을 시작합니다.

  • Azure Data Lake Storage Gen2 계층화된 스토리지 및 재생 가능한 파이프라인을 지원하는 Azure Blob Storage 빌드된 확장 가능하고 안전한 데이터 레이크입니다. 이 아키텍처에서는 랜딩 데이터 영역, 잘못된 형식 데이터 영역, 유효성이 검증된 데이터 영역에서 원시 데이터와 처리된 데이터를 위한 중앙 리포지토리 역할을 합니다.

  • Azure Databricks 빅 데이터 및 기계 학습을 위해 설계된 Apache Spark 기반 분석 플랫폼입니다. 이 아키텍처에서는 두 가지 중요한 변환 단계를 수행합니다. 먼저 잘못된 형식의 레코드를 별도의 스키마로 필터링하는 동안 원시 데이터를 정리하고 표준화합니다. 그런 다음, 유효성이 검사된 데이터를 데이터 웨어하우스 스토리지에 적합한 형식으로 변환하고 데이터 과학자가 모델 학습을 위해 처리된 데이터를 사용할 수 있도록 합니다.

  • Azure Key Vault 비밀, 키 및 인증서를 관리하기 위한 보안 클라우드 서비스입니다. 이 아키텍처에서는 파이프라인 전체에서 사용되는 중요한 구성 설정 및 자격 증명을 저장하여 중앙 집중식 및 보안 구성 관리를 제공합니다.

  • Azure Synapse Analytics 빅 데이터와 데이터 웨어하우징 기능을 결합한 통합 분석 서비스입니다. 이 아키텍처에서는 쿼리 및 보고를 위해 PolyBase를 통해 Data Lake Storage 변환된 데이터를 수집하는 데이터 웨어하우스 역할을 합니다.

  • Power BI 대화형 시각화 및 대시보드를 제공하는 비즈니스 분석 도구입니다. 이 아키텍처에서는 Azure Synapse Analytics 연결하여 도시 계획자에게 정보에 입각한 의사 결정을 위한 주차 사용량 현황 데이터 인사이트를 제공합니다.

시나리오 세부 정보

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

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

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

솔루션 요구 사항

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

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

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

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

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

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

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

  • 예약된 일정에 따라 파이프라인을 실행합니다.

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

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

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

    • Azure Synapse Analytics, Azure Analysis Services 및 Power BI 찾을 수도 있습니다.

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

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

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

잠재적인 사용 사례

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

노상 주차 가능 여부

Considerations

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

이 섹션의 고려 사항은 이 솔루션에서 보여 주는 주요 학습 및 모범 사례를 요약합니다.

  • 데이터 레이크에서 데이터 계층화를 사용하세요. 랜딩 존에 수정되지 않은 원본 데이터를 유지하고, 유효성 검사에 실패한 레코드를 잘못된 영역으로 라우팅하고, 유효성이 검사된 데이터를 웨어하우스 준비 형식으로 변환합니다. 원본 데이터를 보존하면 원본 시스템으로 돌아가지 않고 다시 처리할 수 있습니다. 유사한 청동, 실버 및 골드 레이크 하우스 패턴은 메달 아키텍처를 참조하세요.

  • 데이터 파이프라인을 재실행 가능하고 멱등하게 만드세요. 동일한 입력을 통해 다시 실행하면 동일한 결과가 생성되도록 변환 단계를 디자인합니다. 파이프라인을 재생하면 변환 논리의 결함을 수정하고 삭제하는 대신 기록 데이터를 다시 처리할 수 있습니다.

Security

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

  • 구성을 보호하고 중앙 집중화합니다. 연결 문자열, 키 및 기타 비밀은 Notebook, 파이프라인 정의 또는 소스 제어가 아니라 Key Vault에 저장합니다. 각 환경이 자체 값을 확인할 수 있도록 Data Factory 연결 서비스Azure Databricks 비밀 범위에서 참조합니다.

운영 효율성

운영 우수성은 애플리케이션을 배포하고 프로덕션에서 계속 실행하는 운영 프로세스를 다룹니다. 자세한 내용은 운영 우수성 설계 검토 체크리스트를 참조하세요.

  • 파이프라인 초기에 데이터의 유효성을 검사합니다. 첫 번째 변환 단계에서 스키마 및 품질 검사를 적용하고 잘못된 형식의 스키마에 실패한 레코드를 라우팅합니다. 조기 유효성 검사는 결함이 있는 레코드를 다운스트림 계층에서 유지하고 거부된 내용과 그 이유에 대한 레코드를 제공합니다.

  • 데이터 변환 코드를 테스트할 수 있는지 확인합니다. 변환 로직을 노트북 외부에서 실행되는 함수와 모듈로 분리하여 pull request 유효성 검사 파이프라인에서 단위 테스트로 검증할 수 있도록 합니다.

  • CI/CD 파이프라인을 구축하세요. 수동이 아닌 소스 제어에서 모든 환경을 빌드하고 해제합니다. 기술 관련 메커니즘은 Azure Data Factory CI/CD 및 Azure DatabricksCI/CD를 참조하세요.

  • 인프라, 파이프라인 및 데이터를 모니터링합니다. 실패가 부실 보고서 대신 경고로 표시되도록 각 계층에서 메트릭 및 로그를 수집합니다. 자세한 내용은 Monitor Data Factory을(를) 참조하세요.

시나리오 배포

다음 목록에는 해당 빌드 및 릴리스 파이프라인을 사용하여 이 솔루션을 설정하는 데 필요한 개략적인 단계가 포함되어 있습니다.

설치 및 배포

  1. 초기 설정: 필수 구성 요소를 설치하고, 인프라, Notebook 및 파이프라인 코드를 보유하는 Git 리포지토리를 만들고, 필요한 환경 변수를 설정합니다.

  2. Azure 리소스 배포: Bicep 또는 Terraform과 같은 코드 배포로 인프라를 사용하여 각 환경에 대한 Azure 리소스 및 Microsoft Entra 서비스 주체를 배포합니다. 인프라 배포를 호출하는 Azure Pipelines 정의, 변수 그룹 및 서비스 연결을 별도로 구성합니다.

  3. Dev Data Factory에서 Git 통합 설정: 개발 데이터 팩터리에서 리포지토리에 커밋되도록 Git 통합을 구성 합니다.

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

연속 통합 및 지속적인 업데이트(CI/CD)

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

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

이 아키텍처의 Visio 파일을 다운로드하십시오

  1. 개발자는 개발 리소스 그룹 내의 자체 샌드박스 환경에서 개발하고 변경 내용을 수명이 짧은 Git 분기로 커밋합니다. 예: <developer_name>/<branch_name>.

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

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

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

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

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

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

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

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

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

이러한 단계를 구현하는 방법에 대한 자세한 내용은 Azure Data Factory CI/CD를 참조하세요.

Testing

솔루션에는 단위 테스트 및 통합 테스트 모두에 대한 지원이 포함됩니다. 단위 테스트는 Python 변환 모듈을 다루며 통합 테스트는 Data Factory 파이프라인을 트리거하고 스테이징 환경에 대한 릴리스의 일부로 출력을 확인합니다. 자세한 내용은 Notebook에 대한 단위 테스트를 참조하세요.

관찰 가능성 및 모니터링

이 솔루션은 Databricks 및 Data Factory에 대한 관찰 가능성 및 모니터링을 지원합니다. Databricks의 경우 기본적으로 모든 진단을 내보내는 대신 플랫폼의 기본 제공 감사 로깅( system.access.audit 테이블) 및 작업 실행 모니터링을 사용합니다. 중앙 집중식 경고를 위해 Log Analytics 작업 영역에 Databricks 진단 로그를 제공해야 하는 경우 해당 기능에는 프리미엄 계획이 필요하고, 메트릭이 아닌 로그에 적용되며, 감사 로그에 배포에 대한 중요한 세부 정보가 포함될 수 있으므로 신중한 액세스 제어가 필요합니다. Data Factory의 경우 진단 로그 및 메트릭을 Log Analytics 작업 영역으로 라우팅하고 파이프라인 오류 및 작업 대기 시간에 대한 경고를 설정합니다. 자세한 내용은 Monitor Data Factory을 참조하세요.

다음 단계

다음 리소스는 이 문서에서 설명하는 DataOps 사례를 구현하는 데 도움이 됩니다.

지속적인 통합 및 업데이트

Observability/monitoring

Azure Databricks

Data Factory

Azure Synapse Analytics

Azure Storage

복원력 및 재해 복구

Azure Databricks

Data Factory

Azure Synapse Analytics

Azure Storage

자세한 개요

솔루션 및 주요 개념에 대한 자세한 개요는 다음 비디오 녹화를 시청하세요: DataDevOps for the Modern Data Warehouse on Microsoft Azure