Datastream을 사용하면 분석 및 데이터 통합을 위해 Microsoft Dataverse 환경에서 이전 데이터와 증분 변경사항을 복제할 수 있습니다. Dataverse는 비즈니스 애플리케이션에서 사용하는 데이터를 저장하고 관리하기 위한 클라우드 기반 데이터 플랫폼입니다.
Dataverse 소스를 구성하기 전에 Datastream의 주요 용어, 복제 동작, 지원되는 버전, 알려진 제한사항을 검토하세요.
핵심 용어
Dataverse는 다음 개념을 사용하여 작동합니다.
- 테이블(이전의 항목)은 관계형 데이터베이스의 테이블과 유사합니다. Dataverse에는 기본적으로 표준 테이블이 포함되지만 커스텀 테이블을 만들 수도 있습니다.
- 열(이전의 필드)은 테이블의 속성이며 관계형 데이터베이스의 열과 유사합니다.
- 행은 테이블의 특정 레코드이며 관계형 데이터베이스의 행과 유사합니다.
동작
Datastream의 Dataverse 소스 지원은 Open Data Protocol (OData)을 사용하는 Dataverse Web API를 사용합니다. Datastream은 설정한 간격에 따라 소스 변경사항을 폴링합니다.
Dataverse 소스에서 데이터를 복제할 때 다음 동작이 관찰됩니다.
- API 상호작용: Datastream은 RESTful 요청을 사용하여 Dataverse Web API와 상호작용합니다. 기본 환경 URL은
https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/입니다. 표준 헤더 (Accept: application/json,OData-MaxVersion: 4.0,OData-Version: 4.0)가 사용됩니다. - 인증: Datastream은 클라이언트 사용자 인증 정보 부여 유형과 함께 OAuth 2.0을 사용하여 인증을 처리합니다. Datastream은 Microsoft Identity Platform에서 토큰을 가져옵니다.
스키마 검색: Dataverse 스키마는 동적입니다. Datastream은
/EntityDefinitions엔드포인트를 쿼리하여 객체 이름과 스키마를 검색합니다.- 객체 이름: Datastream은
$filter=TableType ne 'Virtual' and IsPrivate eq false필터와$select=EntitySetName매개변수를 사용하여/EntityDefinitions항목 집합 경로에GET요청을 전송하여 객체 이름을 가져옵니다. - 객체 스키마: Datastream은
$expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName)매개변수와$filter=EntitySetName eq '[objectName]'필터를 사용하여/EntityDefinitions항목 집합 경로에GET요청을 전송하여 항목별로 객체 스키마를 가져옵니다.
- 객체 이름: Datastream은
데이터 복제:
- Datastream은 표준 및 커스텀 Dataverse 테이블을 복제합니다. 가상 및 비공개 테이블은 제외됩니다.
- 이전 백필: 스트림에 구성된 경우 Datastream은 포함된 테이블의 모든 이전 데이터를 복제합니다. 이는 항목 집합에 초기
GET요청을 전송하고 API 응답에 제공된@odata.nextLink속성을 사용하여 모든 페이지를 반복함으로써 달성됩니다.Prefer: odata.maxpagesize=5000헤더가 사용됩니다. - 증분 동기화: Datastream은 삽입 및 업데이트 이벤트를 복제합니다. 이는 타임스탬프 기반 동기화를 사용하여
modifiedon필드가 마지막 동기화 시간 ($filter=modifiedon gt [last_sync_timestamp])보다 큰 레코드를 필터링하여 수행됩니다. Datastream은 삭제 이벤트를 캡처하지 않습니다.
폴링 간격: Datastream은 스트림을 만들 때 설정한 폴링 간격에 따라 변경사항을 폴링합니다. 이 간격은 스트림의 데이터 최신 상태 측정항목에 반영됩니다.
모든 복제된 객체는 modifiedon 필드를 사용하는 증분 동기화와 전체 백필을 모두 지원합니다.
버전
Datastream은 Dataverse Web API 버전 v9.1을 사용합니다.
알려진 제한사항
Dataverse를 소스로 사용할 경우의 알려진 제한사항은 다음과 같습니다.
modifiedon타임스탬프를 기반으로 하는 증분 동기화 방법은 삭제 이벤트를 캡처하지 않습니다.- Datastream은 델타 링크 (
@odata.deltaLink)를 사용하는 Dataverse 권장 변경 추적 기능을 지원하지 않습니다. 후속 증분 가져오기에 필요한 델타 링크 URL 저장이 지원되지 않기 때문입니다. - 복제는 표준 및 커스텀 테이블로 제한됩니다. 가상 및 비공개 테이블은 지원되지 않습니다.
- 증분 동기화가 예상대로 작동하려면 소스 테이블의
modifiedon필드를 정확하게 업데이트해야 합니다. Picklist필드의 라벨을 가져오려면 데이터 요청에 정수 값뿐만 아니라Prefer: data.include-annotations="*"헤더도 포함되어야 합니다.
다음 단계
- Datastream에 사용할 Dataverse 소스 구성 방법 알아보기