MDX로 데이터 분석 및 관리

MDX(다차원 표현식)는 강력한 데이터 조작 및 질의 언어입니다.

MDX로 다음 작업을 수행할 수 있습니다.

  • Essbase 큐브의 데이터와 메타데이터에 대해 질의 및 보고

  • Essbase 큐브로 데이터 삽입

  • Essbase 큐브에서 데이터 익스포트

MDX 질의는 단일 큐브에 적용되는 정확히 하나의 결과 집합을 가지는 단일 MDX 문입니다.

MDX 보고서는 큐브 컨텍스트에 저장되는 단일 MDX 질의입니다. Smart ViewEssbase 웹 인터페이스에서 MDX 보고서에 액세스할 수 있습니다.

MDX 스크립트는 확장자가 .mdx인 파일로, 업로드 후 [작업] 또는 Smart View에서 실행할 수 있습니다. MDX 삽입 및 익스포트 문만 MDX 스크립트에서 사용되어야 합니다. 그리드 데이터를 분석하려면 MDX 스크립트가 아닌 MDX 보고서를 사용합니다.

항목:

MDX 보고서로 데이터 분석

MDX 보고서를 사용하여 Essbase 웹 인터페이스에서 질의를 저장하고 렌더링할 수 있습니다. 보고서 생성에 필요한 최소 권한은 데이터베이스 관리자입니다.

[임시 분석] 탭에서 레이아웃을 정의하는 것이 항상 정교한 보고서를 생성하기 위한 가장 효율적인 방법은 아닐 수 있습니다. 질의할 내용을 정확히 알고 있을 경우 MDX를 사용하여 그리드를 채울 질의를 생성할 수 있습니다.

MDX 보고서를 생성하려면 다음과 같이 하십시오.
  1. 데이터베이스 관리자 또는 그 이상의 롤로 Essbase 웹 인터페이스에 로그인합니다.
  2. 데이터 분석으로 이동합니다.
    • Redwood 인터페이스에서 애플리케이션을 열고 데이터베이스(큐브)를 열고 데이터 분석을 누릅니다.
    • 클래식 웹 인터페이스에서 애플리케이션을 확장하고, 큐브를 선택하고, 큐브 이름 오른쪽에 있는 [작업] 메뉴를 누르고, 데이터 분석을 선택합니다.
  3. [분석] 뷰에서 보고서 탭을 선택하고 생성을 누릅니다.
  4. 보고서에 대한 이름 및 설명(선택사항)을 입력합니다.
  5. [질의] 필드에서 현재 큐브와 관련된 MDX 질의를 입력합니다. 예를 들어, 다음과 같습니다.
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    질의에는 행 축과 열 축 지정이 포함되어야 합니다. 즉, 비어 있는 {} 집합만 한 축에 대해 지정된 경우에도 질의 구문에는 ON COLUMNS와 ON ROWS에 대한 지정이 포함되어야 합니다.

    데이터 분석 컨텍스트는 활성 큐브이므로 MDX 보고서에서 선택적 큐브 지정(FROM 절)을 생략하는 것이 좋습니다. FROM 절을 생략하면 유연성이 향상됩니다. 즉, 큐브가 복사되거나 큐브 이름이 바뀌는 경우 보고서가 새 큐브에서 지원됩니다.

    대체 변수는 MDX 보고서에서 지원되지만 런타임 대체 변수는 지원되지 않습니다. 런타임 대체 변수를 사용하려면 MDX 질의를 스크립트로 저장하고 Smart View에서 Essbase 리본의 계산을 사용하여 실행합니다.

  6. 검증을 눌러 MDX 구문을 확인한 다음 저장을 누릅니다.
  7. 왼쪽에 있는 [보고서] 패널에서 저장된 보고서를 선택하여 그리드를 렌더링합니다.

MDX에 대해 자세히 알아보려면 MDXWriting MDX Queries을(를) 참조하십시오.

MDX 보고서 액세스

보고서 작업 방식은 큐브 액세스 권한에 따라 다릅니다.

최소한 애플리케이션 레벨의 데이터베이스 액세스 롤을 보유한 사용자는 다른 사람이 생성한 저장된 MDX 보고서를 렌더링할 수 있습니다. 보고서에 표시되어 사용자에게 제공되는 데이터는 사용자의 필터 액세스에 따라 다릅니다.

저장된 보고서 렌더링을 비롯하여 데이터베이스 액세스 사용자는 다양한 형식(HTML, CSV, Excel 및 JSON)의 결과 집합을 익스포트할 수 있습니다.

또한 데이터베이스 액세스 사용자는 보고서 이름 옆에 있는 작업 메뉴를 누르고 보기를 선택하여 보고서를 정의하는 MDX 질의를 볼 수 있습니다.

최소한 데이터베이스 관리자 롤을 보유한 경우 데이터베이스 액세스 사용자가 수행할 수 있는 것과 동일한 방식으로 보고서를 사용할 수 있습니다. 또한 작업 메뉴를 사용하여 보고서를 편집 및 삭제할 수 있습니다.

서비스 관리자인 경우 실행 권한 단추를 사용하여 다른 사용자를 가장하고 데이터 액세스를 확인할 수도 있습니다. 이는 다양한 사용자에게 지정된 필터를 테스트하는 데 유용합니다.

MDX 보고서의 예

이 섹션의 MDX 예에서는 MDX 보고서를 사용하여 수행할 수 있는 특수 유형의 분석([임시 분석] 뷰에서는 쉽게 수행할 수 없음)을 보여줍니다.

다음 예는 Sample Basic 큐브에서 작업하도록 설계되었습니다.

메타데이터 보고서

다음 예에서는 메타데이터(데이터를 제외한 멤버 이름)만 반환합니다.

SELECT 
  {[Product].Levels(1).Members} 
ON ROWS, 
  {} 
ON COLUMNS

그리드 반환:

보고서 출력에서는 Product 멤버 100, 200, 300, 400 및 Diet를 보여줍니다.

속성 보고서

다음 예에서는 속성 차원의 멤버를 열에 사용합니다.

SELECT 
 [Product].Children 
ON ROWS, 
 [Ounces].Children 
ON COLUMNS 
WHERE {Sales}

그리드 반환:

보고서 출력에서는 행에 Product 멤버 100, 200, 300, 400 및 Diet를 보여줍니다. 열에는 속성 멤버 Ounces_32, Ounces_20, Ounces_16 및 Ounces_12가 표시됩니다.

필터링된 보고서

다음 예에서는 슬라이서(WHERE 절)를 사용하여 Cola로 질의를 제한합니다. 또한 Filter 함수는 질의의 레벨 0 Market을 Profit이 음수인 Market으로 제한합니다.

SELECT
  { Profit } 
ON COLUMNS,
  Filter( [Market].levels(0).members, Profit < 0) 
ON ROWS
WHERE {Cola}

그리드 반환:

보고서 출력에서는 행에 Market 멤버 Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri 및 Iowa를 보여줍니다. 열에는 Profit이 표시됩니다. 데이터 값은 모두 음수입니다.

UDA 보고서

다음 예에서는 "Major Market"의 UDA(사용자 정의 속성)가 있는 Market 차원 멤버에 대한 Product 데이터를 보여줍니다. 슬라이서(WHERE 절)는 Sales 데이터만 포함하도록 질의를 제한합니다.

SELECT 
  [Product].Children 
ON ROWS, 
  {Intersect(UDA([Market], "Major Market"), [Market].Children)} 
ON COLUMNS 
WHERE {Sales}

그리드 반환:

보고서 출력에서는 행에 Product 멤버 100, 200, 300, 400 및 Diet를 보여줍니다. 열에는 Major Market인 East와 Central이 표시됩니다.

MDX로 데이터 삽입 및 익스포트

MDX는 그리드 기반 분석에 유용할 뿐 아니라 다차원 데이터의 부분 집합을 복사 및 업데이트할 수 있도록 해줍니다.

MDX 삽입 절을 사용하면 MDX로 정의한 계산된(비물리적) 멤버를 사용하여 데이터로 큐브를 업데이트할 수 있습니다.

MDX 익스포트 절을 사용하면 나중에 확인하거나 임포트할 수 있도록 질의 결과를 데이터 부분 집합으로 저장하여 익스포트할 수 있습니다.

MDX 삽입 및 익스포트 문은 저장된 MDX 스크립트로 실행할 수 있습니다.

MDX 삽입 및 익스포트에 대해 자세히 알아보려면 MDX Insert SpecificationMDX Export Specification을(를) 참조하십시오.

MDX 스크립트 실행

삽입 또는 익스포트 데이터 작업을 실행해야 하는 경우 MDX 스크립트를 사용합니다.

그리드 데이터 분석의 경우 MDX 보고서를 사용합니다. MDX 보고서로 데이터 분석을(를) 참조하십시오.

MDX 스크립트를 사용하려면 워크플로우를 선택합니다.

MDX 스크립트 작성, 업로드 및 실행

이 워크플로우를 사용하여 텍스트 편집기에서 MDX 스크립트를 작성하고 Essbase에 업로드합니다.

  1. 텍스트 편집기에서 MDX 스크립트를 작성하고 .mdx 확장자를 사용하여 저장합니다.

  2. Essbase 웹 인터페이스에서 파일 아래의 애플리케이션 또는 큐브 디렉토리로 MDX 스크립트를 업로드합니다.

  3. 작업 또는 Smart View에서 Essbase 리본의 계산을 사용하여 MDX 스크립트를 실행합니다.

스크립트 편집기에서 MDX 스크립트 작성 및 실행

이 워크플로우를 사용하여 큐브의 스크립트 편집기에서 MDX 스크립트를 작성하고 작업에서 실행합니다.

  1. [애플리케이션] 페이지에서 애플리케이션을 열고 데이터베이스(큐브)를 엽니다.

  2. 스크립트를 누르고 MDX 스크립트를 누릅니다.

  3. 생성을 누르고 스크립트의 이름을 입력하고 확인을 누릅니다.

  4. MDX 스크립트를 작성합니다. 멤버 트리 및 함수 목록이 유용합니다.

  5. 스크립트를 검증 및 저장한 다음 스크립트 편집기를 닫습니다.

  6. 작업에서 MDX 스크립트를 실행합니다(MDX 실행 참조). 또는 Smart View를 사용 중인 경우 Essbase 리본의 계산을 사용하여 실행합니다.

  1. [애플리케이션] 페이지에서 애플리케이션 및 큐브를 확장합니다.

  2. 큐브의 [작업] 메뉴에서 검사를 누릅니다.

  3. 스크립트를 누른 다음 MDX 스크립트를 누릅니다.

  4. +를 눌러 스크립트 편집기를 엽니다.

  5. MDX 스크립트를 작성합니다. 멤버 트리 및 함수 목록이 유용합니다.

  6. 스크립트를 검증 및 저장한 다음 스크립트 편집기를 닫습니다.

  7. 작업에서 MDX 스크립트를 실행합니다(MDX 실행 참조). 또는 Smart View를 사용 중인 경우 Essbase 리본의 계산을 사용하여 실행합니다.

Cube Designer에서 MDX 스크립트 생성 및 실행

이 워크플로우에서는 애플리케이션 워크북을 사용하여 MDX 스크립트를 생성하고 작업에서 실행합니다.

  1. 애플리케이션 워크북에서 MDX 워크시트를 생성합니다. Cube Designer에서 MDX 워크시트 작업을(를) 참조하십시오.
  2. 파일 이름 필드에 파일 이름을 추가합니다.
  3. MDX 실행 필드에서 큐브 생성 시점에 MDX를 실행할지 여부를 나타냅니다. 적합한 항목은 아니오입니다.
  4. 스크립트 행 아래에 MDX 스크립트를 추가합니다.
  5. 애플리케이션 워크북을 저장합니다.
  6. 큐브를 빌드합니다. Cube Designer에서 애플리케이션 및 큐브 생성을(를) 참조하십시오.
  7. 작업에서 MDX 스크립트를 실행합니다. 또는 Smart View를 사용 중인 경우 Essbase 리본의 계산을 사용하여 실행합니다.

MDX 스크립트에 대한 지침

MDX 스크립트 작업 시 다음 지침이 적용됩니다.

  • MDX 스크립트를 사용하여 삽입 또는 익스포트 데이터 작업을 수행할 수 있습니다.

  • 그리드 분석의 경우 MDX 스크립트 대신 MDX 보고서를 사용하십시오.

  • 선택적으로 MDX 스크립트에는 런타임 대체 변수가 포함될 수 있습니다.

    • Smart View 내에서 사용할 수 있으려면 런타임 대체 변수를 사용하는 MDX 스크립트가 <RTSV_HINT>를 포함하여 SET RUNTIMESUBVARS 계산 명령 내에서 XML 구문을 사용해야 합니다.

    • Smart View에서 표시되는 데이터 조각만 계산되도록 런타임 대체 변수를 설정하려면 런타임 대체 변수 값을 POV로 설정하고 데이터 유형을 member로 설정합니다.

    • Essbase 웹 인터페이스에서 실행할 때 MDX 스크립트는 대체 변수를 사용할 수 있지만 런타임 대체 변수를 사용할 수 없습니다. MDX 스크립트에서 런타임 대체 변수를 사용하려면 Smart View에서 Essbase 리본의 계산을 사용하여 스크립트를 실행해야 합니다.

대체 변수 사용

MDX 스크립트의 예

다음은 작업 또는 Smart View에서 Sample Basic 큐브에 대해 실행할 수 있는 MDX 스크립트 예입니다.

MDX 삽입

.mdx 스크립트를 저장하고 작업 또는 Smart View계산 대화상자에서 실행할 수 있습니다.

INSERT "([Measures].[Payroll])" TO "([Measures].[Revised_Payroll])"
INTO [Sample].[Basic]
FROM (
       SELECT 
            {[Measures].[Payroll]} ON COLUMNS,
                {Crossjoin
                  (Crossjoin(Descendants([Year]), 
                   Crossjoin(Descendants([Scenario]),
                  Descendants([Product]))),
                  Descendants([Market]))} ON ROWS
       FROM [Sample].[Basic]
);

위 예에서는 이전에 Revised_Payroll 측정단위를 Sample Basic에 추가했다고 가정합니다.

MDX 익스포트

.mdx 스크립트를 저장하고 작업 또는 Smart View계산 대화상자에서 실행할 수 있습니다.

EXPORT INTO FILE "sample01" OVERWRITE
SELECT 
 {[Mar],[Apr]} 
ON COLUMNS,
 Crossjoin({[New York]},
  Crossjoin({[Actual],[Budget]},
     {[Opening Inventory],[Ending Inventory]})) 
ON ROWS
FROM [Sample].[Basic]
WHERE ([100-10])

스크립트를 실행하면 다음 익스포트 파일 sample01.txt가 파일 카탈로그의 큐브 디렉토리에 저장됩니다.

Market,Scenario,Measures,Mar,Apr
New York,Actual,Opening Inventory,2041,2108
New York,Actual,Ending Inventory,2108,2250
New York,Budget,Opening Inventory,1980,2040
New York,Budget,Ending Inventory,2040,2170

런타임 대체 변수를 사용하는 MDX 익스포트

.mdx 스크립트를 저장하고 Smart View계산 대화상자에서 실행합니다.

SET RUNTIMESUBVARS
{
 States = "Massachusetts"<RTSV_HINT><svLaunch>
                    <description>US States</description>
                    <type>member</type>
                    <allowMissing>false</allowMissing>
                    <dimension>Market</dimension>
                    <choice>multiple</choice>
                    </svLaunch></RTSV_HINT>;
};
EXPORT INTO FILE "sample002" OVERWRITE
SELECT
 {[Mar],[Apr]}
ON COLUMNS,
 Crossjoin({&States}, Crossjoin({[Actual],[Budget]},
 {[Opening Inventory],[Ending Inventory]}))
ON ROWS
FROM [Sample].[Basic]
WHERE ([100-10])

스크립트를 실행하면 다음 익스포트 파일 sample002.txt가 파일 카탈로그의 큐브 디렉토리에 저장됩니다.

Market,Scenario,Measures,Mar,Apr
Massachusetts,Actual,Opening Inventory,-54,-348
Massachusetts,Actual,Ending Inventory,-348,-663
Massachusetts,Budget,Opening Inventory,-160,-520
Massachusetts,Budget,Ending Inventory,-520,-910