SSMS에서 DirectQuery 모드를 사용하도록 설정

적용 대상: SQL Server Analysis Services Azure Analysis Services 패브릭/Power BI Premium

이미 배포된 테이블 형식 모델의 데이터 액세스 속성을 변경하여 메모리에 있는 캐시된 데이터가 아닌 백 엔드 관계형 데이터 원본에 대해 쿼리가 실행되는 DirectQuery 모드를 사용하도록 설정할 수 있습니다.

중요

SSMS(SQL Server Management Studio) 대신 Visual Studio에서 테이블 형식 모델 디자이너를 사용하여 데이터 스토리지 모드를 전환하는 것이 좋습니다. Visual Studio를 사용하여 모델 모드를 변경한 다음, 서버에 배포할 때 모델과 데이터베이스가 동기화된 상태로 유지됩니다. 또한 모델에서 스토리지 모드를 변경하면 발생하는 유효성 검사 오류를 검토할 수 있습니다. 이 문서에 설명된 대로 SSMS를 사용하는 경우 유효성 검사 오류가 보고되지 않습니다.

요구 사항

테이블 형식 모델에서 DirectQuery 모드를 사용하도록 설정하는 것은 다단계 프로세스입니다.

  • 모델에 DirectQuery 모드에서 유효성 검사 오류를 일으킬 수 있는 기능이 없는지 확인하고 모델의 데이터 스토리지 모드를 메모리 내에서 DirectQuery로 변경합니다.

    기능 제한 목록은 DirectQuery 모드에 설명되어 있습니다.

  • 배포된 데이터베이스에서 백 엔드 외부 데이터베이스에서 데이터를 검색하는 데 사용하는 연결 문자열 및 자격 증명을 검토합니다. 단 하나의 연결만 있고, 해당 설정이 쿼리 실행에 적합한지 확인합니다.

    DirectQuery용으로 특별히 설계되지 않은 테이블 형식 데이터베이스에는 여러 개의 연결이 있을 수 있으며, 이제 DirectQuery 모드의 요구 사항대로 하나로 줄여야 합니다.

    원래 데이터 처리에 사용된 자격 증명이 이제 데이터를 쿼리하는 데 사용됩니다. DirectQuery 구성의 일부로, 전용 작업에 다른 작업을 사용하는 경우 계정을 검토하고 변경합니다.

    DirectQuery 모드는 Analysis Services가 신뢰할 수 있는 위임을 수행하는 유일한 시나리오입니다. 솔루션이 위임이 사용자 특정 쿼리 결과를 얻도록 요청할 경우 백엔드 데이터베이스에 연결하기 위해 사용한 계정은 요청하는 사용자의 ID를 위임하도록 허용해야 하며 해당 사용자 ID는 백엔드 데이터베이스에서 읽기 권한이 있어야 합니다.

  • 마지막 단계로, DirectQuery 모드가 쿼리 실행을 통해 작동 중인지 확인합니다.

DirectQuery 모드로 전환

  1. 개체 탐색기 데이터베이스 >속성>모델>기본 모드를 마우스 오른쪽 단추로 클릭합니다.

  2. 모드를 DirectQuery로 설정합니다.

    유효한 값 설명
    DirectQuery 쿼리는 모델에 대해 정의된 데이터 원본 연결을 사용하여 백엔드 관계형 데이터베이스에 대해 실행됩니다.

    모델에 대한 쿼리는 기본 데이터베이스 쿼리로 변환되고 데이터 원본으로 리디렉션됩니다.

    DirectQuery 모드로 설정되어 있는 모델을 처리할 경우 메타데이터만 컴파일되어 배포됩니다. 데이터 자체는 작동 가능한 데이터 원본의 데이터베이스 파일에 있는 모델의 외부입니다.
    가져오기 쿼리는 MDX 또는 DAX에서 테이블 형식 데이터베이스에 대해 실행됩니다.

    가져오기 모드로 설정된 모델을 처리하면 데이터가 백 엔드 데이터 원본에서 검색되고 디스크에 저장됩니다. 데이터베이스가 로드되면 데이터는 매우 빠른 테이블 검색 및 쿼리에 대해 메모리로 완전히 복사됩니다.

    테이블 형식 모델에 대한 기본 모드이며 특정(비관계형) 데이터 원본에 대한 유일한 모드입니다.
    이중 Import 및 DirectQuery를 모두 허용합니다. 이 모드는 Azure Analysis Services 또는 Power BI Premium 지원되지 않습니다.

연결 속성 확인

데이터 원본 연결 설정 방법에 따라 DirectQuery로 전환하면 연결의 보안 컨텍스트가 변경될 수 있습니다. 데이터 액세스 모드를 변경할 경우 가장 및 연결 문자열 속성을 검토하여 로그인이 백엔드 데이터베이스에 대한 현재 연결에 유효한지 확인합니다.

DirectQuery 시나리오의 사용자 ID 위임에 대한 백그라운드 정보는 Configure Analysis Services for Kerberos constrained delegation 에서 신뢰할 수 있는 위임에 대한 Analysis Services 구성 을 검토합니다.

  1. 개체 탐색기에서 연결 을 확장한 후 연결을 두 번 클릭하여 속성을 봅니다.

    DirectQuery 모델의 경우 데이터베이스에 대해 단 하나의 연결만 정의되어 있어야 하며, 데이터 원본은 관계형이고 지원되는 데이터베이스 형식이어야 합니다. 지원되는 데이터 원본을 참조하세요.

  2. 연결 문자열 은 서버, 데이터베이스 이름은 물론 DirectQuery 작업에서 사용하는 인증 방법을 지정해야 합니다. SQL Server 인증을 사용하고 있는 경우 여기에서 데이터베이스 로그인을 지정할 수 있습니다.

  3. 가장 정보 는 Windows 인증에 사용됩니다. DirectQuery 모드에서 테이블 형식 모델에 적합한 옵션은 다음과 같습니다.

    • 서비스 계정을 사용합니다. Analysis Services 서비스 계정이 관계형 데이터베이스에 대한 읽기 권한이 있는 경우 이 옵션을 선택할 수 있습니다.

    • 특정 사용자 이름 및 암호를 사용합니다. 관계형 데이터베이스에 대한 읽기 권한이 있는 Windows 사용자 계정을 지정합니다.

이러한 자격 증명은 관계형 데이터 저장소에 대한 쿼리 응답에만 사용되며, 혼합 모델의 캐시를 처리하는 데 사용되는 자격 증명과는 다릅니다.

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

DirectQuery 액세스 유효성 검사

  1. SQL Server의 관계형 데이터베이스에 연결된 Management Studio에서 SQL Server Profiler 또는 xEvent를 사용하여 추적을 시작합니다.

    Oracle 또는 Teradata를 사용하는 경우 해당 데이터베이스 플랫폼에 대한 추적 도구를 사용합니다.

  2. Management Studio에 들어 가서 select <some measure> on 0 from model.등의 단순 MDX 쿼리를 실행합니다.

  3. 추적에서 관계형 데이터베이스에 대한 쿼리 실행의 증거를 확인해야 합니다.

추가 정보

호환성 수준
지원되는 데이터 원본
확장 이벤트