이 참조 아키텍처는 Power Platform에서 Power Automate 및 데이터 흐름을 사용하여 두 Dataverse 환경 간에 마스터 데이터를 동기화하는 방법을 보여 줍니다. 한 환경이 신뢰할 수 있는 원본 역할을 하고 다른 환경이 데이터를 수신하는 일대일 동기화 패턴을 보여 줍니다.
Tip
이 문서에서는 한 Dataverse 환경에서 마스터 데이터를 유지하고 다른 데이터와 동기화하는 방법을 보여 주는 예제 시나리오 및 일반화된 예제 아키텍처를 제공합니다. 아키텍처 예제는 다양한 시나리오 및 산업에 맞게 수정할 수 있습니다.
아키텍처 다이어그램
워크플로
다음 단계에서는 예제 아키텍처 다이어그램에 표시된 워크플로를 설명합니다.
Power Automate을 통한 이벤트 기반 동기화
기본 Dataverse 환경에서 CRUD(만들기, 읽기, 업데이트, 삭제) 작업은 Power Automate 흐름을 트리거합니다.
이벤트 기반 동기화는 2단계 흐름 체인을 사용합니다.
- 클라우드 흐름은 HTTP POST를 게시된 엔드포인트로 보냅니다.
- 구독자 클라우드 흐름은 웹후크에 의해 트리거되고 페이로드를 처리하며 거의 실시간으로 보조 Dataverse 환경에서 업데이트를 적용합니다.
엔드포인트는 ALM(애플리케이션 수명 주기 관리)을 위해 매개 변수화되고 보안 그룹은 액세스를 관리합니다.
데이터 흐름을 통한 대량 동기화
보조 Dataverse 환경에는 데이터 흐름이 포함됩니다.
각 데이터 흐름은 기본 Dataverse 환경에 데이터 원본으로 연결됩니다.
데이터 흐름은 고정된 일정(예: 야간 또는 다른 데이터 흐름이 성공적으로 실행된 후) 또는 요청 시(예: 초기 설정의 경우) 실행됩니다.
중복을 방지하기 위해 대체 키를 사용하여 Upsert를 수행합니다. 이 메서드는 기존 데이터를 업데이트하고 일치하는 항목이 없으면 새 레코드를 삽입합니다.
상태 필드는 전용 "동기화 상태" 열을 통해 관리됩니다. Power Automate 흐름은 그에 따라 실제 상태 필드를 업데이트합니다. 이 흐름은 데이터 흐름 이후에 실행되며 데이터 흐름이 기본 Dataverse 환경에서 제거(없는) 행 상태를 변경하거나 레코드를 삭제할 수 없기 때문에 필요합니다.
오류 처리 및 조정
보조 환경의 야간 데이터 흐름은 누락되거나 실패한 이벤트 기반 업데이트를 수정합니다.
데이터 품질 문제(예: 누락된 키)에 수동 개입이 필요할 수 있습니다.
Components
Microsoft Dataverse: 두 환경 요구 사항을 지원합니다.
Power Platform의 데이터 흐름: 초기 데이터 채우기 및 동기화와 같은 대량 작업에 적합합니다. 보조 환경에서 구성된 예약된 동기화에 ETL(대량 추출, 변환 및 로드)을 사용합니다.
Power Automate 클라우드 흐름: 빠른 레코드별 업데이트를 제공하고 데이터 흐름의 제한 사항을 보정합니다. 클라우드 흐름은 다른 데이터 흐름이 성공적으로 완료되면(예: 한 테이블에 다른 테이블에 대한 조회 필드가 포함되어 있고 참조된 레코드가 보조 Dataverse 환경에 이미 있어야 하는 경우), 데이터 흐름이 실패할 때 오류 메시지를 보내고, 레코드 상태를 업데이트하고, 레코드를 삭제할 때 데이터 흐름을 트리거할 수 있습니다.
보안 그룹 및 서비스 계정: 액세스 관리 및 소유권을 제공합니다.
시나리오 세부 정보
이 아키텍처는 일대일 관계, 즉 다른 단일 환경에 연결된 단일 MDM(마스터 데이터 관리) 환경을 위해 설계되었습니다. 하나의 마스터 환경이 다른 여러 환경과 동기화되어야 하는 시나리오에는 보다 확장 가능하거나 분산된 솔루션이 필요합니다.
비즈니스 문제
이 솔루션은 두 개의 고유한 Dataverse 환경 간에 여러 테이블을 동기화하는 문제를 해결합니다. 기본 환경은 신뢰할 수 있는 원본 역할을 하는 반면 보조 환경에는 마스터 데이터로 채우고 업데이트해야 하는 기존 테이블이 포함됩니다.
보조 시스템의 테이블이 이미 있고 행 수준 보안이 필요한 경우 가상 테이블을 사용할 수 없습니다.
예제 사용 사례
레저 및 호스피탈리티 조직은 전용 Dataverse 환경에서 호텔 및 객실 재고와 같은 핵심 마스터 데이터를 관리합니다. 기본 환경에는 마스터 데이터 관리 팀이 정확하고 최신의 운영 정보를 유지하기 위해 단독으로 사용하는 모델 주도 앱이 포함되어 있습니다.
동일한 조직 내의 별도 부서는 여러 재무 및 조정 프로세스를 담당합니다. 이러한 프로세스를 간소화하기 위해 부서는 격리된 Dataverse 환경에서 자체 모델 기반 앱을 빌드하려고 합니다. 그러나 해당 애플리케이션은 여전히 호텔 및 객실 세부 정보와 같은 기본 마스터 데이터에 액세스해야 합니다.
재무 팀이 엄격한 행 수준 보안이 적용되는 부서별 특성을 사용하여 레코드를 보강해야 했기 때문에 팀은 가상 테이블을 거부했습니다.
기본 MDM 환경 내에 금융 앱을 포함하는 것도 옵션이 아닙니다. 재무 작성자 또는 관리자를 MDM 환경에 허용하면 MDM 개발 팀에 제한되어야 하는 커넥터, 솔루션, API 권한 및 중요한 데이터가 노출됩니다.
이러한 요구 사항으로 인해 조직은 이 문서에 설명된 동기화 아키텍처를 채택했습니다.
창출된 가치
이 아키텍처는 가상 테이블이 옵션이 아닌 경우 두 Dataverse 환경 간에 마스터 데이터를 동기화하기 위한 강력하고 유지 관리 가능한 솔루션을 제공합니다. 보조 환경에서 기존 테이블을 직접 채우고 업데이트하면 데이터 일관성과 운영 안정성이 보장됩니다.
이 방법은 데이터 흐름 및 Power Automate 같은 Power Platform 구성 요소만 사용하므로 배포가 간단하고 관리하기 쉽고 불필요한 복잡성을 방지하는 솔루션이 생성됩니다.
아키텍처는 일대일 환경 관계에 맞게 조정되므로 오버헤드를 최소화하고 투명도를 최대화합니다. 대규모 다중 환경 관리 없이 간단하고 신뢰할 수 있는 마스터 데이터 동기화가 필요한 조직에 이상적입니다.
Considerations
이러한 고려 사항은 워크로드의 품질을 개선하는 일련의 기본 원칙인 Power Platform Well-Architected의 핵심 요소를 구현합니다. Microsoft Power Platform Well-Architected에 대해 더 알아보세요.
Reliability
야간 데이터 흐름은 일관성을 보장합니다.
이벤트 기반 흐름은 빠른 업데이트를 제공합니다.
수동 모니터링은 데이터 품질 문제를 감지합니다.
보안
액세스 제어를 위한 서비스 계정 및 보안 그룹입니다. 데이터 흐름을 사용하는 경우 서비스 주체를 소유자로 할당할 수 없습니다.
ALM 호환성을 위해 매개 변수가 있는 HTTP 엔드포인트입니다.
불필요한 수동 작업을 방지하기 위해 격리된 솔루션의 데이터 흐름입니다. 전용 솔루션에서 데이터 흐름을 격리하는 특정 이유가 있습니다. 각 배포 후에는 데이터 흐름 연결을 수동으로 다시 설정해야 합니다. 데이터 흐름을 변경할 때만 배포하는 별도의 솔루션에 데이터 흐름을 배치하면 주 솔루션의 다른 구성 요소를 배포할 때 불필요한 수동 작업을 방지할 수 있습니다.
운영 효율성
데이터 흐름의 자동화된 예약 및 오케스트레이션
실패한 동기화에 대한 모니터링 및 경고
성능 효율성
대량 작업에 최적화된 데이터 흐름입니다.
이벤트 기반 Power Automate 흐름은 중요한 레코드 수준 업데이트에 대한 대기 시간을 최소화합니다. 이벤트 기반 흐름을 디자인할 때 작업 볼륨 및 동시성이 Power Automate 서비스 제한 내에서 유지되는지 확인합니다. 고주파 CRUD 활동은 특히 흐름이 하루에 수만 개의 작업을 실행하는 시나리오에서 제한을 트리거할 수 있습니다. 비즈니스에 중요한 통합 또는 높은 처리량의 통합에 대해서는 적절한 Power Automate 라이선스를 적용하여 처리량 제한을 증가시키고 예기치 않은 제한을 피하십시오. 이 방법은 에스컬레이션 위험을 줄이고 예측 가능한 성능을 보장합니다.
경험 최적화
최소한의 수동 개입이 필요합니다.
대량 동기화와 이벤트 기반 동기화를 명확하게 구분합니다.
기여자
Microsoft는 이 문서를 유지 관리합니다. 이 문서를 작성한 기여자는 다음과 같습니다.
주요 작성자:
- 로타르 반 다이센, 솔루션 설계자