데이터 계약
책임은 페더레이션 아키텍처의 도메인 간에 분산되므로 종속성을 감독하고 데이터 사용 인사이트를 얻기가 어려울 수 있습니다. 데이터 계약은 각 데이터 제품을 소유한 사용자에 대한 정보를 제공하기 때문에 데이터 사용 인사이트를 얻는 데 도움이 될 수 있습니다. 데이터 계약을 통해 표준을 설정하고 데이터 파이프라인을 자신 있게 관리할 수 있습니다. 데이터 계약은 강력한 데이터 관리에 필수적이며 다음에 대한 정보를 제공합니다.
사용 중인 데이터 제품
어떤 사용자가 어떤 데이터 제품을 사용하고 있는지 여부
사용자가 특정 데이터 제품을 사용하도록 유도하는 목적
데이터 제품 배포 및 사용량에는 기술과 비즈니스 문제라는 두 가지 차원이 있습니다. 기술 문제에는 데이터 파이프라인 처리 및 상호 데이터 안정성 기대치가 포함됩니다. 비즈니스 문제에는 제한 사항을 포함하여 사용량, 개인 정보, 목적 목표를 정의하는 데이터 공유 목적 계약이 포함됩니다.
두 차원에는 서로 다른 역할이 포함됩니다. 일반적으로 애플리케이션 소유자 또는 데이터 엔지니어는 기술적 문제를 사용해야 하며, 비즈니스 문제의 경우 제품 소유자 또는 비즈니스 담당자를 사용해야 합니다.
데이터 계약
데이터 계약은 서비스 계약 또는 데이터 배달 계약과 유사합니다.
더 크거나 분산된 아키텍처에서는 변경 내용을 감독하기가 어려울 수 있습니다. 인기 있고 널리 사용되는 데이터 제품이 있을 때마다 버전 관리를 구현하고 호환성을 관리하여 감독을 간소화할 수 있습니다.
애플리케이션이 결합된 경우 이는 결합된 애플리케이션 간에 높은 수준의 상호 의존성이 있음을 나타냅니다. 다른 애플리케이션의 데이터에 액세스하거나 이를 사용하는 애플리케이션은 결합 시 항상 어려움을 겪습니다. 예를 들어 데이터 구조를 변경하면 해당 데이터에 액세스하거나 데이터를 사용하는 다른 애플리케이션에 직접적인 영향을 줄 수 있습니다. 여러 애플리케이션이 함께 결합된 상황에서는 단일 애플리케이션에 대한 작은 변경이 다른 많은 애플리케이션에 영향을 미치는 연속적인 효과가 발생하는 것이 일반적입니다. 사소한 변경 후에도 의도하지 않은 효과가 발생할 가능성이 높기 때문에 많은 설계자와 소프트웨어 엔지니어는 결합된 아키텍처를 빌드하지 않습니다.
데이터 계약은 인터페이스 호환성을 보장하고 서비스 약관 및 SLA(서비스 수준 계약)를 포함합니다. 서비스 약관에는 개발, 테스트 또는 프로덕션으로만 사용을 제한하는 등 데이터를 사용할 수 있는 방법이 간략하게 설명되어 있습니다. SLA는 필요한 데이터 배달 및 인터페이스 품질에 대해 설명합니다. SLA에서 지정할 수 있는 품질 세부 정보는 다음과 같습니다.
- 작동 시간
- 오류율
- 가용성
- 사용 중단
- 로드맵
- 버전 번호
이러한 세부 정보를 캡처하는 메타데이터를 원본 제어 아래에 배치하여 유효성 검사 및 배포를 자동으로 트리거할 수 있습니다. 원본 제어에 대한 자세한 내용은 Azure Data Factory의 원본 제어를 참조하세요.
데이터 계약은 도메인과 애플리케이션 간의 결합 및 종속성에 대한 인사이트를 제공합니다. 또한 계약을 통해 소비자의 데이터 요구 사항에 따라 모든 애플리케이션 및 인터페이스 변경 내용의 유효성을 검사할 수 있는 계약 테스트가 가능합니다. 스키마 드리프트를 검색하여 데이터 흐름이 업스트림 데이터 원본 변경에 취약해지는 시기를 알 수 있습니다. 자세한 내용은 매핑 데이터 흐름의 스키마 드리프트를 참조하세요.
데이터 계약은 메타데이터 기반 수집 프레임워크의 일부인 경우가 많습니다. 중앙에서 관리되는 메타스토어 내의 메타데이터 레코드에 데이터 계약을 저장할 수 있습니다. 해당 중앙 위치에서 데이터 계약은 다음을 포함하여 데이터 수집의 여러 영역에서 중요한 역할을 합니다.
파이프라인 실행
데이터 제품 만들기
데이터 유형 유효성 검사
스키마
상호 운용성 표준
프로토콜 버전
누락된 데이터에 대한 기본 규칙 설정
데이터 계약에는 많은 양의 기술 메타데이터가 포함됩니다. 데이터 파이프라인 및 데이터 제품을 문서화하려면 데이터 원본, 데이터가 겪은 모든 변환 그리고 궁극적으로 데이터를 제공하는 방법에 대한 명확한 설명이 있어야 합니다.
분산 아키텍처에서는 여러 도메인에 데이터 파이프라인 프레임워크를 배포하고 도메인은 일반적인 작업 방식을 준수합니다. 도메인은 데이터 자체를 처리하므로 제어와 책임은 유지되고 프레임워크와 메타데이터는 중앙 거버넌스에 유지됩니다.
페더레이션된 메서드를 구현하는 경우 작게 시작합니다. 스키마 유효성 검사를 위한 메타데이터 스토리지, 엔터프라이즈 식별자, 공유 메타데이터 리포지토리의 다른 데이터 세트에 대한 참조와 같은 기본 사항부터 시작합니다. 데이터 계보 지원을 추가하여 데이터 이동을 시각화할 수 있습니다. 프로세스를 부트스트랩하고 Great Expectations와 같은 라이브러리를 사용하여 기술 데이터 품질 유효성 검사를 위한 컨트롤을 구현합니다.
모든 컨트롤은 연속 통합 절차의 일부여야 합니다. 메트릭 및 로깅을 포함한 모든 런타임 정보를 캡처하고 해당 정보를 데이터 파이프라인 안정성 인사이트를 얻기 위한 메타데이터 기반의 일부로 만듭니다. 이 설정을 사용하면 도메인과 중앙 관리 조종석 간에 피드백 루프가 보장됩니다.
모든 데이터 이동을 안정화할 때는 데이터 소비자가 사용하는 데이터 특성(예: 테이블 및 열)을 캡처하고 이 정보를 사용하여 크기 조정을 계속합니다. 중앙에서 관리되는 메타스토어에 이 정보를 포함할 수 있습니다. 데이터 사용량 정보를 사용하면 호환성이 손상되는 변경 내용을 감지하고 데이터 생산자 및 소비자에게 미치는 영향을 식별할 수 있습니다. 데이터 제품 데이터 세트에 소비자가 없는 경우 큰 영향을 미치는 변경이 발생할 수 있습니다. 원본 제어(예: Git)를 사용하여 데이터 공급자와 소비자 간의 핸드셰이크 프로세스를 허용합니다.
데이터 공유 계약
데이터 공유 계약은 데이터 계약의 확장입니다. 이 계약에는 제한 사항을 포함하여 데이터 사용량, 개인 정보, 목적이 간략하게 설명되어 있습니다. 데이터 공유 계약은 독립적인 인터페이스이며 특정 용도로 사용되는 데이터에 대한 인사이트를 제공합니다. 또한 데이터 보안 컨트롤의 입력으로 작동합니다. 데이터 공유 계약을 사용하여 데이터에 적용해야 하는 필터 또는 보안 보호를 간략하게 설명할 수 있습니다.
데이터 공유 계약은 데이터 사용에 대한 잘못된 통신을 방지하는 데도 도움이 됩니다. 도메인 소유자는 데이터를 공유하기 전에 데이터 공유 및 데이터 사용 문제를 논의해야 합니다. 공통적으로 이해하는 것은 데이터 및 데이터 사용량을 규제하고 조직에 가치를 제공할 수 있도록 하는 능력에 매우 중요합니다. 모든 도메인 소유자가 협업에 대해 이해하면 데이터 공유 계약에 문서화해야 합니다. 이 계약에서 다음과 같은 영역을 해결할 수도 있습니다.
기능 데이터 품질
히스토화
데이터 수명 주기 관리
데이터 추가 배포
민감도 레이블 또는 필터링 조건과 같은 분류 및 조건을 적용하여 데이터를 보호합니다.
이전 섹션의 다이어그램은 데이터 제품 사이드카로 레이블이 지정된 특정 요소를 보여줍니다. 데이터 제품 사이드카는 데이터 액세스 제어 또는 데이터 사용 출력 방법과 같은 정책 실행을 삽입하기 위한 구성 요소 또는 계층입니다. 데이터 계약을 사용하여 도메인 데이터에 대한 보안 적용을 처리하는 보안 추상화입니다. 데이터 계약 리포지토리에서 ACL(액세스 제어 목록) 또는 서버리스 보기로 데이터 제품 사이드카를 만들거나 특정 소비자에 대해 선택하고 필터링하는 중복된 데이터 세트를 사용하여 만들 수 있습니다. 어느 쪽이든 목표는 완전히 자동화된 방식으로 데이터 계약에서 보안 보기를 파생하는 것입니다.
데이터 계약 특성 및 설명서를 연결합니다. 소비자가 비즈니스 요구 사항이 실제 구현으로 변환되는 방식을 이해할 수 있도록 의미 체계 컨텍스트와 관계를 용어집에 제공해야 합니다. 비즈니스 용어와의 관계가 조직에 중요한 경우 모든 데이터 제품 특성이 비즈니스 용어 엔터티에 연결된 후에만 데이터 계약을 설정할 수 있도록 허용하는 등의 정책을 구현하는 것이 좋습니다. 관계 또는 정의 조정과 같은 상황별 변경에 이 유형의 정책을 적용할 수도 있습니다.
데이터 계약 사용
데이터 계약을 사용하기 시작할 때 느리게 시작합니다. 한 번에 너무 많은 변경 내용을 도입하지 마세요. 데이터 계약에는 문화적 변화가 필요하며 사용자가 익숙해지고 데이터 소유권의 중요성을 이해하는 데 시간이 필요합니다. 또한 데이터 계약에서 너무 적은 메타데이터 특성과 너무 많은 메타데이터 특성 사이의 절충점을 찾아야 합니다.
다음 단계에서는 조직에 대한 데이터 계약을 구현하는 프로세스를 간략하게 설명합니다.
기술 데이터 파이프라인이 안정적인지 확인합니다. 사용하는 파이프라인이 예기치 않게 중단되는 경우 사용 사례는 프로덕션에 도달할 수 없습니다.
공유 계약을 사용하기 시작할 때 간단하고 실용적인 프로세스를 적용합니다. Microsoft Forms에서 간단한 양식 또는 템플릿을 디자인하여 시작할 수 있습니다. 독자가 쉽게 이해할 수 있는 명확하고 간결한 언어로 작성합니다. 이 첫 번째 단계의 초점은 문화적 변화와 요구 사항 수집입니다. 항목을 과도하게 컴파일하지 않는지 확인합니다. 수동 프로세스를 수락하고, 초기 메타데이터 요구 사항을 제한하고, 이러한 요구 사항이 안정될 때까지 반복합니다.
첫 번째 프로세스가 제대로 준비되면 수동 양식을 웹 기반 애플리케이션, 데이터베이스 및/또는 메시지 큐로 바꾸기 시작합니다. 중앙 데이터 거버넌스 팀은 이 단계에서 감독을 담당해야 합니다. 이 시점에서 데이터 액세스 세분성은 일반적으로 폴더 또는 파일에 중점을 두고 과정으로 세분화됩니다. 가능하면 REST API를 사용하여 데이터 액세스 정책 또는 ACL을 자동으로 프로비전합니다.
승인 관리를 위한 강력한 워크플로를 담당하는 데이터 소유자 또는 데이터 관리자를 배치합니다. 이제 중앙 데이터 거버넌스 역할은 뒷좌석 역할을 통해 승인만 감독하고 모든 데이터 계약을 정기적으로 검토해야 합니다. 이 시점에서 Azure Purview와 같은 데이터 카탈로그를 실행하여 사용 준비가 완료된 모든 데이터 제품을 보여 줍니다. 세분화된 선택과 필터링을 허용하여 데이터 및 보안 적용 기능을 개선하고 동적 데이터 마스킹과 같은 기술을 사용하여 데이터가 중복되지 않도록 하는 것이 좋습니다.
데이터 계약 구현 과정의 마지막 단계에서는 모든 것이 셀프 서비스이고 완전히 자동화되어야 합니다. 자동화된 기계 학습은 데이터 승인을 예측해야 합니다. 보안
과정이 끝나면 모든 것이 셀프 서비스가 되고 완전 자동화됩니다. 여기에는 데이터 승인을 예측하기 위한 자동화된 보안 적용 및 기계 학습이 포함됩니다. 예를 들어 보안 보기는 승인 후 자동으로 배포됩니다.
데이터 계약은 데이터 메시 아키텍처의 비교적 새로운 기능으로, 데이터 사용량 및 종속성에 대한 투명성을 제공합니다. 먼저 데이터 계약을 사용하기 시작할 때 기술 안정성 및 표준화에 집중한 다음, 반복할 때는 학습된 단원 프로세스를 사용합니다. 조직의 오버헤드가 증가하지 않도록 데이터 거버넌스를 천천히 빌드하고 자동화합니다.
가시성에 대한 자세한 내용은 클라우드 모니터링 가이드: 가시성을 참조하세요.
데이터 계약 설명서의 일부로 서비스 약관 및 SLA(서비스 수준 계약)도 필요합니다. SLA를 사용하여 작동 시간, 오류율, 가용성을 포함한 데이터 배달 및 인터페이스에 대한 품질 요구 사항을 간략하게 설명합니다. SLA에는 정의해야 하는 사용 중단, 로드맵, 버전 번호 요구 사항이 포함될 수도 있습니다.