Direct Lake 의미 체계 모델 개발
이 문서에서는 Direct Lake 의미 체계 모델 개발과 관련된 디자인 항목에 대해 설명합니다.
모델 만들기
패브릭 포털을 사용하여 작업 영역에서 Direct Lake 의미 체계 모델을 만듭니다. 의미 체계 모델에 추가할 단일 레이크하우스 또는 웨어하우스에서 테이블을 선택하는 간단한 프로세스입니다.
그런 다음 웹 모델링 환경을 사용하여 의미 체계 모델을 추가로 개발할 수 있습니다. 이 환경을 사용하면 테이블 간의 관계를 만들고, 측정값 및 계산 그룹을 만들고, 날짜 테이블을 표시하고, 모델 및 해당 개체의 속성(예: 열 형식)을 설정할 수 있습니다. 역할 및 규칙을 정의하고 멤버(Microsoft Entra 사용자 계정 또는 보안 그룹)를 해당 역할에 추가하여 RLS(모델 행 수준 보안)를 설정할 수도 있습니다.
또는 SSMS(SQL Server Management Studio)(버전 19.1 이상) 또는 오픈 소스 커뮤니티 도구와 같은 XMLA 규격 도구를 사용하여 모델 개발을 계속할 수 있습니다. 자세한 내용은 이 문서의 뒷부분에 있는 XMLA 엔드포인트를 사용하여 모델 쓰기 지원을 참조하세요.
모델 테이블
모델 테이블은 SQL 분석 엔드포인트의 테이블 또는 뷰를 기반으로 합니다. 그러나 가능하면 뷰를 사용하지 마세요. 뷰를 기반으로 하는 모델 테이블에 대한 쿼리는 항상 DirectQuery 모드로 대체되므로 쿼리 성능이 저하될 수 있습니다.
테이블에는 모델 관계를 지원하는 열 외에도 필터링, 그룹화, 정렬 및 요약을 위한 열이 포함되어야 합니다. 불필요한 열은 의미 체계 모델 쿼리 성능에 영향을 주지 않지만(메모리에 로드되지 않으므로) OneLake의 스토리지 크기가 커지고 로드 및 유지 관리하기 위해 더 많은 컴퓨팅 리소스가 필요합니다.
Warning
Direct Lake 의미 체계 모델에서 DDM(동적 데이터 마스킹)을 적용하는 열 사용은 지원되지 않습니다.
Direct Lake 의미 체계 모델에 포함할 테이블을 선택하는 방법을 알아보려면 Direct Lake 의미 체계 모델에 대한 테이블 편집을 참조하세요.
의미 체계 모델 테이블에 포함할 열에 대한 자세한 내용은 Direct Lake 의미 체계 모델에 대한 스토리지 이해(Understand Storage)를 참조하세요.
데이터 액세스 규칙 적용
모델 데이터의 하위 집합을 다른 사용자에게 전달해야 하는 요구 사항이 있는 경우 데이터 액세스 규칙을 적용할 수 있습니다. SQL 분석 엔드포인트 또는 의미 체계 모델에서 OLS(개체 수준 보안) 및/또는 RLS(행 수준 보안)를 설정하여 규칙을 적용합니다.
참고 항목
데이터 액세스 규칙을 적용하는 항목은 의미 체계 모델(및 관련 패브릭 항목)을 관리할 콘텐츠 소비자, 작성자 및 사용자에 대한 사용 권한 설정과 관련이 있습니다. 사용 권한 설정에 대한 자세한 내용은 Direct Lake 의미 체계 모델 관리를 참조 하세요.
OLS(개체 수준 보안)
OLS에는 개체 또는 열을 검색하고 쿼리하는 액세스를 제한하는 작업이 포함됩니다. 예를 들어 OLS를 사용하여 테이블에서 열 Employee
에 액세스할 수 있는 사용자를 제한할 Salary
수 있습니다.
SQL 분석 엔드포인트의 경우 테이블 또는 뷰와 같은 엔드포인트 개체에 대한 액세스를 제어하고 CLS(열 수준 보안)에 대한 액세스를 제어하도록 OLS를 설정하여 엔드포인트 테이블 열에 대한 액세스를 제어할 수 있습니다.
의미 체계 모델의 경우 모델 테이블 또는 열에 대한 액세스를 제어하도록 OLS를 설정할 수 있습니다. OLS를 설정하려면 테이블 형식 편집기 같은 오픈 소스 커뮤니티 도구를 사용해야 합니다.
행 수준 보안(RLS)
RLS에는 테이블의 데이터 하위 집합에 대한 액세스를 제한하는 작업이 포함됩니다. 예를 들어 RLS를 사용하여 영업 사원이 해당 판매 지역의 고객에 대한 판매 데이터에만 액세스할 수 있도록 할 수 있습니다.
SQL 분석 엔드포인트의 경우 엔드포인트 테이블의 행에 대한 액세스를 제어하도록 RLS를 설정할 수 있습니다.
Important
쿼리가 SQL 분석 엔드포인트에 RLS가 있는 테이블을 사용하는 경우 DirectQuery 모드로 대체됩니다. 쿼리 성능이 느려질 수 있습니다.
의미 체계 모델의 경우 모델 테이블의 행에 대한 액세스를 제어하도록 RLS를 설정할 수 있습니다. 웹 모델링 환경에서 또는 타사 도구를 사용하여 RLS를 설정할 수 있습니다.
쿼리 평가 방법
Direct Lake 의미 체계 모델을 개발하는 이유는 OneLake에서 대량의 데이터에 대한 고성능 쿼리를 달성하기 위해서입니다. 따라서 메모리 내 쿼리 가능성을 최대화하는 솔루션을 설계해야 합니다.
다음 단계에서는 쿼리 평가 방법(및 실패 여부)에 대해 대략적인 설명입니다. Direct Lake 스토리지 모드의 이점은 다섯 번째 단계가 달성될 때만 가능합니다.
- 쿼리에 의미 체계 모델 OLS로 제한되는 테이블 또는 열이 포함되어 있으면 오류 결과가 반환됩니다(보고서 시각적 개체가 렌더링되지 않음).
- 쿼리에 SQL 분석 엔드포인트 CLS에서 제한되는 열이 포함되어 있거나 테이블이 거부된 경우 오류 결과가 반환됩니다(보고서 시각적 개체가 렌더링되지 않음).
- 클라우드 연결에서 SSO(기본값)를 사용하는 경우 CLS는 보고서 소비자의 액세스 수준에 따라 결정됩니다.
- 클라우드 연결에서 고정 ID를 사용하는 경우 CLS는 고정 ID의 액세스 수준에 따라 결정됩니다.
- 쿼리에 RLS를 적용하는 SQL 분석 엔드포인트에 테이블이 있거나 뷰가 사용되는 경우 쿼리는 DirectQuery 모드로 돌아갑니다.
- 클라우드 연결에서 SSO(기본값)를 사용하는 경우 RLS는 보고서 소비자의 액세스 수준에 따라 결정됩니다.
- 클라우드 연결에서 고정 ID를 사용하는 경우 RLS는 고정 ID의 액세스 수준에 따라 결정됩니다.
- 쿼리 가 용량의 가드레일을 초과하면 DirectQuery 모드로 돌아갑니다.
- 그렇지 않으면 메모리 내 캐시에서 쿼리가 충족됩니다. 열 데이터는 필요할 때 메모리 에 로드됩니다.
원본 항목 권한
데이터에 액세스하는 데 사용되는 계정은 다음 중 하나입니다.
- 클라우드 연결에서 SSO(기본값)를 사용하는 경우 보고서 소비자입니다.
- 클라우드 연결에서 고정 ID를 사용하는 경우 고정 ID입니다.
계정에 원본 항목(lakehouse 또는 warehouse)에 대한 읽기 및 읽기 데이터 권한이 있어야 합니다. 항목 권한은 작업 영역 역할에서 상속되거나 이 문서에 설명된 대로 항목에 대해 명시적으로 할당될 수 있습니다.
이 요구 사항을 충족하는 경우 Fabric은 델타 테이블 및 관련 Parquet 파일(열 데이터를 메모리에 로드하기 위해)을 읽는 데 필요한 의미 체계 모델에 대한 액세스 권한을 부여하고 데이터 액세스 규칙을 적용할 수 있습니다.
데이터 액세스 규칙 옵션
다음에서 데이터 액세스 규칙을 설정할 수 있습니다.
- 의미 체계 모델만 해당합니다.
- SQL 분석 엔드포인트만 해당합니다.
- 의미 체계 모델과 SQL 분석 엔드포인트 모두에서.
의미 체계 모델의 규칙
데이터 액세스 규칙을 적용해야 하는 경우 실행 가능한 경우 시맨틱 모델에서 적용해야 합니다. 의미 체계 모델에 의해 적용되는 RLS는 고성능 쿼리를 달성하기 위해 데이터의 메모리 내 캐시를 필터링하여 수행되기 때문입니다.
또한 보고서 소비자에게 레이크하우스 또는 창고를 쿼리할 수 있는 권한이 부여되지 않은 경우 적절한 접근 방식입니다.
두 경우 모두 클라우드 연결에서 SSO 대신 고정 ID를 사용하는 것이 좋습니다. SSO는 최종 사용자가 SQL 분석 엔드포인트에 직접 액세스할 수 있음을 의미하므로 의미 체계 모델의 보안 규칙을 무시할 수 있습니다.
Important
의미 체계 모델 항목 권한은 Power BI 앱을 통해 명시적으로 설정하거나 작업 영역 역할을 통해 암시적으로 획득할 수 있습니다.
특히 의미 체계 모델에 대한 쓰기 권한이 있는 사용자에게는 의미 체계 모델 데이터 액세스 규칙이 적용되지 않습니다. 반대로 데이터 액세스 규칙은 뷰어 작업 영역 역할에 할당된 사용자에게 적용됩니다. 그러나 관리자, 멤버 또는 기여자 작업 영역 역할에 할당된 사용자는 의미 체계 모델에 대한 쓰기 권한을 암시적으로 가지므로 데이터 액세스 규칙이 적용되지 않습니다. 자세한 내용은 작업 영역의 역할을 참조 하세요.
SQL 분석 엔드포인트의 규칙
의미 체계 모델 클라우드 연결에서 SSO(Single Sign-On)를 사용하는 경우 SQL 분석 엔드포인트에서 데이터 액세스 규칙을 적용하는 것이 적절합니다. 이는 사용자의 ID가 SQL 분석 엔드포인트를 쿼리하도록 위임되어 쿼리가 사용자가 액세스할 수 있는 데이터만 반환하도록 하기 때문입니다. 사용자가 다른 워크로드에 대해 SQL 분석 엔드포인트를 직접 쿼리할 때(예: Power BI 페이지를 매긴 보고서를 만들거나 데이터를 내보내는 경우) 이 수준에서 데이터 액세스 규칙을 적용하는 것도 적절합니다.
그러나 의미 체계 모델 쿼리는 SQL 분석 엔드포인트에서 RLS를 적용하는 테이블을 포함하는 경우 DirectQuery 모드로 대체됩니다. 따라서 의미 체계 모델은 고성능 쿼리를 달성하기 위해 데이터를 메모리에 캐시하지 않을 수 있습니다.
두 계층의 규칙
데이터 액세스 규칙은 두 계층 모두에서 적용할 수 있습니다. 그러나 이 접근 방식에는 복잡성과 관리 오버헤드가 추가로 포함됩니다. 이 경우 클라우드 연결에서 SSO 대신 고정 ID를 사용하는 것이 좋습니다.
데이터 액세스 규칙 옵션 비교
다음 표에서는 데이터 데이터 액세스 설정 옵션을 비교합니다.
에 데이터 액세스 규칙 적용 | Comment(설명) |
---|---|
의미 체계 모델만 | 레이크하우스 또는 웨어하우스를 쿼리할 수 있는 항목 권한이 사용자에게 부여되지 않은 경우 이 옵션을 사용합니다. 고정 ID를 사용하도록 클라우드 연결을 설정합니다. 메모리 내 캐시에서 높은 쿼리 성능을 달성할 수 있습니다. |
SQL 분석 엔드포인트만 | 사용자가 웨어하우스 또는 의미 체계 모델에서 일관된 데이터 액세스 규칙을 사용하여 데이터에 액세스해야 하는 경우 이 옵션을 사용합니다. 클라우드 연결에 대해 SSO가 사용하도록 설정되어 있는지 확인합니다. 쿼리 성능이 느려질 수 있습니다. |
레이크하우스 또는 창고 및 의미 체계 모델 | 이 옵션에는 추가 관리 오버헤드가 포함됩니다. 고정 ID를 사용하도록 클라우드 연결을 설정합니다. |
데이터 액세스 규칙을 적용하기 위한 권장 사례
다음은 데이터 액세스 규칙 적용과 관련된 권장 사례입니다.
- 다른 사용자가 데이터의 하위 집합으로 제한되어야 하는 경우 실행 가능할 때마다 의미 체계 모델 계층에서만 RLS를 적용합니다. 이렇게 하면 사용자는 고성능 메모리 내 쿼리를 활용할 수 있습니다. 이 경우 클라우드 연결에서 SSO 대신 고정 ID를 사용하는 것이 좋습니다.
- 가능하면 보고서 시각적 개체에서 오류가 발생하므로 OLS 및 CLS를 두 계층에 적용하지 마세요. 오류가 발생하면 사용자가 혼동하거나 우려할 수 있습니다. 요약 가능한 열의 경우 CLS 대신 특정 조건에서 BLANK를 반환하는 측정값을 만드는 것이 좋습니다(가능한 경우).
XMLA 엔드포인트를 사용하여 모델 쓰기 지원
Direct Lake 의미 체계 모델은 SSMS(19.1 이상) 및 오픈 소스 커뮤니티 도구와 같은 도구를 사용하여 XMLA 엔드포인트에서 쓰기 작업을 지원합니다.
팁
타사 도구를 사용하여 의미 체계 모델을 개발, 관리 또는 최적화하는 방법에 대한 자세한 내용은 고급 데이터 모델 관리 사용 시나리오를 참조하세요.
쓰기 작업을 수행하려면 먼저 용량에 대해 XMLA 읽기/쓰기 옵션을 사용하도록 설정해야 합니다. 자세한 내용은 XMLA 읽기/쓰기 사용을 참조 하세요.
XMLA 엔드포인트 지원을 사용하여 쓰기 작업을 모델링합니다.
- Direct Lake 모델 메타데이터를 사용자 정의, 병합, 스크립팅, 디버깅 및 테스트합니다.
- Azure DevOps 및 GitHub를 사용한 소스 및 버전 제어, CI/CD(지속적인 통합 및 지속적인 배포). 자세한 내용은 콘텐츠 수명 주기 관리를 참조하세요.
- 의미 체계 모델 새로 고침 및 PowerShell 및 REST API를 사용하여 Direct Lake 의미 체계 모델에 변경 내용 적용과 같은 자동화 작업
XMLA를 사용하여 의미 체계 모델을 변경하는 경우 수정되거나 제거된 속성을 포함하도록 변경된 개체에 대한 ChangedProperties 및 PBI_RemovedChildren 컬렉션을 업데이트해야 합니다. 해당 업데이트를 수행하지 않으면 다음에 스키마가 동기화될 때 Power BI 모델링 도구가 변경 내용을 덮어쓸 수 있습니다.
XMLA를 사용하여 의미 체계 모델을 변경하는 데 지원되는 모델은 다음과 같습니다.
- 테이블/열 이름 바꾸기(ChangeProperty = name)
- 테이블 제거(쿼리 식에서 PBI_RemovedChildren 주석에 테이블 추가)
Important
XMLA 애플리케이션을 사용하여 만든 Direct Lake 테이블은 애플리케이션이 새로 고침 명령을 보낼 때까지 처음에는 처리되지 않은 상태가 됩니다. 처리되지 않은 테이블이 포함된 쿼리는 항상 DirectQuery 모드로 대체됩니다. 따라서 새 의미 체계 모델을 만들 때는 해당 테이블을 처리하도록 모델을 새로 고쳐야 합니다.
자세한 내용은 XMLA 엔드포인트와의 의미 체계 모델 연결을 참조하세요.
Direct Lake 모델 메타데이터
XMLA 엔드포인트를 사용하여 Direct Lake 의미 체계 모델에 연결하는 경우 메타데이터는 다른 모델의 메타데이터와 같습니다. 그러나 Direct Lake 모델은 다음과 같은 차이점을 보여 줍니다.
compatibilityLevel
데이터베이스 개체의 속성은 1604 이상입니다.- Direct Lake 파티션의 모드 속성은 .로
directLake
설정됩니다. - Direct Lake 파티션은 공유 식을 사용하여 데이터 원본을 정의합니다. 식은 레이크하우스 또는 웨어하우스의 SQL 분석 엔드포인트를 가리킵니다. Direct Lake는 SQL 분석 엔드포인트를 사용하여 스키마 및 보안 정보를 검색하지만, 어떤 이유로든 DirectQuery 모드로 대체되지 않는 한 OneLake에서 직접 데이터를 로드합니다.
게시 후 작업
Direct Lake 의미 체계 모델을 게시한 후에는 일부 설정 작업을 완료해야 합니다. 자세한 내용은 Direct Lake 의미 체계 모델 관리를 참조 하세요.
지원되지 않는 기능
다음 모델 기능은 Direct Lake 의미 체계 모델에서 지원되지 않습니다.
- Direct Lake 스토리지 모드에서 테이블 또는 열을 참조하는 계산 테이블
- Direct Lake 스토리지 모드에서 테이블 또는 열을 참조하는 계산 열
- 하이브리드 테이블
- 사용자 정의 집계
- 복합 모델은 Direct Lake 스토리지 모드 테이블을 동일한 모델의 DirectQuery 또는 이중 스토리지 모드 테이블과 결합할 수 없다는 것입니다. 그러나 Power BI Desktop을 사용하여 Direct Lake 의미 체계 모델에 대한 라이브 연결을 만든 다음 새 측정값으로 확장할 수 있으며, 여기에서 이 모델을 변경하는 옵션을 클릭하여 새 테이블을 추가할 수 있습니다(가져오기, DirectQuery 또는 이중 스토리지 모드 사용). 이 작업은 Direct Lake 모드에서 의미 체계 모델에 대한 DirectQuery 연결을 만들므로 테이블은 DirectQuery 스토리지 모드로 표시되지만 이 스토리지 모드는 DirectQuery로의 대체를 나타내지 않습니다. 이 새 모델과 Direct Lake 모델 간의 연결만 DirectQuery이며 쿼리는 여전히 Direct Lake를 활용하여 OneLake에서 데이터를 가져옵니다. 자세한 내용은 의미 체계 모델에서 복합 모델 빌드를 참조하세요.
- 동적 데이터 마스킹을 적용하는 SQL 분석 엔드포인트 열을 기반으로 하는 열입니다.