gdufo

           

          entaho schema workbench Mondrian

          http://www.sjsjw.com/105/000790MYM013012/

          pentaho schema workbench 圖文教程


           
                 通過簡單示例,介紹schema workbench的使用方法。表的示例是從網(wǎng)絡(luò)上找的一個簡單銷售表及產(chǎn)品、產(chǎn)品類別、客戶維度表組成;邏輯簡單易懂。
          1、           創(chuàng)建示例數(shù)據(jù)庫
          1.1.  創(chuàng)建表SQL
          共四張表,一個事實表,三個維度表,創(chuàng)建表的語句如下:
          /**銷售表*/
          create table Sale (
                 saleId intnot null,
                 proId intnull,
                 cusId intnull,
                 unitPricefloat null,     --單價
                 number intnull,   --數(shù)量
                 constraintPK_SALE primary key (saleId)
          )
                 /**用戶表*/
          create table Customer (
                 cusId intnot null,
                 genderchar(1) null,   --性別
                 constraintPK_CUSTOMER primary key (cusId)
          )
          /**產(chǎn)品表*/
          create table Product (
                 proId intnot null,
                 proTypeIdint null,
                 proNamevarchar(32) null,
                 constraintPK_PRODUCT primary key (proId)
          )
          /**產(chǎn)品類別表*/
          create table ProductType (
                 proTypeIdint not null,
                 proTypeNamevarchar(32) null,
                 constraintPK_PRODUCTTYPE primary key (proTypeId)
          )
          1.2.  插入示例數(shù)據(jù)
          insert into Customer(cusId,gender) values(1,'F')
          insert into Customer(cusId,gender) values(2,'M')
          insert into Customer(cusId,gender) values(3,'M')
          insert into Customer(cusId,gender) values(4,'F')
          insert into producttype(proTypeId,proTypeName)values(1,'電器')
          insert into producttype(proTypeId,proTypeName)values(2,'數(shù)碼')
          insert into producttype(proTypeId,proTypeName)values(3,'家具')
          insert into product(proId,proTypeId,proName)values(1,1,'洗衣機(jī)')
          insert into product(proId,proTypeId,proName)values(2,1,'電視機(jī)')
          insert into product(proId,proTypeId,proName)values(3,2,'mp3')
          insert into product(proId,proTypeId,proName)values(4,2,'mp4')
          insert into product(proId,proTypeId,proName) values(5,2,'數(shù)碼相機(jī)')
          insert into product(proId,proTypeId,proName)values(6,3,'椅子')
          insert into product(proId,proTypeId,proName)values(7,3,'桌子')
          insert into sale(saleId,proId,cusId,unitPrice,number)values(1,1,1,340.34,2)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(2,1,2,140.34,1)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(3,2,3,240.34,3)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(4,3,4,540.34,4)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(5,4,1,80.34,5)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(6,5,2,90.34,26)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(7,6,3,140.34,7)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(8,7,4,640.34,28)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(9,6,1,140.34,29)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(10,7,2,740.34,29)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(11,5,3,30.34,28)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(12,4,4,1240.34,72)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(13,3,1,314.34,27)
          insert into sale(saleId,proId,cusId,unitPrice,number)values(14,3,2,45.34,27)
           
          2、           schema概要說明
          Schema 定義了一個多維數(shù)據(jù)庫。包含了一個邏輯模型,而這個邏輯模型的目的是為了書寫 MDX 語言的查詢語句。邏輯模型包括幾個概念: Cubes (立方體)、維度( Dimensions )、層次( Hierarchies )、級別( Levels )、和成員( Members )。而一個 schema 文件就是編輯這個 schema 的一個 xml 文件。在這個文件中形成邏輯模型和數(shù)據(jù)庫物理模型的對應(yīng)。schemaworkbench 工具創(chuàng)建xml文件非常簡單易用。
          3、           通過schema workbench創(chuàng)建schema文件
          3.1、         配置數(shù)據(jù)庫連接
          創(chuàng)建數(shù)據(jù)庫連接,需要事先拷貝數(shù)據(jù)庫驅(qū)動程序到schema workbench目錄下的drivers文件夾中,然后啟動workbench程序,從Optionsàconnection…或者如下圖所示點擊工具欄按鈕。

          輸入連接屬性,測試成功,確定關(guān)閉窗口。
          3.2、         創(chuàng)建schema文件
          從文件菜單或點擊工具欄新建按鈕,創(chuàng)建schema,彈出界面如下:

          給schema命名SaleSchema并保存;
          3.3、         創(chuàng)建cube
          一個 Cube 是一系列維度 (Dimension) 和度量 (Measure) 的集合區(qū)域。在 Cube 中, Dimension 和Measure 的共同地方就是共用一個事實表。
          在左邊視圖中選擇schema節(jié)點,點擊工具欄cube按鈕或右鍵菜單中,增加cube,然后給cube命名SalesCube并保存。

                 在cube節(jié)點上點擊右鍵,增加事實表,選擇相應(yīng)的事實表sale。如下圖:

          點擊工具欄編輯模式按鈕可以切換查看對應(yīng)生成的xml文件。

          3.4、         增加客戶維度
          維度是一個層次( Hierarchies )的集合 , 維度一般有其相對應(yīng)的維度表 . 他的組成是由層次( Hierarchies )而層次( Hierarchies )又是有級別( Level )組成 。在cube上右鍵增加維度,并命名dimCustomer保存。需要選擇foreignKey,即在事實表中用于引用customer表的外鍵。

                 增加對應(yīng)的層次,默認(rèn)已經(jīng)給我們建好了一個層次,展開dimCustomer維度看到。修改層次屬性,名稱可以為空,同時修改 allMemberName,allMemberCaption以及primaryKey字段的值(維表的主鍵);增加維表Customer。

          3.4.1、    增加級別
          是組成 Hierarchy 的部分。屬性很多,并且是 schema 編寫的關(guān)鍵,使用它可以構(gòu)成一個結(jié)構(gòu)樹, Level 的先后順序決定了 Level 在這棵樹上的的位置,最頂層的 Level 位于樹的第一級,依次類推。
           選擇級別對應(yīng)的列名稱即可。

          3.5、         增加產(chǎn)品維度
          因為產(chǎn)品維由兩個表連接而成,稍稍有些復(fù)雜;還是在cube節(jié)點上右鍵增加維度。輸入名稱和事實表中關(guān)聯(lián)外鍵。

                 修改默認(rèn)添加的維度信息,在此維度節(jié)點上右鍵添加join,分別為Product和ProductType.所以需要在維度信息的primaryKeyTable屬性中指明主表。

                 設(shè)定join的左右表,然后設(shè)定join關(guān)聯(lián)建leftKey和rightKey,完成之后,在維度信息設(shè)置primaryKeyTable,則primaryKey自動設(shè)置為proId。

          3.5.1、    增加productId級別
          在維度節(jié)點上右鍵增加級別,填寫相應(yīng)屬性值;級別對應(yīng)的表和列以及顯示列的值,是否為唯一成員。

          3.5.2、    增加productTypeId級別
          同樣步驟設(shè)置productTypeId級別;

          3.6、         添加度量
          Measure 就是我們要計算的數(shù)值,操作的核心內(nèi)容。
          3.6.1、    增加銷售數(shù)量度量
          在cube上右鍵添加度量,輸入字段、數(shù)據(jù)類型及計算方式。

          3.6.2、    增加總銷售額度量
          銷售額是(unitPrice * number)表達(dá)式計算出來的,不能簡單設(shè)置某個列能實現(xiàn),需要在該度量上右鍵添加表達(dá)式,然后編輯表達(dá)式的值來實現(xiàn)。
           

          表達(dá)式內(nèi)容如下:

          3.6.3、    添加計算成員類型度量
          在cube上右鍵添加計算度量。默認(rèn)增加了公式,編輯公式內(nèi)容,同時也給計算成員添加了

          編輯公式的內(nèi)容:

           
          3.7、         驗證xml結(jié)果
          新建mdx query,載入對應(yīng)的schema文件,輸入mdx查詢語句,點擊執(zhí)行測試,沒有錯誤顯示結(jié)果,如下圖所示。
          select
                 {[Measures].saleNumber,[Measures].saleAmount,[Measures].avgPrice}
          oncolumns,
                 {([dimProductType].[allProduct],[dimCustomer].[allCustomer])}
          onrows
          from[salesCube]

          posted on 2016-02-06 18:12 gdufo 閱讀(153) 評論(0)  編輯  收藏

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 曲阜市| 金秀| 阜宁县| 梅河口市| 泗阳县| 麻城市| 双柏县| 沧州市| 烟台市| 绥化市| 嫩江县| 息烽县| 湘潭市| 广灵县| 盘山县| 临高县| 青田县| 九寨沟县| 姜堰市| 南江县| 共和县| 全南县| 张掖市| 清苑县| 绵竹市| 贵德县| 柳林县| 东平县| 孟州市| 工布江达县| 福州市| 江西省| 五指山市| 西乌| 霍城县| 桂林市| 泗水县| 定襄县| 巍山| 合山市| 会同县|