2010-02-17 6 views
0

공유 데이터 원본으로 SSAS 큐브에 연결하는 보고서를 배포하려고합니다. 내가 가지고있는 문제는 SSAS 연결 문자열에서 초기 카탈로그를 변경하더라도 rdl 파일의 모든 MDX 쿼리는 여전히 이전 SSAS 큐브를 이름으로 참조한다는 사실입니다.SSRS에서 SSAS 및 MDX 쿼리에 데이터 소스 공유

이 큐브 이름은 자주 바뀌기 때문에 (소프트웨어를 설치할 클라이언트마다 다르기 때문에) 특히 문제가됩니다. 개발자가 보고서에 작성한 큐브의 이름이 쿼리에 하드 코딩 된 경우 배포하기 전에 rdl 파일에서 일부 검색/바꾸기를 수행하는 가장 좋은 방법은 무엇입니까?

다음은 MDX 간단한 쿼리 중 하나의 예 :

WITH MEMBER [Measures].[ParameterCaption] 
AS [Time Dim].[Year].CURRENTMEMBER.MEMBER_CAPTION MEMBER [Measures].[ParameterValue] 
AS [Time Dim].[Year].CURRENTMEMBER.UNIQUENAME MEMBER [Measures].[ParameterLevel] 
AS [Time Dim].[Year].CURRENTMEMBER.LEVEL.ORDINAL 
SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} 
ON COLUMNS , [Time Dim].[Year].ALLMEMBERS ON ROWS FROM [Data Warehouse] 

그래서 "데이터웨어 하우스"는 디바이스의 시스템에서 SSAS 큐브에 대한 데이터를 저장하는 데이터베이스의 이름이라고 말한다. 그러나 프로덕션에서는 "Prod DW"라고 불립니다. 새 큐브를 가리 키도록 데이터 소스를 변경하더라도 쿼리는 이전 큐브를 계속 찾습니다. 필자가 변경 한 유일한 방법은 rdl 파일을 편집하거나 Visual Studio에서 편집하는 것입니다.

답변

0

저는이 답변에 대해 확실하지 않으며 다른 사람들이 이것이 사실인지 확인할 수 있습니다.

이러한 쿼리에 포함 된 [Data Warehouse] 또는 [Some Cube]과 같은 이름은 SSAS 데이터베이스의 데이터 원본, 데이터 원본 뷰 및 큐브 이름입니다.

우리의 응용 프로그램이 동일한 SSIS 서버에서 호스팅되는 거의 동일한 큐브를 가진 여러 테넌트와 함께 멀티 테넌트가되어야하기 때문에 우려했습니다. 그때 큐브의 이름이 각 SSAS 데이터베이스마다 고유해야한다고 생각했지만 그렇지 않습니다. 데이터베이스 이름 만 고유해야합니다.

따라서 AS 데이터베이스를 배포하는 데 사용되는 xmla 파일에서 큐브, 데이터 원본 및 데이터 원본 뷰의 이름과 ID가 동일하게 유지되면 데이터베이스 이름과 ID는 변경되지 않고 보고서가 다양한 큐브에서 작동 할 수 있습니다. 공유 데이터 원본에