Power BI 의미 체계 모델에 대한 계보 태그
의미 체계 모델 개체에
계보 태그는 범위 내에서 고유해야 합니다. 예를 들어 동일한 의미 체계 모델의 두 테이블에는 동일한 계보 태그가 있을 수 없습니다. Power BI Desktop은 일반적으로 계보가 필요한 각 의미 체계 모델 개체에 GUID를 할당하지만 이러한 할당은 필수가 아니며 계보 태그를 다른 문자열 형식으로 변경할 수 있습니다.
의미 체계 모델에 대한 사용자 사용자 지정 추적
의미 체계 모델에는 다른 모델 또는 데이터 원본에서 파생된 개체 및 속성이 포함될 수 있습니다. 예를 들어Power BI 의미 체계 모델에서
데이터 원본에서 동기화된 모델에서 속성을 사용자 지정하거나 개체를 제거할 때 Power BI는 changedProperties 속성 및 PBI_RemovedChildren 주석을 설정하여 사용자 지정을 나타내기 때문에 데이터 원본과의 다음 스키마 동기화 중에 사용자 지정이 유지되도록 해야 합니다.
다음 개체/속성은 데이터 원본과 동기화되며 수정된 속성과 개체 제거를 모두 선언해야 합니다.
시나리오 | 개체 | 속성 사용자 지정 | 제거 사용자 지정 |
---|---|---|---|
Import /DirectQuery | 테이블, 열, 관계 | Name, DataType | 관계 1 |
합성물 | 테이블, 열, 관계, 측정값, 계층 구조, 수준 | Name, DataType, IsHidden, FormatString, Description, SummarizeBy, DataCategory, SortByColumn, GroupByColumns, DisplayFolder, IsNullable | 로컬 모델에 포함되지 않은 원격 모델의 모든 테이블 |
DirectLake | 테이블, 열 | Name, DataType | 레이크하우스의 모든 테이블이 모델에 포함되지 않음 |
[1] Power BI는 데이터 원본의 기본 키 및 외래 키 정보를 기반으로 관계를 자동으로 만듭니다. 사용자가 이러한 관계를 제거하는 경우 Power BI는 변경 내용을 추적하여 향후 스키마 동기화 중에 다시 추가하지 않도록 합니다.
ChangedProperties 컬렉션
ChangedProperties 컬렉션을 사용하면 수정된 개체 속성 값을 지정하여 해당 값이 더 이상 원본과 동기화되지 않을 수 있음을 나타냅니다.
예를 들어 Power BI 의미 체계 모델에서 복합 모델을 만들 때 열 이름은 원본 모델에서 시작됩니다. 로컬 모델의 열 이름을 바꾸는 경우 Name 속성을 변경된 속성으로 지정해야 합니다.
다음 예제에서는 원본 모델의 ProductID 열이 ProductKey이름이 바뀌었습니다.
table Products
column ProductKey
dataType: int64
lineageTag: 9636345e-0328-43fb-acd3-e7894734d08a
sourceLineageTag: 6890686b-4899-4916-9ec2-2e8ff5a05eb7
sourceColumn: ProductID
changedProperty = Name
PBI_RemovedChildren 주석
PBI_RemovedChildren 주석은 제거된 항목의 부모 개체에 선언된 모델 주석으로, 로컬 개체에서 개체를 제외하려는 사용자의 의도를 선언합니다. 예를 들어 복합 모델을 생성할 때 로드할 테이블을 선택할 수 있으며 선택되지 않은 모든 테이블은 데이터 원본의 NamedExpression 저장된 PBI_RemovedChildren 주석에 포함됩니다. Import 및 DirectQuery 모델에서는 관계 제거를 추적하기 위해 주석이 모델 내에 저장됩니다.
이 주석을 선언하지 않으면 원본과 스키마를 동기화하는 동안 의미 체계 모델 개체가 검색됩니다.
다음 예제에서는 복합 모델에서 테이블이 제거됩니다. 원본 모델 테이블의 계보 태그는 안정적인 ID를 보장하기 위해 이름 대신 사용됩니다.
expression 'DirectQuery to AS - AdventureWorks' =
let
Source = AnalysisServices.Database("[XMLA Endpoint]"),
Cubes = Table.Combine(Source[Data]),
Cube = Cubes{[Id="Model", Kind="Cube"]}[Data]
in
Cube
annotation PBI_RemovedChildren = [{"remoteItemId":{"analysisServicesObject":{"sourceName":null,"sourceLineageTag":"8e47b52e-1c1a-4029-b6cc-25200d213fcf"}},"objectType":"Table"}]
고려 사항 및 제한 사항
- Import/DirectQuery 모델의 경우 changedProperty 기본 쿼리를 사용하는 DirectQuery 테이블과 같이 테이블의 M 쿼리로 변경할 수 없는 경우에만 필요합니다.
- DirectLake 모델의 경우 sourceLineageTag Lakehouse/data warehouse의 테이블/열 이름이어야 합니다.
다음 단계
다음 문서에는 유용한 추가 정보가 포함되어 있습니다.
- 모델에서 XMLA 엔드포인트 지원을 작성합니다.
- XMLA 수정 및 복합 모델