다음을 통해 공유


DirectQuery 모드(SSAS 테이블 형식)

Analysis Services를 사용하면 DirectQuery 모드를 사용하여 관계형 데이터베이스 시스템에서 직접 데이터 및 집계를 검색하여 데이터를 검색하고 테이블 형식 모델에서 보고서를 만들 수 있습니다. 이 항목에서는 메모리에만 상주하는 표준 테이블 형식 모델과 관계형 데이터 원본을 쿼리할 수 있는 테이블 형식 모델 간의 차이점을 소개하고 DirectQuery 모드에서 사용할 모델을 작성하고 배포하는 방법을 설명합니다.

이 항목의 섹션:

DirectQuery 모드의 이점

기본적으로 테이블 형식 모델은 메모리 내 캐시를 사용하여 데이터를 저장하고 쿼리합니다. 테이블 형식 모델은 메모리에 있는 데이터를 사용하므로 복잡한 쿼리도 매우 빠를 수 있습니다. 그러나 캐시된 데이터를 사용하는 데는 몇 가지 단점이 있습니다.

  • 원본 데이터가 변경되면 데이터가 새로 고쳐지지 않습니다. 데이터를 업데이트하려면 모델을 처리해야 합니다.

  • 모델을 호스트하는 컴퓨터를 끄면 캐시가 디스크에 저장되고 모델을 로드하거나 PowerPivot 파일을 열 때 다시 열어야 합니다. 저장 및 로드 작업은 시간이 오래 걸릴 수 있습니다.

반면 DirectQuery 모드는 SQL Server 데이터베이스에 저장된 데이터를 사용합니다. 일반적으로 모델을 작성하는 동안 데이터의 전체 또는 작은 샘플을 캐시로 가져오고 모델을 배포할 때 모델에 대한 쿼리의 데이터 원본이 캐시된 데이터가 아닌 SQL Server가 되도록 지정합니다. 데이터에 대한 DAX 쿼리는 Analysis Services에서 지정된 관계형 데이터 원본에 대해 해당하는 SQL 문으로 변환됩니다.

DirectQuery 모드를 사용하여 모델을 배포할 때는 다음과 같은 여러 가지 이점이 있습니다.

  • Analysis Services 서버 메모리에 맞지 않을 만큼 너무 큰 데이터 집합에 대해 모델을 생성할 수 있습니다.

  • 데이터는 up-to-date로 보장되며, 별도의 복사본을 유지할 필요가 없기 때문에 추가적인 관리 작업이 필요하지 않습니다. 기본 원본 데이터의 변경 내용은 데이터 모델에 대한 쿼리에 즉시 반영될 수 있습니다.

  • DirectQuery는 xVelocity 메모리 최적화 열 인덱스에서 제공하는 것과 같은 공급자 쪽 쿼리 가속을 활용할 수 있습니다.

  • 백 엔드 데이터베이스에 의해 적용되는 모든 보안은 행 수준 보안을 사용하여 적용되도록 보장됩니다. 반면, 캐시된 데이터를 사용하는 경우 캐시가 서버와 정확하게 보호되는지 확인하기 어려울 수 있습니다.

  • 모델에 여러 쿼리가 필요할 수 있는 복잡한 수식이 포함된 경우 Analysis Services는 최적화를 수행하여 백 엔드 데이터베이스에 대해 실행된 쿼리에 대한 쿼리 계획이 가능한 한 효율적으로 수행되도록 할 수 있습니다.

DirectQuery 모드에서 사용할 모델 작성

테이블 형식 모델은 모델 디자이너 SSDT(SQL Server Data Tools)를 사용하여 작성됩니다. 모델 디자이너는 메모리에 모든 모델을 만듭니다. 즉, 모델링할 때 데이터가 너무 커서 메모리에 맞지 않는 경우 데이터 하위 집합만 작업 영역 데이터베이스에서 사용하는 캐시로 가져와야 합니다.

DirectQuery 모드로 전환할 준비가 되면 DirectQuery 모드를 사용하도록 설정하는 속성을 변경할 수 있습니다. 자세한 내용은 DirectQuery 디자인 모드 사용(SSAS 테이블 형식)을 참조하세요.

이렇게 하면 모델 디자이너는 캐시된 데이터를 계속 사용할 수 있는 하이브리드 모드에서 실행되도록 작업 영역 데이터베이스를 자동으로 구성합니다. 또한 모델 디자이너는 DirectQuery 모드와 호환되지 않는 모델의 모든 기능을 알려 줍니다. 다음 목록에는 주의해야 할 주요 요구 사항이 요약되어 있습니다.

  • 데이터 원본: DirectQuery 모델은 단일 SQL Server 데이터 원본의 데이터만 사용할 수 있습니다. 모델에 대해 DirectQuery 모드가 켜져 있는 경우 복사 붙여넣기 작업에서 추가된 테이블을 포함하여 모델 디자이너에서 다른 형식의 데이터를 사용할 수 없습니다. 다른 모든 가져오기 옵션은 사용할 수 없습니다. 쿼리에 포함된 모든 테이블은 SQL Server 데이터 원본의 일부여야 합니다. 자세한 내용은 DirectQuery 모델의 데이터 원본을 참조하세요.

  • 계산 열 지원: DirectQuery 모델에는 계산 열이 지원되지 않습니다. 그러나 데이터 집합에 대해 작동하는 측정값 및 KPI를 만들 수 있습니다. 자세한 내용은 유효성 검사 섹션을 참조하세요.

  • DAX 함수의 제한된 사용: 일부 DAX 함수는 DirectQuery 모드에서 사용할 수 없으므로 다른 함수로 바꾸거나 데이터 원본에서 파생 열을 사용하여 값을 만들어야 합니다. 모델 디자이너는 DirectQuery 모드와 호환되지 않는 수식을 만들 때 발생하는 모든 오류에 대한 디자인 타임 유효성 검사를 제공합니다. 자세한 내용은 다음 섹션을 참조하세요. 유효성 검사.

  • 수식 호환성: 알려진 특정 경우 동일한 수식은 관계형 데이터 저장소만 사용하는 DirectQuery 모델과 비교하여 캐시된 또는 하이브리드 모델에서 서로 다른 결과를 반환할 수 있습니다. 이러한 차이는 xVelocity 메모리 내 분석(VertiPaq) 엔진과 SQL Server 간의 의미 체계 차이의 결과입니다. 이러한 차이점에 대한 자세한 내용은 수 식 호환성 섹션을 참조하세요.

  • 안전: 배포 방법에 따라 다른 방법을 사용하여 모델을 보호할 수 있습니다. 테이블 형식 모델에 대해 캐시된 데이터는 Analysis Services 인스턴스의 보안 모델을 사용하여 보호됩니다. DirectQuery 모델은 역할을 사용하여 보호될 수 있지만 관계형 데이터 저장소에 정의된 보안을 사용할 수도 있습니다. DirectQuery 전용 모델을 기반으로 보고서를 여는 사용자가 SQL Server의 권한으로 허용되는 데이터만 볼 수 있도록 모델을 구성할 수 있습니다. 자세한 내용은 이 섹션을 참조 하세요. 보안.

  • 클라이언트 제한 사항: 모델이 DirectQuery 모드인 경우 DAX를 사용해야만 쿼리할 수 있습니다. MDX를 사용하여 쿼리를 만들 수 없습니다. 즉, Excel에서 MDX를 사용하기 때문에 Excel 피벗 클라이언트를 사용할 수 없습니다.

    그러나 XMLA Execute 문의 일부로 DAX 테이블 쿼리를 사용하는 경우 SQL Server Management Studio에서 DirectQuery 모델에 대한 쿼리를 만들 수 있습니다. 자세한 내용은 [DAX 쿼리 구문 참조](/dax/dax-syntax-reference)를 참조하세요.

모든 디자인 문제를 해결하고 모델을 테스트한 경우 배포할 준비가 된 것입니다. 이 시점에서 모델에 대한 쿼리에 응답하기 위한 기본 방법을 설정할 수 있습니다. 사용자가 캐시에 액세스할 수 있도록 하거나 항상 관계형 데이터 원본만 사용하시겠습니까?

하이브리드 모드로 모델을 배포하는 경우 캐시를 계속 사용할 수 있으며 쿼리에 사용할 수 있습니다. 하이브리드 모드는 다음과 같은 다양한 옵션을 제공합니다.

  • 캐시와 관계형 데이터 원본을 모두 사용할 수 있는 경우 기본 설정 연결 방법을 설정할 수 있지만, 궁극적으로 클라이언트는 DirectQueryMode 연결 문자열 속성을 사용하여 사용되는 원본을 제어합니다.

  • DirectQuery 모드에 사용되는 기본 파티션이 처리되지 않으며 항상 관계형 원본을 참조해야 하는 방식으로 캐시에서 파티션을 구성할 수도 있습니다. 파티션을 사용하여 모델 디자인 및 보고 환경을 최적화하는 방법에는 여러 가지가 있습니다. 자세한 내용은 파티션 및 DirectQuery 모드(SSAS 테이블 형식)를 참조하세요.

  • 모델을 배포한 후 기본 설정 연결 방법을 변경할 수 있습니다. 예를 들어 테스트를 위해 하이브리드 모드를 사용하고 모델을 사용하는 보고서 또는 쿼리를 철저히 테스트한 후에만 모델을 DirectQuery 전용 모드로 전환할 수 있습니다. 자세한 내용은 DirectQuery에 대한 기본 설정 연결 방법 설정 또는 변경을 참조하세요.

DirectQuery 모델에 대한 데이터 원본

DirectQuery 모드를 사용하도록 디자인 환경을 변경하는 즉시 작업 영역 데이터베이스에 대한 데이터 원본의 유효성을 검사하여 단일 SQL Server 데이터 원본에서 제공되는지 확인합니다. 복사 붙여넣은 데이터를 비롯한 다른 원본의 데이터는 DirectQuery 모델에서 허용되지 않습니다.

DirectQuery 모드에서 모델을 사용하려는 경우 보고에 필요한 모든 데이터가 지정된 SQL Server 데이터베이스에 저장되어 있는지 확인해야 합니다. 모델링에 필요한 데이터를 해당 원본에서 사용할 수 없는 경우 Integration Services 또는 기타 데이터 웨어하우징 도구를 사용하여 DirectQuery 데이터 원본 역할을 하는 SQL Server 데이터베이스로 데이터를 가져오는 것이 좋습니다.

DirectQuery 모드에 대한 유효성 검사 및 디자인 제한 사항

DirectQuery 모드에서 사용할 모델을 작성하는 경우 처음에는 데이터의 일부를 캐시에 로드해야 합니다. 결국 사용할 데이터가 너무 커서 메모리에 맞지 않는 경우 테이블 가져오기 마법사의 미리 보기 및 필터 옵션을 사용하여 데이터의 하위 집합을 선택하거나 SQL 스크립트를 작성하여 원하는 데이터를 가져올 수 있습니다.

경고

DirectQuery 모드는 계산 열 사용을 지원하지 않으므로 다른 작업을 결합하거나 수행하려는 열이 있는 경우 미리 계획하고 데이터 가져오기 쿼리 또는 스크립트의 일부로 열 정의를 만들어야 합니다.

유효성 검사 오류를 보고 해결하려면 SQL Server 데이터 도구에서 오류 목록을 엽니다. DirectQuery 모드를 사용하지 않는 중요한 오류가 오류 탭에 표시됩니다. DirectQuery 모드로 변경하기 전에 이러한 오류를 수정해야 합니다. 일반적으로 해결하기 어려운 유효성 검사 오류는 DirectQuery 모드에서 지원되지 않는 수식과 관련이 있습니다. 수식 및 계산 열과 관련된 오류에 대한 개요는 수식 호환성 섹션을 참조하세요.

다음 목록에서는 DirectQuery 액세스에 대한 모델을 작성할 때 유의해야 할 다른 고려 사항에 대해 설명합니다.

  • DirectQuery 전용 모드에서 보고서의 결과는 결과를 보고 있는 사용자의 보안 컨텍스트에 따라 달라질 수 있습니다. 다른 자격 증명으로 모델을 테스트하여 사용자가 예상된 결과를 얻을 수 있도록 해야 합니다.

  • SQL Server의 캐시 또는 데이터를 사용할 수 있는 하이브리드 모드에서 작동하도록 모델을 구성하는 경우 연결 문자열에 지정된 모드에 따라 각 원본에 연결하는 클라이언트가 서로 다른 결과를 볼 수 있다는 사실을 알고 있어야 합니다. 보고서 사용자에게 SQL Server의 데이터만 표시되도록 해야 하는 경우 캐시를 지우거나 모델을 DirectQueryOnly로 변경해야 합니다.

DirectQuery 모델에 대한 수식 호환성

일부 모델에는 DirectQuery 모드에서 지원되지 않는 수식이 포함될 수 있으며 유효성 검사 오류를 방지하기 위해 모델을 다시 디자인해야 합니다. DirectQuery 모드에서 지원되는 수식에 대한 제한 사항은 다음과 같습니다.

  • 계산 열은 DirectQuery 모드가 활성화된 테이블 형식 모델에서는 지원되지 않으며 하이브리드 모델도 지원되지 않습니다. 모델에 계산 열이 필요한 경우 가져오기 정의에서 Transact-SQL 사용하여 해당 열을 파생 열로 변환하는 것이 좋습니다.

  • DirectQuery 모델은 측정값에 사용하기 위해 DAX 수식을 사용하도록 지원하며, 이 수식은 관계형 데이터 저장소에 대한 집합 기반 작업으로 변환됩니다. 암시적 측정값을 사용하여 만드는 모든 측정값이 지원됩니다.

  • 모든 함수가 지원되는 것은 아닙니다. Analysis Services는 DirectQuery 모델을 쿼리할 때 모든 DAX 수식과 측정값 정의를 SQL 문으로 변환하므로 Transact-SQL 변환할 수 없는 요소가 포함된 수식은 모델에 대한 유효성 검사 오류를 트리거합니다. 예를 들어 시간 인텔리전스 함수는 지원되지 않습니다. 지원되는 함수도 통계 함수와 같이 다르게 동작할 수 있습니다. 호환성 문제의 전체 목록은 DirectQuery 모드의 수식 호환성을 참조하세요.

  • 모델의 일부 수식은 모델을 DirectQuery 모드로 전환할 때 유효성을 검사할 수 있지만 캐시와 관계형 데이터 저장소에 대해 실행될 때 다른 결과를 반환합니다. 캐시에 대한 계산은 Excel의 동작을 에뮬레이트하기 위한 많은 기능을 포함하는 xVelocity 메모리 내 분석(VertiPaq) 엔진의 의미 체계를 사용하는 반면 관계형 데이터 저장소에 저장된 데이터에 대한 쿼리는 반드시 SQL Server의 의미 체계를 사용하기 때문입니다. 모델이 실시간으로 배포될 때 다른 결과를 반환할 수 있는 DAX 함수 목록은 DirectQuery 모드의 수식 호환성을 참조하세요.

DirectQuery 모델에 연결

MDX를 쿼리 언어로 사용하는 클라이언트는 DirectQuery 모드를 사용하는 모델에 연결할 수 없습니다. 예를 들어 DirectQuery 모델에 대해 MDX 쿼리를 만들려고 하면 큐브를 찾을 수 없거나 처리되지 않았음을 나타내는 오류가 발생합니다. Power View, DAX 수식 또는 XMLA 쿼리를 사용하여 DirectQuery 모델에 대한 쿼리를 만들 수 있습니다. 테이블 형식 모델에 대해 임시 쿼리를 수행하는 방법에 대한 자세한 내용은 테이블 형식 모델 데이터 액세스를 참조하세요.

하이브리드 모델을 사용하는 경우 연결 문자열 속성인 DirectQueryMode를 지정하여 사용자가 캐시에 연결할지 또는 DirectQuery 데이터를 사용할지 지정할 수 있습니다.

DirectQuery 모드의 보안

모델을 작성하는 동안 원본 데이터를 검색하는 데 사용되는 사용 권한을 지정합니다. 사용자 고유의 자격 증명 또는 개발에 사용되는 계정인 경우가 많습니다. 그러나 DirectQuery 모드를 사용하도록 모델을 전환하면 보안 컨텍스트가 더 복잡해집니다.

  • 사용자가 관계형 데이터 저장소의 데이터에 필요한 수준의 액세스 권한을 갖고 있는지 여부를 고려합니다.

  • 동일한 모델 또는 보고서를 보는 사용자는 사용자의 보안 컨텍스트에 따라 다른 데이터를 볼 수 있습니다.

  • 모델 캐시가 유지된 경우 Analysis Services 보안 모델(역할)을 사용하여 캐시를 보호합니다. 캐시에는 모델 디자이너가 볼 수 있는 권한이 있지만 사용자가 볼 수 없는 데이터가 포함될 수 있습니다. 모델 및 보고서 디자이너는 캐시를 지우거나 역할을 통해 액세스를 제어하여 이 데이터를 보호해야 합니다.

  • 캐시의 쿼리에 응답하는 모델은 데이터 원본에 연결할 때 현재 사용자를 가장할 수 없습니다. 데이터 원본에 연결할 때 현재 사용자를 가장하려면 DirectQuery 모드를 사용해야 합니다.

  • 보고서 모델에 보안이 필요한 경우 Analysis Services 역할을 사용하거나 데이터 원본에 대한 행 수준 권한을 설정할 수 있는 두 가지 옵션이 있습니다. 관계형 데이터 원본의 보안은 테이블에 대한 액세스를 제어하는 데 사용되며 열 수준 보안은 지원되지 않습니다. 따라서 한 지역의 사용자가 다른 지역의 판매 수치를 볼 수 있는 권한이 없는 경우 Sales 테이블을 기반으로 하는 측정값이 포함된 보고서는 공백이나 오류를 반환합니다.

대리 설정 속성은 DirectQuery 전용 모델이든 DirectQuery를 사용하여 쿼리에 응답하는 하이브리드 모델이든, DirectQuery를 사용하여 모델에 연결할 때 사용하는 자격 증명을 지정합니다. 속성의 값은 다음과 같습니다.

기본값
가져오기 마법사에 지정된 자격 증명을 사용하여 데이터 원본에 연결합니다. 특정 Windows 사용자 또는 서비스 계정일 수 있습니다.

ImpersonateCurrentUser
현재 사용자의 자격 증명을 사용하여 데이터 원본에 연결합니다.

이러한 속성을 설정하는 방법에 대한 자세한 내용은 DirectQuery 배포 시나리오(SSAS 테이블 형식)를 참조하세요.

DirectQuery 속성

다음 표에서는 SQL Server Data Tools 및 SQL Server Management Studio에서 DirectQuery를 사용하도록 설정하고 모델에 대한 쿼리에 사용되는 데이터의 원본을 제어하기 위해 설정할 수 있는 속성을 나열합니다.

속성 이름 설명
DirectQueryMode 속성 이 속성을 사용하면 모델 디자이너에서 DirectQuery 모드를 사용할 수 있습니다. 다른 DirectQuery 속성을 변경하려면 On 이 속성을 설정해야 합니다.

자세한 내용은 DirectQuery 디자인 모드 사용(SSAS 테이블 형식)을 참조하세요.
QueryMode 속성 이 속성은 DirectQuery 모델의 기본 쿼리 메서드를 지정합니다. 모델을 배포할 때 모델 디자이너에서 이 속성을 설정하지만 나중에 재정의할 수 있습니다. 속성에는 다음 값이 있습니다.

DirectQuery - 이 설정은 모델에 대한 모든 쿼리가 관계형 데이터 원본만 사용하도록 지정합니다.

메모리 내 DirectQuery - 이 설정은 클라이언트의 연결 문자열에 달리 지정하지 않는 한 기본적으로 관계형 원본을 사용하여 쿼리에 응답해야 한다고 지정합니다.

메모리 내 - 이 설정은 캐시만 사용하여 쿼리가 응답되도록 지정합니다.

DirectQuery를 사용한In-Memory - 이 설정은 기본적으로 지정합니다. 클라이언트의 연결 문자열에 달리 지정하지 않는 한 캐시를 사용하여 쿼리에 응답해야 합니다.



자세한 내용은 DirectQuery에 대한 기본 설정 연결 방법 설정 또는 변경을 참조하세요.
DirectQueryMode 속성 모델을 배포한 후 SQL Server Management Studio에서 이 속성을 변경하여 DirectQuery 모델에 대한 기본 쿼리 데이터 원본을 변경할 수 있습니다.

이전 속성과 마찬가지로 이 속성은 모델의 기본 데이터 원본을 지정하며 다음 값을 가집니다.

InMemory: 쿼리는 캐시만 사용할 수 있습니다.

DirectQuerywithInMemory: 클라이언트의 연결 문자열에 달리 지정하지 않는 한 쿼리는 기본적으로 관계형 데이터 원본을 사용합니다.

InMemorywithDirectQuery: 클라이언트의 연결 문자열에 달리 지정하지 않는 한 쿼리는 기본적으로 캐시를 사용합니다.

(DirectQuery: 쿼리는 관계형 데이터 원본만 사용합니다.



자세한 내용은 DirectQuery에 대한 기본 설정 연결 방법 설정 또는 변경을 참조하세요.
대리자 설정 속성 이 속성은 쿼리 시 SQL Server 데이터 원본에 연결하는 데 사용되는 자격 증명을 정의합니다. 모델 디자이너에서 이 속성을 설정할 수 있으며 나중에 모델을 배포한 후 값을 변경할 수 있습니다.

이러한 자격 증명은 관계형 데이터 저장소에 대한 쿼리에 응답하는 데만 사용됩니다. 하이브리드 모델의 캐시를 처리하는 데 사용되는 자격 증명과 동일하지 않습니다.

모델이 메모리 내에서만 사용되는 경우에는 ‘가장’을 사용할 수 없습니다. 모델이 DirectQuery 모드를 사용하지 않는 한 이 설정 ImpersonateCurrentUser은 유효하지 않습니다.

또한 모델에 파티션이 포함된 경우 DirectQuery 모드에서 쿼리의 원본으로 사용할 파티션을 하나 선택해야 합니다. 자세한 내용은 파티션 및 DirectQuery 모드(SSAS 테이블 형식)를 참조하세요.

주제 설명
파티션 및 DirectQuery 모드(SSAS 테이블 형식) DirectQuery 모드에 대해 구성된 모델에서 파티션을 사용하는 방법을 설명합니다.
DirectQuery 모드의 DAX 수식 호환성 DirectQuery 모드로 구성된 모델에서 사용할 수 있는 수식에 대한 제한 사항 및 호환성 요구 사항에 대해 설명합니다.
DirectQuery 디자인 모드 사용(SSAS 테이블 형식) DirectQuery 모드를 사용하여 지원되도록 디자인 타임 환경을 변경하는 방법을 설명합니다.
DirectQuery 파티션 변경(SSAS 테이블 형식) DirectQuery 파티션을 변경하는 방법을 설명합니다.
DirectQuery에 대한 기본 설정 연결 방법 설정 또는 변경 DirectQuery에 대해 구성된 모델의 연결 방법을 설정하거나 변경하는 방법을 설명합니다.
DirectQuery 배포 시나리오(SSAS 테이블 형식) DirectQuery 배포 시나리오에 대해 설명합니다.
테이블 형식 모델 데이터베이스에 대한 In-Memory 또는 DirectQuery 액세스 구성 DirectQuery 구성 이해
Analysis Services 캐시 지우기 테이블 형식 모델의 캐시 지우기

또한 참조하십시오

파티션(SSAS 테이블 형식)
테이블 형식 모델 프로젝트(SSAS 테이블 형식)
Excel에서 분석(SSAS 테이블 형식)