다음을 통해 공유


가져오기 모델링을 위한 데이터 축소 방법

이 문서에서는 Power BI 의미 체계 모델을 개발하고 게시하는 Power BI Desktop 데이터 모델러를 대상으로 합니다. 특히 가져오기 모델에 로드되는 데이터를 줄이는 데 도움이 되는 다양한 기술을 설명합니다.

가져오기 모델은 압축 및 최적화된 데이터로 로드된 다음 VertiPaq 스토리지 엔진에 의해 디스크에 저장됩니다. 원본 데이터가 메모리에 로드되면 10배 압축을 달성할 수 있으므로 10GB의 원본 데이터가 약 1GB 크기로 압축될 수 있다고 예상하는 것이 합리적입니다. 또한 디스크에 저장하는 경우 추가로 20% 축소할 수 있습니다.

VertiPaq 스토리지 엔진의 효율성에도 불구하고 모델에 로드되는 데이터를 최소화하기 위해 노력해야 합니다. 특히 대형 모델 또는 시간이 지남에 따라 커질 것으로 예상되는 모델의 경우 더욱 그렇습니다. 네 가지 타당한 이유는 다음과 같습니다.

  • 더 큰 모델 크기는 용량에서 지원되지 않을 수 있습니다. 공유 용량은 최대 1GB 크기의 모델을 호스트할 수 있는 반면 프리미엄 용량은 SKU에 따라 이보다 더 큰 모델을 호스트할 수 있습니다. 자세한 내용은 Power BI Premium의 대규모 의미 체계 모델 을(를) 참조하세요.
  • 모델 크기가 작으면 특정 메모리에서 용량 리소스 경합이 감소합니다. 용량 내의 많은 작은 모델은 더 긴 시간 동안 동시에 로드할 수 있어 퇴출 속도가 낮아질 수 있습니다.
  • 모델 크기가 작을수록 데이터 새로 고침 속도가 빨라지고 대기 시간 보고가 짧아지고 의미 체계 모델 새로 고침 처리량이 높으며 원본 시스템 및 용량 리소스에 대한 부담이 줄어듭니다.
  • 테이블 행 수가 작을수록 계산 평가 속도가 빨라지고 전반적인 쿼리 성능이 향상될 수 있습니다.

Important

때때로 이 문서는 Power BI Premium 또는 P SKU(프리미엄 용량 구독)를 언급합니다. Microsoft는 현재 구매 옵션을 통합하고 용량당 Power BI Premium SKU를 사용 중지하고 있습니다. 신규 및 기존 고객은 대신 F SKU(Fabric 용량 구독)로 구매를 고려해야 합니다.

자세한 내용은 Power BI Premium 라이선스 관련 중요 업데이트Power BI Premium FAQ를 참조하세요.

불필요한 열 제거

모델 테이블 열은 다음 두 가지 주요 목적으로 사용됩니다.

  • 보고모델 데이터를 적절하게 필터링, 그룹화 및 요약하는 보고서 디자인을 구현합니다.
  • 모델 구조는 모델 관계, 모델 계산, 보안 역할 및 데이터 색 서식을 지원하며,과 같은 기능을 제공합니다.

아마도 이러한 목적 중 하나도 제공하지 않는 열을 제거할 수 있습니다. 테이블에서 열을 제거하는 것을 세로 필터링이라고도 합니다.

알려진 보고 요구 사항에 따라 정확히 올바른 수의 열로 모델을 디자인하는 것이 좋습니다. 요구 사항은 시간이 지남에 따라 변경될 수 있지만 나중에 열을 제거하는 것보다 나중에 열을 추가하는 것이 더 쉽습니다. 열을 제거하면 보고서 또는 모델 구조가 손상될 수 있습니다.

불필요한 행 제거

가능한 한 적은 행으로 모델 테이블을 로드해야 합니다. 시간 또는 엔터티별로 필터링하는 두 가지 이유로 필터링된 행 집합을 모델 테이블에 로드하여 이를 달성할 수 있습니다. 행 제거를 가로 필터링이라고도 합니다.

  • 시간 필터링에는 팩트 테이블 로드된 데이터 기록의 양을 제한하고 모델 날짜 테이블에 로드된 날짜 행을 제한하는 작업이 포함됩니다. 알려진 보고 요구 사항이 아니면 기본적으로 사용 가능한 모든 기록을 로드하지 않는 것이 좋습니다. 매개 변수를 사용하여 시간 기반 파워 쿼리 필터를 구현하고 상대 기간(예: 지난 5년)을 사용하도록 설정할 수도 있습니다. 또한, 시간 필터의 회고적 변경은 보고서에 지장을 주지 않으며, 보고서에서 사용할 수 있는 데이터 기록이 줄어들거나 늘어날 수 있습니다.
  • 엔터티별 필터링은 원본 데이터의 하위 집합을 모델에 로드합니다. 예를 들어 모든 판매 지역의 판매 팩트를 로드하는 대신 단일 지역의 팩트만 로드합니다. 이 디자인 접근 방식은 많은 작은 모델을 생성하며 RLS(행 수준 보안)정의할 필요가 없지만 Power BI 서비스에서 특정 의미 체계 모델 권한을 부여하고 각 의미 체계 모델에 연결하는 중복 보고서를 만들어야 합니다. 파워 쿼리 매개 변수 및 Power BI 템플릿 파일을 사용하여 관리 및 게시를 간소화할 수 있습니다. 자세한 내용은 Power BI Desktop보고서 템플릿 만들기 및 사용을 참조하세요.

그룹화 방법 및 요약

모델 크기를 줄이는 가장 효과적인 방법은 미리 요약된 데이터를 로드하는 것입니다. 이 기술을 사용하여 팩트 테이블의 세분성 값을 높일 수 있습니다. 개별 절충은 있지만 세부 정보가 손실됩니다.

원본 판매 팩트 테이블에 주문 줄당 한 행이 저장되는 예제를 생각해 보세요. 모든 판매 메트릭을 요약하고 날짜, 고객 및 제품을 기준으로 그룹화하여 상당한 데이터 감소를 달성할 수 있습니다. 월 수준날짜 그룹화하여 훨씬 더 중요한 데이터 감소를 달성할 수 있습니다. 모델 크기가 99% 감소할 수 있지만 일 수준 또는 개별 주문 라인 수준에서 보고하는 것은 더 이상 불가능합니다. 팩트 데이터를 요약하기로 결정하면 항상 절충이 수반됩니다. DirectQuery 스토리지 모드의 일부 테이블을 포함하는 모델 디자인으로 트레이드오프를 완화할 수 있으며, 이는 이 문서의 뒷부분에서 설명되어 있습니다 .

열 데이터 형식 최적화

VertiPaq 스토리지 엔진은 각 열에 대해 별도의 내부 데이터 구조를 사용합니다. 기본적으로 이러한 데이터 구조는 값 인코딩을(를) 사용하는 숫자 열 데이터를 가장 효과적으로 최적화합니다. 그러나 텍스트 및 기타 숫자가 아닌 데이터는 해시 인코딩사용합니다. 해시 인코딩을 사용하려면 스토리지 엔진이 열에 포함된 각 고유 값에 숫자 식별자를 할당해야 합니다. 그런 다음, 데이터 구조에 저장되는 숫자 식별자이며, 스토리지 및 쿼리 중에 해시 조회가 필요합니다.

원본 텍스트 데이터를 숫자 값으로 변환할 수 있는 경우도 있습니다. 예를 들어 판매 주문 번호는 텍스트 값(예: SO123456)으로 일관되게 접두사를 지정할 수 있습니다. 이 경우 접두사 SO 제거하고 주문 번호 값을 정수로 변환할 수 있습니다. 큰 테이블의 경우 이러한 수정으로 인해 특히 열에 고유 또는 높은 카디널리티 값이 포함된 경우 상당한 데이터 감소가 발생할 수 있습니다.

이 예제에서는 열 기본 요약 속성을 Do Not Summarize설정하는 것이 좋습니다. 주문 번호 값의 부적절한 요약을 방지하는 데 도움이 됩니다.

사용자 지정 열의 기본 설정

VertiPaq 스토리지 엔진은 모델 의 계산 열(DAX에서 정의된)을 일반 파워 쿼리 소스 열처럼 저장합니다. 그러나 내부 데이터 구조는 약간 다르게 저장되며 일반적으로 덜 효율적인 압축을 달성합니다. 또한 모든 파워 쿼리 테이블이 로드되면 데이터 구조가 빌드되어 데이터 새로 고침 시간이 연장될 수 있습니다. 따라서 테이블 열을 파워 쿼리 계산 열(M에서 정의됨)이 아닌 다른 계산 열로 추가하는 것은 비효율적입니다.

가능하면 사용자 지정 열을 파워 쿼리에서 만드는 것을 선호하세요. 원본이 데이터베이스인 경우 SQL 문에서 계산을 정의하거나(공급자의 네이티브 쿼리 언어 사용) 데이터 원본의 열로 구체화할 수 있는 두 가지 방법으로 부하 효율성을 높일 수 있습니다.

그러나 경우에 따라 모델 계산 열이 더 적합할 수 있습니다. 수식에 측정값 평가가 포함되거나 DAX 함수에서만 지원되는 특정 모델링 기능이 필요한 경우에 해당합니다. 이러한 예제 중 하나에 대한 자세한 내용은 DAX부모-자식 계층에 대한 이해 함수를 참조하세요.

파워 쿼리의 쿼리 로드 사용 안 함

다른 쿼리와의 데이터 통합을 지원하기 위한 파워 쿼리 쿼리는 모델에 로드하면 안 됩니다. 이러한 쿼리를 모델에 로드하지 않으려면 이러한 인스턴스에서 쿼리 로드를 사용하지 않도록 설정해야 합니다.

파워 쿼리에서 로드 활성화 옵션을 보여주는 스크린샷

자동 날짜/시간 사용 안 함

Power BI Desktop에는 자동 날짜/시간이라는 옵션이 있습니다. 사용하도록 설정하면 모델의 각 날짜 열에 대해 숨겨진 자동 날짜/시간 테이블이 만들어집니다. 이 옵션은 일정 기간 동안 필터, 그룹화 및 드릴다운 작업을 구성할 때 보고서 작성자를 지원합니다. 숨겨진 테이블은 실제로 모델 크기를 늘리는 계산 테이블입니다.

자세한 내용은 Power BI Desktop에서 자동 날짜/시간 지침을 참조하세요.

DirectQuery 스토리지 모드 사용

DirectQuery 스토리지 모드는 스토리지 가져오기 모드의 대안입니다. DirectQuery 모델 테이블은 데이터를 가져오지 않습니다. 대신 테이블 구조를 정의하는 메타데이터로만 구성됩니다. 테이블을 쿼리할 때 기본 쿼리는 기본 데이터 원본에서 데이터를 검색하는 데 사용됩니다. Import 및 DirectQuery 스토리지 모드 테이블을 단일 모델로 결합하면 복합 모델이라고 불립니다.

모델 크기를 줄이는 효과적인 방법은 더 큰 팩트 테이블의 스토리지 모드를 DirectQuery로 설정하는 것입니다. 이 디자인 방법은 Group by와 잘 작동하는 경우가 많으며 앞에서 도입된 기법을 요약합니다. 예를 들어 요약된 판매 데이터를 사용하여 고성능 요약 보고를 달성할 수 있습니다. 드릴스루 페이지에는 특정(좁은) 필터 컨텍스트에 대한 상세한 판매 내역이 표시되어 해당 컨텍스트의 모든 판매 주문이 확인됩니다. 이 예제에서 드릴스루 페이지에는 판매 주문 데이터를 검색하는 DirectQuery 모델 테이블을 기반으로 하는 시각적 개체가 포함될 수 있습니다.

그러나 DirectQuery 스토리지 모드 및 복합 모델과 관련된 많은 보안 및 성능 영향이 있습니다. 자세한 내용은 Power BI Desktop복합 모델 사용을 참조하세요.

이 문서와 관련된 자세한 내용은 다음 문서를 확인하세요.