OLAP MDX 學習筆記

來源:互聯網
上載者:User

   MDX主要是用於OLAP查詢語言,全稱:Multi-Dimensional Expression。文法類似於OLTP的結構化查詢語言 (SQL)SQL,但又有很大的區別。看了一下Sql-server的線上說明,結合公司的現有OLAP實現,簡單的學習了一下。
  
   1:概念:階層
   對於其它幾個概念:維度,層級,成員,屬性都比較好理解,只是階層的概念,開始有些模糊。
   實際上,階層處於維度和層級之間,體現的是單一維度可以演化出的多個層級方案。比如產品維度,它可以有 大分類>>明細分類>>產品名稱 一種層級方案,還可以有 分類>>產品名稱 另一種層級方案。這兩種方案就構成了兩種階層。
   在應用中,一般只採用一種層級方案,比如我們公司的OLAP實現產品提供的模型定義,就不體現階層的概念,也就是說,系統只提供

一個階層。想一想,對於OLAP中的某一個主題分析中的某個維度,一般也只會有一種固有層級方案。

   2:文法:
   最基本的文法:select 軸1,軸2,…… from 立方體模型名 where 切片
   可以看到,非常類似於SQL的文法:Select 列1,列2…… from 表1,表2…… where 條件子句。
   首先,需要理解軸的概念:
   軸:相當於SQL裡的列,想象軸,需要有點立體概念,或者,我們把問題簡化,對於平面表的展示,只會存在兩個軸,也就是列軸和行軸。現有的大多數OLAP展示,也只體現這兩個軸,我們公司的產品也不例外。說具體一點,軸對應於一個集合。
   集合:由元組形成,
   元組:可包括多個維度中的成員,也可包括來自同一個維度多個成員。
   成員:維度中一次或多次資料出現的項。

   再看看立方體模型:這個很好理解,也就是主題分析時形成的模型方案了,MDX只支援單一模型。

   最後看一下 切片:這和SQL中的篩選一樣。不過,因為OLAP的資料是立體的,多維的,要變成平面,就需要切啊,切啊,把一些不需要展示的維度設定固定值(也就是切一下)。注意:當不指定任何切片時,一般的實現是將未出現的維度預設成員值做為切片值。

   3:導出成員列
   一般用  With Member 導出成員 as ''  來產生導出成員列,然後在Select中引用。
   as中的運算式,可以使用MDX函數。

   4:MDX函數
   函數很多,除了常見的數值,邏輯,字串處理,特有的是:維度/層次/層級函數,成員函數,彙總函式。
   某些函數是具有很強的業務性的:比如 BottomSum:取出指定和值的底部若干行。這類函數,需要在實際應用在才能體會。

   5:SOLVE_ORDER
   這個用來指定導出成員中的計算行程順序,因為導出成員間有一個計算行程和順序的問題。

   6:成員屬性
   屬性作為一種擴充,也就是將某些列作為維度擴儲值,進行補充說明。一般在定製立方體模型時確定。在我們的實現中,還將屬性作為了一種配置方案,比如 Caption屬性用來作為維度顯示值,Name屬性作為標識值。這個具體要看前端展示的解釋方式

   7:單元屬性
   主要完成儲存格的樣式設定。樣式包括:字型,字串格式,前景,背景……
   單元屬性更多時候只是展示的視圖需要,所以,在實現時也可以在前端處理,比如網格本身的屬性設定。比如,我們現有的實現中,還提供了一種條件的設定,可以通過條件判定進行區分的樣式顯示,滿足特定的展示需求。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.