다음을 통해 공유


DirectQuery 배포 시나리오(SSAS 테이블 형식)

이 항목에서는 DirectQuery 모델에 대한 디자인 및 배포 프로세스의 연습을 제공합니다. 관계형 데이터만 사용하도록 DirectQuery를 구성하거나(DirectQuery에만 해당) 캐시된 데이터만 사용하거나 관계형 데이터만 사용하는 경우(하이브리드 모드) 간에 전환하도록 모델을 구성할 수 있습니다. 이 항목에서는 두 모드의 구현 프로세스에 대해 설명하고 모드 및 보안 구성에 따라 쿼리 결과의 가능한 차이점에 대해 설명합니다.

디자인 및 배포 단계

DirectQuery 구성 비교

디자인 및 배포 단계

1단계. 솔루션 만들기

사용할 모드에 관계없이 DirectQuery 모델에서 사용할 수 있는 데이터의 제한 사항을 설명하는 정보를 검토해야 합니다. 예를 들어 모델 및 보고서에 사용되는 모든 데이터는 단일 SQL Server 데이터베이스에서 제공해야 합니다. 자세한 내용은 DirectQuery 모드(SSAS 테이블 형식)를 참조하세요.

또한 측정값 및 계산 열의 제한 사항을 검토하고 사용하려는 수식이 DirectQuery 모드와 호환되는지 확인합니다. 다음 요소를 제거하거나 수정해야 할 수 있습니다.

  • 계산 열은 지원되지 않습니다.

  • 복사 붙여넣은 데이터를 사용할 수 없습니다. 솔루션을 시작하기 위해 PowerPivot 모델을 가져오는 경우 이 데이터를 삭제할 수 없고 DirectQuery 유효성 검사를 차단하므로 솔루션을 가져오기 전에 연결된 테이블을 삭제해야 합니다.

2단계. 모델 디자이너에서 DirectQuery 모드 사용

기본적으로 DirectQuery는 사용하지 않도록 설정됩니다. 따라서 DirectQuery 모드를 지원하도록 디자인 환경을 구성해야 합니다.

솔루션 탐색기에서 Model.bim 노드를 마우스 오른쪽 단추로 클릭하고 DirectQuery 모드On 속성을 .로 설정합니다.

언제든지 DirectQuery를 켤 수 있습니다. 그러나 DirectQuery 모드와 호환되지 않는 열 또는 수식을 만들지 않도록 하려면 처음부터 DirectQuery 모드를 사용하도록 설정하는 것이 좋습니다.

처음에는 DirectQuery 모델도 항상 메모리에 만들어집니다. 작업 영역 데이터베이스의 기본 쿼리 모드도 메모리 내의 DirectQuery로 설정됩니다. 이 하이브리드 작업 모드를 사용하면 가져온 데이터의 캐시를 사용하여 모델 디자인 프로세스 중에 성능을 향상하는 동시에 DirectQuery 요구 사항에 대해 모델의 유효성을 검사할 수 있습니다.

3단계. 유효성 검사 오류 해결

DirectQuery를 켜거나 새 데이터 또는 수식을 추가할 때 유효성 검사 오류가 발생하는 경우 Visual Studio 오류 목록을 열고 필요한 작업을 수행합니다.

  • 오류 메시지에 설명된 대로 DirectQuery 모드에 필요한 속성 설정을 변경합니다.

  • 계산된 열을 제거합니다. 특정 측정값에 계산 열이 필요한 경우 테이블 가져오기 마법사에 제공된 SSAS(관계형 쿼리 디자이너) 를 사용하여 열을 항상 만들 수 있습니다.

  • DirectQuery 모드와 호환되지 않는 수식을 수정하거나 제거합니다. 계산에 특정 함수가 필요한 경우 Transact-SQL을 사용하여 동등한 기능을 제공할 수 있는 방법을 고려합니다.

  • 필요에 따라 데이터를 추가합니다. 모델에서 이전에 SQL Server 이외의 공급자에서 복사 붙여넣기 데이터 또는 데이터를 사용한 경우 기존 연결 내에서 새 보기 및 파생 열을 만들거나 분산 쿼리를 사용할 수 있습니다. DirectQuery 모델에 사용되는 모든 데이터는 단일 SQL Server 데이터 원본을 통해 액세스할 수 있어야 합니다.

4단계. 모델에서 쿼리에 응답하기 위한 기본 설정 방법 설정

DirectQuery만 속성을 DirectQuery로 설정합니다.
하이브리드 모드 속성을In-Memory DirectQuery 또는 DirectQuery With In-Memory로 설정합니다.

나중에 다른 기본 설정을 사용하도록 이 값을 변경할 수 있습니다.

클라이언트는 연결 문자열에서 기본 설정 메서드를 재정의할 수 있습니다.

5단계 DirectQuery 파티션 지정

DirectQuery만 선택 사항입니다. DirectQuery 전용 모델에는 파티션이 필요하지 않습니다.

그러나 디자인 단계에서 모델에서 파티션을 만든 경우 하나의 파티션만 데이터 원본으로 사용할 수 있습니다. 기본적으로 만든 첫 번째 파티션은 DirectQuery 파티션으로 사용됩니다.

DirectQuery 파티션에서 모델에 필요한 모든 데이터를 사용할 수 있도록 하려면 DirectQuery 파티션을 선택하고 SQL 문을 편집하여 전체 데이터 집합을 가져옵니다.
하이브리드 모드 모델의 테이블에 여러 파티션이 있는 경우 단일 파티션을 DirectQuery 파티션으로 선택해야 합니다. 파티션을 할당하지 않으면 기본적으로 만들어진 첫 번째 파티션이 DirectQuery 파티션으로 사용됩니다.

DirectQuery를 제외한 모든 파티션에서 처리 옵션을 설정합니다. 일반적으로 DirectQuery 파티션은 데이터가 관계형 원본에서 전달되기 때문에 처리되지 않습니다.

자세한 내용은 파티션 및 DirectQuery 모드(SSAS 테이블 형식)를 참조하세요.

6단계 대리 실행 구성

직접 쿼리 모델에 대해서만 사용자 가장 기능이 지원됩니다. 가장 설정 옵션은 지정된 SQL Server 데이터 원본에서 데이터를 볼 때 사용할 자격 증명을 정의합니다.

DirectQuery만 Impersonation Settings 속성의 경우 SQL Server 데이터 원본에 연결하는 데 사용할 계정을 지정합니다.

모델을 호스트하는 Analysis Services 인스턴스인 ImpersonateCurrentUser 값을 사용하면 모델의 현재 사용자의 자격 증명이 SQL Server 데이터베이스에 전달됩니다.
하이브리드 모드 Impersonation Settings 속성의 경우 SQL Server 데이터 원본의 데이터에 액세스하는 데 사용할 계정을 지정합니다.

이 설정은 모델에서 사용하는 캐시를 처리하는 데 사용되는 자격 증명에 영향을 주지 않습니다.

7단계 모델 배포

모델을 배포할 준비가 되면 Visual Studio의 프로젝트 메뉴를 열고 속성을 선택합니다. QueryMode 속성을 다음 표에 설명된 값 중 하나로 설정합니다.

자세한 내용은 SQL Server Data Tools에서 배포(SSAS 테이블 형식)를 참조하세요.

DirectQuery만 DirectQueryOnly

직접 쿼리만 지정했으므로 모델의 메타데이터가 서버에 배포되지만 모델은 처리되지 않습니다.

작업 영역 데이터베이스에서 사용한 캐시는 자동으로 삭제되지 않습니다. 사용자가 캐시된 데이터를 볼 수 없도록 하려면 디자인 타임 캐시를 지울 수 있습니다. 자세한 내용은 Analysis Services 캐시 지우기를 참조하세요.
하이브리드 모드 인메모리와 함께 사용하는 DirectQuery

DirectQuery를 사용하여In-Memory

이러한 두 값을 모두 사용하면 필요에 따라 캐시 또는 관계형 데이터 원본을 사용할 수 있습니다. 이 순서는 모델에 대한 쿼리에 응답할 때 기본적으로 사용되는 데이터 원본을 정의합니다.

하이브리드 모드에서는 모델 메타데이터가 서버에 배포되는 동시에 캐시를 처리해야 합니다.

배포 후 이 설정을 변경할 수 있습니다.

8단계. 배포된 모델 확인

SQL Server Management Studio에서 모델을 배포한 Analysis Services 인스턴스를 엽니다. 데이터베이스의 이름을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  • 배포 속성을 정의할 때 DirectQueryMode 속성이 설정되었습니다.

  • 사용자 제 변장 옵션을 정의할 때 데이터 소스 사용자 변장 정보 속성이 설정되었습니다. 자세한 내용은 대리 옵션 설정(SSAS - 다차원)을 참조하세요.

  • 모델이 배포된 후 언제든지 이러한 속성을 변경할 수 있습니다.

DirectQuery 옵션 비교

DirectQuery 전용
이 옵션은 단일 데이터 원본을 보장하려는 경우 또는 데이터가 너무 커서 메모리에 맞지 않는 경우에 선호됩니다. 매우 큰 관계형 데이터 원본으로 작업하는 경우 디자인 타임 동안 데이터의 일부 하위 집합을 사용하여 모델을 만들 수 있습니다. DirectQuery 전용 모드로 모델을 배포하는 경우 필요한 모든 데이터를 포함하도록 데이터 원본 정의를 편집할 수 있습니다.

관계형 데이터 원본에서 제공하는 보안을 사용하여 데이터에 대한 사용자 액세스를 제어하려는 경우에도 이 옵션을 사용하는 것이 좋습니다. 캐시된 테이블 형식 모델을 사용하면 Analysis Services 역할을 사용하여 데이터 액세스를 제어할 수도 있지만 캐시에 저장된 데이터도 보호해야 합니다. 보안 컨텍스트에서 데이터를 캐시하지 않아야 하는 경우 항상 이 옵션을 사용해야 합니다.

다음 표에서는 DirectQuery 전용 모드에 대한 가능한 배포 결과를 설명합니다.

캐시가 없는 DirectQuery 캐시에 데이터가 로드되지 않습니다. 모델은 처리할 수 없습니다.

모델은 DAX 쿼리를 지원하는 클라이언트를 사용해야만 쿼리할 수 있습니다. 쿼리 결과는 항상 원래 데이터 원본에서 반환됩니다.

DirectQueryMode = On

QueryMode = DirectQuery
캐시에 대한 쿼리만 있는 DirectQuery 배포가 실패합니다. 이 구성은 지원되지 않습니다.

DirectQueryMode = On

QueryMode = 메모리 내

하이브리드 모드
하이브리드 모드로 모델을 배포하는 것은 많은 장점이 있습니다. 필요한 경우 SQL Server 데이터 원본에서 up-to날짜 데이터를 가져올 수 있지만 캐시를 유지하면 보고서를 디자인하거나 모델을 테스트하는 동안 더 빠른 성능을 위해 메모리의 데이터로 작업할 수 있습니다.

DirectQuery 하이브리드 모드는 모델이 매우 큰 경우에도 유용합니다. 캐시가 처리되는 동안 사용자가 부실 데이터를 얻거나 모델을 사용할 수 없도록 하는 대신 처리가 진행되는 동안 모델을 DirectQuery 모드로 전환할 수 있습니다. 사용자는 성능이 약간 느려질 수 있지만 관계형 저장소에서 직접 데이터를 가져와 결과가 up-to확인합니다.

다음 표에서는 DirectQuery 옵션의 각 조합에서 배포 결과를 비교합니다.

캐시가 기본 설정된 하이브리드 모드 모델을 처리하고 데이터를 캐시에 로드할 수 있습니다. 쿼리는 기본적으로 캐시를 사용합니다. 클라이언트가 DirectQuery 원본을 사용하려는 경우 연결 문자열에 매개 변수를 삽입해야 합니다.

DirectQueryMode = On

QueryMode = DirectQuery를 사용하여In-Memory
DirectQuery가 기본 설정된 하이브리드 모드 모델이 처리되고 데이터를 캐시에 로드할 수 있습니다. 그러나 쿼리는 기본적으로 DirectQuery를 사용합니다. 클라이언트가 캐시된 데이터를 사용하려는 경우 연결 문자열에 매개 변수를 삽입해야 합니다. 모델의 테이블이 분할되면 캐시의 주 파티션도 DirectQuery를 사용하여In-Memory 설정됩니다.

DirectQueryMode = On

QueryMode = 메모리 내 DirectQuery

또한 참조하십시오

DirectQuery 모드(SSAS 테이블 형식)
테이블 형식 모델 데이터 액세스