DirectQuery 배포 시나리오(SSAS 테이블 형식)
이 항목에서는 DirectQuery 모델에 대한 디자인 및 배포 프로세스를 연습할 수 있습니다. 관계형 데이터만 사용하도록 모델을 구성하거나(DirectQuery 전용) 전환을 통해 캐시된 데이터만 사용하거나 관계형 데이터만 사용하도록 모델을 구성할 수 있습니다(혼합 모드). 이 항목에서는 두 모드에 대한 구현 프로세스에 대해 설명하고 모드와 보안 구성에 따라 달라질 수 있는 쿼리 결과에 대해 살펴봅니다.
디자인 및 배포 단계
DirectQuery 구성 비교
디자인 및 배포 단계
1단계. 솔루션 만들기
사용하는 모드에 관계없이 DirectQuery 모델에서 사용될 수 있는 데이터에 대한 제한 사항을 설명하는 정보를 검토해야 합니다. 예를 들어 모델 및 보고서에 사용되는 모든 데이터는 단일 관계형 데이터 원본(SQL Server 또는 SQL Server PDW)에서 제공되어야 합니다. 자세한 내용은 DirectQuery 모드(SSAS 테이블 형식)를 참조하십시오.
다음 작업으로, 측정값 및 계산 열에 대한 제한 사항을 검토하고 사용하려는 수식이 DirectQuery 모드와 호환되는지 여부를 확인합니다. 모델의 다음 부분을 제거하거나 수정해야 할 수 있습니다.
계산 열이 지원되지 않습니다.
복사하여 붙여 넣은 데이터를 사용할 수 없습니다. 따라서 이러한 데이터는 삭제할 수 없을 뿐만 아니라 DirectQuery 유효성 검사를 차단하므로 PowerPivot 모델을 가져와서 솔루션을 시작하려는 경우 솔루션을 가져오기 전에 연결된 테이블을 모두 삭제해야 합니다.
중요:
2단계. 모델 디자이너에서 DirectQuery 모드를 사용하도록 설정
기본적으로 DirectQuery는 사용하지 않도록 설정되어 있습니다. 따라서 DirectQuery 모드를 지원하도록 디자인 환경을 구성해야 합니다.
솔루션 탐색기에서 Model.bim 노드를 마우스 오른쪽 단추로 클릭하고 DirectQuery 모드 속성을 On으로 설정합니다.
언제든지 DirectQuery를 설정할 수 있지만, DirectQuery 모드와 호환되지 않는 수식이나 열을 만들지 않으려면 처음부터 DirectQuery 모드를 사용하도록 설정하는 것이 좋습니다.
처음에는 DirectQuery 모델이 항상 메모리에 생성됩니다. 또한 작업 영역 데이터베이스에 대한 기본 쿼리 모드는 DirectQuery with In-Memory로 설정됩니다. 이 혼합 작업 모드에서는 DirectQuery 요구 사항에 대한 모델의 유효성을 검사하는 동안 계속해서 가져온 데이터의 캐시를 사용할 수 있으므로 모델 디자인 프로세스 중 성능이 향상됩니다.
3단계. 유효성 검사 오류 해결
DirectQuery를 설정할 때나 새 데이터 또는 수식을 추가할 때 유효성 검사 오류가 발생하는 경우 Visual Studio 오류 목록을 연 다음 필요한 동작을 수행합니다.
오류 메시지에 설명된 대로 DirectQuery 모드에 필요한 속성 설정을 변경합니다.
계산 열을 제거합니다. 특정 측정값에 대한 계산 열이 필요한 경우 항상 테이블 가져오기 마법사에서 제공하는 관계형 쿼리 디자이너(SSAS)를 사용하여 열을 만들 수 있습니다.
DirectQuery 모드와 호환되지 않는 수식을 수정하거나 제거합니다. 계산에 특정 함수가 필요한 경우에는 Transact-SQL을 사용하여 해당 함수를 제공할 수 있는 방법을 고려합니다.
필요에 따라 데이터를 추가합니다. 모델에서 다른 공급자의 데이터나 복사하여 붙여 넣은 데이터를 사용한 적이 있는 경우 관계형 데이터 원본 내에서나 테이블을 가져올 때 사용된 쿼리 정의 내에서도 새 뷰와 파생 열을 만들 수 있습니다. 그러나 DirectQuery 모델에서 사용되는 모든 데이터는 단일 관계형 데이터 원본에서 액세스할 수 있어야 합니다. 일부 데이터가 외부 시스템에 있는 경우 관계형 데이터 원본에서 데이터를 준비하는 것이 좋습니다.
4단계. 모델에 대한 쿼리에 응답하기 위해 기본적으로 사용되는 방법 설정
DirectQuery 전용 |
속성을 DirectQuery로 설정합니다. |
혼합 모드 |
속성을 In-Memory With DirectQuery 또는 DirectQuery With In-Memory로 설정합니다. 나중에 이 값을 변경하여 다른 기본 설정을 사용할 수 있습니다. 클라이언트는 연결 문자열에서 기본적으로 사용되는 방법을 재정의할 수 있습니다. |
5단계. DirectQuery 파티션 지정
DirectQuery 전용 |
선택 사항 DirectQuery 전용 모델은 파티션이 필요하지 않습니다. 그러나 디자인 단계 동안 모델에서 파티션을 만든 경우 파티션 중 하나만 데이터 원본으로 사용될 수 있습니다. 기본적으로 첫 번째로 만든 파티션이 DirectQuery 파티션으로 사용됩니다. 모델에 필요한 모든 데이터를 DirectQuery 파티션에서 사용할 수 있도록 하려면 DirectQuery 파티션을 선택한 다음 전체 데이터 집합을 가져오도록 SQL 문을 편집합니다. |
혼합 모드 |
모델의 테이블에 파티션이 여러 개 있는 경우 파티션 중 하나를 DirectQuery 파티션으로 선택해야 합니다. 파티션을 할당하지 않을 경우 기본적으로 처음 만들어진 파티션이 DirectQuery 파티션으로 사용됩니다. DirectQuery를 제외한 모든 파티션에 대한 처리 옵션을 설정합니다. 데이터가 관계형 원본에서 전달되므로 일반적으로 DirectQuery 파티션은 처리되지 않습니다. 자세한 내용은 파티션 및 DirectQuery 모드(SSAS 테이블 형식)을 참조하십시오. |
6단계. 가장 구성
가장은 DirectQuery 모델에 대해서만 지원됩니다. 가장 옵션인 가장 설정은 지정된 SQL Server 데이터 원본에서 데이터를 볼 때 사용되는 자격 증명을 정의합니다.
DirectQuery 전용 |
가장 설정 속성에서 관계형 데이터 원본에 연결하는 데 사용할 계정을 지정합니다. ImpersonateCurrentUser 값을 사용하면 모델을 호스팅하는 Analysis Services 인스턴스가 현재 모델 사용자의 자격 증명을 관계형 데이터 원본에 전달합니다. |
혼합 모드 |
가장 설정 속성에서 관계형 데이터 원본의 데이터에 액세스하는 데 사용할 계정을 지정합니다. 이 설정은 모델에 사용된 캐시를 처리하는 데 사용되는 자격 증명에 영향을 주지 않습니다. |
7단계. 모델 배포
모델을 배포할 준비가 되었으면 Visual Studio의 프로젝트 메뉴를 열고 속성을 선택합니다. QueryMode 속성을 다음 표에 설명된 값 중 하나로 설정합니다.
자세한 내용은 SQL Server Data Tools에서 배포(SSAS 테이블 형식)를 참조하십시오.
DirectQuery 전용 |
DirectQueryOnly 직접 쿼리만 지정했으므로 모델의 메타데이터는 서버에 배포되지만 모델은 처리되지 않습니다. 작업 영역 데이터베이스에서 사용한 캐시가 자동으로 삭제되지는 않습니다. 캐시된 데이터를 사용자가 볼 수 없도록 하려는 경우 디자인 타임 캐시의 선택을 취소할 수 있습니다. 자세한 내용은 Analysis Services 캐시 지우기를 참조하십시오. |
혼합 모드 |
DirectQuery with In-Memory In-Memory with DirectQuery 이 두 값을 사용하면 필요에 따라 캐시 또는 관계형 데이터 원본을 사용할 수 있습니다. 순서에 따라 모델에 대한 쿼리에 응답할 때 기본적으로 사용되는 데이터 원본이 정의됩니다. 혼합 모드에서는 모델 메타데이터를 서버에 배포하는 동시에 캐시를 처리해야 합니다. 배포 후 이 설정을 변경할 수 있습니다. |
8단계. 배포된 모델 확인
SQL Server Management Studio에서 모델을 배포한 Analysis Services 인스턴스를 엽니다. 데이터베이스 이름을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
DirectQueryMode 속성은 배포 속성을 정의할 때 설정되었습니다.
데이터 원본 가장 정보 속성은 사용자 가장 옵션을 정의할 때 설정되었습니다. 자세한 내용은 가장 옵션 설정(SSAS - 다차원)을 참조하십시오.
모델을 배포한 후 언제든지 이러한 속성을 변경할 수 있습니다.
맨 위로 이동
DirectQuery 옵션 비교
DirectQuery Only
단일 데이터 원본을 사용하려고 하거나 데이터가 너무 커서 메모리에 맞지 않는 경우 이 옵션을 사용하는 것이 좋습니다. 매우 큰 관계형 데이터 원본을 사용하는 경우 디자인 타임에 데이터의 일부 하위 집합을 사용하여 모델을 만들 수 있습니다. DirectQuery 전용 모드에서 모델을 배포하는 경우 필요한 데이터를 모두 포함하도록 데이터 원본 정의를 편집할 수 있습니다.관계형 데이터 원본에서 제공하는 보안을 사용하여 데이터에 대한 사용자 액세스를 제어하려는 경우에도 이 옵션을 사용하는 것이 좋습니다. 캐시된 테이블 형식 모델을 사용하면 Analysis Services 역할을 사용하여 데이터 액세스를 제어할 수도 있지만 캐시에 저장된 데이터에 보안도 설정해야 합니다. 보안 컨텍스트를 위해 데이터를 캐시해서는 안 되는 경우에는 항상 이 옵션을 사용해야 합니다.
다음 표에서는 DirectQuery 전용 모드에서 가능한 배포 결과에 대해 설명합니다.
캐시가 없는 DirectQuery
캐시에 로드되는 데이터가 없습니다. 모델을 처리할 수 없습니다.
모델은 DAX 쿼리를 지원하는 클라이언트를 통해서만 쿼리할 수 있습니다. 쿼리 결과는 항상 원래 데이터 원본에서 반환됩니다.
DirectQueryMode = On
QueryMode = DirectQuery
캐시에 대한 쿼리만 있는 Directquery
배포에 실패하며 이 구성은 지원되지 않습니다.
DirectQueryMode = On
QueryMode = In-Memory
혼합 모드
혼합 모드에서 모델을 배포하면 여러 가지 이점이 있습니다. 특히 데이터를 실시간으로 업데이트해야 하는 경우에 관계형 데이터 원본에서 최신 데이터를 가져올 수 있습니다. 그러나 캐시를 유지하면 보고서를 디자인하거나 모델을 테스트하는 동안 성능을 높이도록 메모리에서 데이터를 사용할 수 있습니다.DirectQuery 혼합 모드는 모델이 매우 큰 경우에도 유용합니다. 사용자로 하여금 유효하지 않은 데이터를 가져오게 하거나 캐시가 처리되는 동안 모델을 사용할 수 없게 하는 대신 처리가 진행되는 동안 모델을 DirectQuery 모드로 전환할 수 있습니다. 사용자는 성능이 조금 저하된다고 느낄 수 있지만 관계형 저장소에서 직접 데이터를 가져올 수 있으므로 최신 결과를 얻을 수 있습니다.
다음 표에서는 각각의 DirectQuery 옵션 조합에서 발생하는 배포 결과를 비교합니다.
캐시가 기본 설정된 혼합 모드
모델을 처리하고 캐시에 데이터를 로드할 수 있습니다. 쿼리는 기본적으로 캐시를 사용합니다.
클라이언트가 DirectQuery 원본을 사용하려는 경우 연결 문자열에 매개 변수를 삽입해야 합니다.
DirectQueryMode = On
QueryMode = In-Memory with DirectQuery
DirectQuery가 기본 설정된 혼합 모드
모델을 처리하고 캐시에 데이터를 로드할 수 있습니다. 그러나 쿼리는 기본적으로 Directquery를 사용합니다.
클라이언트가 캐시된 데이터를 사용하려는 경우 연결 문자열에 매개 변수를 삽입해야 합니다.
모델에서 테이블이 분할되면 캐시의 주 파티션도 In-Memory with DirectQuery로 설정됩니다.
DirectQueryMode = On
QueryMode = DirectQuery with In-Memory