다음을 통해 공유


파티션 및 DirectQuery 모드(SSAS 테이블 형식)

이 섹션에서는 DirectQuery 모델에서 파티션을 사용하는 방법을 설명합니다. 테이블 형식 모델의 파티션에 대한 자세한 내용은 파티션(SSAS 테이블 형식)을 참조하세요.

사용되는 파티션을 변경하거나 파티션에 대한 정보를 보는 방법에 대한 지침은 DirectQuery 파티션 변경(SSAS 테이블 형식)을 참조하세요.

DirectQuery 모드에서 파티션 사용

각 테이블에 대해 DirectQuery 데이터 원본으로 사용할 단일 파티션을 지정해야 합니다. 여러 파티션이 있는 경우 DirectQuery 모드를 사용하도록 모델을 전환할 때 기본적으로 테이블에서 만든 첫 번째 파티션은 DirectQuery 파티션으로 플래그가 지정됩니다. 나중에 SSDT(SQL Server Data Tools)에서 파티션 관리자를 사용하여 이를 변경할 수 있습니다.

DirectQuery 모드에서 단일 파티션만 허용하는 이유는 무엇인가요?

테이블 형식 모델(OLAP 모델에서와 같이)에서는 테이블의 파티션이 SQL 쿼리에 의해 정의됩니다. 파티션 정의를 만드는 개발자는 파티션이 겹치지 않도록 해야 합니다. Analysis Services는 레코드가 하나 또는 여러 파티션에 속하는지 여부를 확인하지 않습니다.

캐시된 테이블 형식 모델의 파티션은 동일한 방식으로 동작합니다. 메모리 내 모델을 사용하는 경우 캐시에 액세스하는 동안 DAX 수식이 각 파티션에 대해 평가되고 결과가 결합됩니다. 그러나 테이블 형식 모델이 DirectQuery 모드를 사용하는 경우 여러 파티션을 평가하고, 결과를 결합하고, 관계형 데이터 저장소로 보내기 위한 SQL 문으로 변환하는 것은 불가능합니다. 이렇게 하면 성능이 허용되지 않는 수준으로 떨어질 수 있고, 결과가 집계될 때 잠재적인 부정확성이 발생할 수 있습니다.

따라서 DirectQuery 모드에서 응답된 쿼리의 경우 서버는 DirectQuery 파티션이라는 DirectQuery 액세스의 기본 파티션으로 표시된 단일 파티션을 사용합니다. 이 파티션의 정의에 지정된 SQL 쿼리는 DirectQuery 모드에서 쿼리에 응답하는 데 사용할 수 있는 전체 데이터 집합을 정의합니다.

파티션을 명시적으로 정의하지 않으면 엔진은 단순히 전체 관계형 데이터 원본에 SQL 쿼리를 실행하고 DAX 수식에서 지시한 집합 기반 작업을 수행하고 쿼리 결과를 반환합니다.

테이블에 여러 파티션이 있고 한 파티션을 DirectQuery 파티션으로 선택하는 경우 기본적으로 다른 모든 파티션은 메모리 내 사용 전용으로 표시됩니다.

캐시된 모델 및 DirectQuery 모델의 파티션

DirectQuery 파티션을 구성할 때 파티션에 대한 처리 옵션을 지정해야 합니다.

DirectQuery 파티션에는 두 가지 처리 옵션이 있습니다. 이 속성을 설정하려면 SSDT(SQL Server Data Tools) 또는 SQL Server Management Studio에서 파티션 관리자 를 사용하고 처리 옵션 속성을 선택합니다. 다음 표에서는 이 속성의 값을 나열하고 연결 문자열에서 DirectQueryUsage 속성과 결합할 때 각 값의 효과를 설명합니다.

DirectQueryUsage 속성 처리 옵션 속성 비고
다이렉트쿼리 이 파티션을 처리하지 마세요. 모델에서 DirectQuery만 사용하는 경우 처리가 필요하지 않습니다.

하이브리드 모델에서는 DirectQuery 파티션이 처리되지 않도록 구성할 수 있습니다. 예를 들어 매우 큰 데이터 집합을 통해 작업하는 경우 전체 결과가 캐시에 추가되지 않도록 하려면 DirectQuery 파티션에 테이블의 다른 모든 파티션에 대한 결과의 합합을 포함하도록 지정한 다음 공용 구조체를 처리하지 않을 수 있습니다. 관계형 원본으로 이동하는 쿼리는 영향을 받지 않으며 캐시된 데이터에 대한 쿼리는 다른 파티션의 데이터를 결합합니다.
DirectQuery를 사용한 InMemory 파티션 처리 허용 모델이 하이브리드 모드를 사용하는 경우 메모리 내 쿼리에 대해 동일한 파티션을 사용하고 DirectQuery 데이터 원본에 대한 쿼리를 사용해야 합니다.

또한 참조하십시오

파티션(SSAS 테이블 형식)