다차원 eXpression
MultiDimensional eXpressions다차원 표현식(MDX)은 데이터베이스 관리 시스템을 이용한 온라인 분석 처리(OLAP)를 위한 쿼리 언어다. SQL과 마찬가지로 OLAP 큐브를 위한 쿼리 언어다.[1] 또한 스프레드시트 수식과 유사한 구문을 가진 계산 언어이기도 하다.
배경
다차원 eXpression(MDX) 언어는 OLAP 큐브에 저장된 다차원 데이터를 쿼리하고 조작하기 위한 전문 구문을 제공한다.[1] 이것들 중 일부를 전통적인 SQL로 번역하는 것은 가능하지만, 그것은 종종 매우 단순한 MDX 표현에도 서투른 SQL 표현식의 합성을 요구할 것이다. MDX는 대다수의 OLAP 벤더에 의해 채택되어 OLAP 시스템의 표준이 되었다.
역사
MDX는 1997년 마이크로소프트로부터 OLAP용 OLE DB 규격의 일부로 처음 도입되었다. 그것은 Mosha Pasumansky를 포함한 SQL Server 엔지니어 그룹에 의해 발명되었다. 이 규격은 1998년 Microsoft OLAP Services 7.0 상용 출시 이후 마이크로소프트 Analysis Services에 의해 신속하게 출시되었다. OLE DB for OLAP 규격의 최신 버전은 1999년에 마이크로소프트에 의해 발행되었다.
개방형 표준이 아니라 오히려 마이크로소프트 소유의 사양이었지만, 다양한 OLAP 벤더에 의해 채택되었다.
XML for Analysis 규격은 MDX Query Language에 대한 자세한 내용을 위해 OLE DB for OLAP 규격을 다시 참조했다. Analysis Services 2005에서 마이크로소프트는 하위 선택 항목과 같은 일부 MDX Query Language 확장을 추가했다. Microsoft Excel 2007과 같은 제품들은 이러한 새로운 MDX Query Language 확장을 사용하기 시작했다. 어떤 이들은 MDX의 새로운 변형을 MDX 2005라고 부른다.
mdXML
2001년에 XMLA 위원회는 mdXML을 쿼리 언어로 포함하는 XML for Analysis(XMLA) 표준을 발표했다. XMLA 1.1 규격에서 mdXML은 기본적으로 XML로 포장된 MDX이다. <Statement> 꼬리표를 달다
MDX 데이터 유형
MDX에는 6가지 기본 데이터 유형이 있다.
- 스칼라. 스칼라는 숫자 또는 문자열이다. 리터럴(예: 번호 5 또는 문자열 "OLAP")으로 지정하거나 MDX 함수로 반환할 수 있다.
Aggregate(숫자),UniqueName(끈),.Value(숫자 또는 문자열) 등 - 치수/히에라제. 치수는 큐브의 차원이다. 치수는 큐브에 있는 측정 및 속성 정보의 일차적인 조직이다. MDX는 차원 간의 종속성을 알지 못하거나 전혀 가정하지 않는다 - 그것들은 상호 독립적이라고 가정한다. 차원은 수준을 포함하는 일부 계층 또는 계층에 구성된 일부 구성원(아래 참조)을 포함한다. 고유한 이름(예: )으로 지정할 수 있다.
[Time]또는 MDX 함수에 의해 반환될 수 있다(예:.Dimension계층 구조는 큐브의 차원 계층 구조다. 고유한 이름(예: )으로 지정할 수 있다.[Time].[Fiscal]또는 MDX 함수에 의해 반환될 수 있다(예:.Hierarchy. 계층 구조는 치수 내에 포함되어 있다. (OLAP MDX 규격의 OLEDB는 치수 데이터 유형과 계층 데이터 유형을 구분하지 않는다. Microsoft Analysis Services와 같은 일부 구현에서는 이를 다르게 취급한다.) - 레벨. 레벨은 차원 계층 구조에서 레벨이다. 고유한 이름(예: )으로 지정할 수 있다.
[Time].[Fiscal].[Month]또는 MDX 함수에 의해 반환될 수 있다(예:.Level. - 구성원. 구성원은 차원 계층의 구성원이다. 고유한 이름(예: )으로 지정할 수 있다.
[Time].[Fiscal].[Month].[August 2006], 정규화된 이름(예:[Time].[Fiscal].[2006].[Q3].[August 2006]또는 MDX 함수에 의해 반환됨(예:.PrevMember,.Parent,.FirstChild기타. 모든 구성원은 계층에 특정된다는 점에 유의하십시오. 자체 동일한 제품이 두 개의 다른 계층의 멤버인 경우([Product].[ByManufacturer]그리고[Product].[ByCategory](), 세트와 튜플로 조정해야 할 수 있는 두 개의 다른 구성원이 보일 것이다(아래 참조). - 투플. 투플은 서로 다른 차원으로 구성된 하나 이상의 멤버의 순서 모음입니다. 튜플은 예를 들어 멤버를 열거하여 지정할 수 있다.
([Time].[Fiscal].[Month].[August], [Customer].[By Geography].[All Customers].[USA], [Measures].[Sales])또는 MDX 함수에 의해 반환됨(예:.Item. - Set. Set는 마이크로소프트의 구현의 경우 동일한 차원성, 즉 계층성을 가진 튜플의 순서 모음입니다. 예를 들어 튜플을 열거하는 것을 지정할 수 있다.
{([Measures].[Sales], [Time].[Fiscal].[2006]), ([Measures].[Sales], [Time].[Fiscal].[2007])}또는 MDX 함수 또는 연산자에 의해 반환됨(예:Crossjoin,Filter,Order,Descendants등 - 기타 데이터 유형. 멤버 속성은 데이터 웨어하우스 의미 속성과 동일하다. 쿼리의 축 PROPERTIES 절을 통해 쿼리의 이름으로 검색할 수 있다. 일부 멤버에 대한 멤버 속성의 스칼라 데이터 값은 속성 이름을 지정하여 MDX를 통해 표현식으로 액세스할 수 있다(예:
[Product].CurrentMember.[Sales Price]) 또는 특수 액세스 함수를 사용(예:[Product].CurrentMember.Properties("Sales Price"). 제한된 컨텍스트에서 MDX는 다른 데이터 유형도 허용한다. 예를 들어 어레이는 내부에서 사용될 수 있다.SetToArrayMDX에서 처리되지 않고 ActiveX 라이브러리의 사용자 정의 함수에 전달되는 배열을 지정하는 함수. 다른 데이터 유형의 개체는 Microsoft의 측정 그룹 이름과 같은 개체 이름을 나타내는 스칼라 문자열로 표시됨MeasureGroupMeasures예를 들어, Microsoft의 기능 또는 KPI 이름KPIValue또는KPIGoal기능들
쿼리 예
다음 예제는 SQL Server 2000 Books Online에서 채택한 것으로 SELECT 문을 사용하는 기본 MDX 쿼리를 보여준다. 이 쿼리는 캘리포니아 주에 있는 상점의 2002년과 2003년 판매 금액을 포함하는 결과 집합을 반환한다.
선택 { [방안].[스토어 세일즈] } 켜기 기둥, { [날짜].[2002], [날짜].[2003] } 켜기 행 From 판매의 어디에 ( [저장하다].[미국].[CA] ) 이 예에서 쿼리는 다음과 같은 결과 집합 정보를 정의한다.
- SELECT 절은 쿼리 축을 Measures 차원의 Store Sales 멤버와 Date 차원의 2002 및 2003 멤버로 설정한다.
- FROM 절은 데이터 소스가 Sales 큐브임을 나타낸다.
- WHERE 조항은 "slicer 축"을 스토어 차원의 캘리포니아 구성원으로 정의한다.
참고: MDX 쿼리에 최대 128개의 쿼리 축을 지정할 수 있다.
두 개의 축을 만들 경우, 한 축은 열 축이어야 하고 한 축은 행 축이어야 하는데, 질의 내에 어떤 순서로 나타나든 상관없다. 축이 하나만 있는 쿼리를 만들 경우 열 축이어야 한다. 특정 개체 식별자를 둘러싼 대괄호는 개체 식별자가 예약된 단어 중 하나가 아니고 문자, 숫자 또는 밑줄 이외의 문자를 포함하지 않는 한 선택 사항이다.
선택 [방안].[스토어 세일즈] 켜기 기둥, [날짜].회원들 켜기 행 From 판매의 어디에 ( [저장하다].[미국].[CA] ) 참조
- ^ a b Carl Nolan. "Manipulate and Query OLAP Data Using ADOMD and Multidimensional Expressions". Microsoft. Retrieved 2008-03-05.
추가 읽기
- 조지 스포포드, 시바쿠마르 하리나스, 크리스 웹, 딜런 하이황, 프란체스코 시바디: MDX-솔루션: Microsoft SQL Server Analysis Services 2005 및 Hyperion Essbase와 함께 사용. 2006년, ISBN 0-471-74808-0
- Mosha Pasumansky, Mark Whitehorn, Rob Zare: Fast Track to MDX. ISBN 1-84628-174-1
- Larry Sackett: SAP NetWeaver BW를 사용한 MDX 보고 및 분석. SAP Press, 2008, 978-1-59229-249-3