pentaho schema workbench 圖文教程,

來源:互聯網
上載者:User

pentaho schema workbench 圖文教程,
pentaho schema workbench 圖文教程

 

       通過簡單樣本,介紹schema workbench的使用方法。表的樣本是從網路上找的一個簡單銷售表及產品、產品類別、客戶維度資料表組成;邏輯簡單易懂。

1、           建立樣本資料庫

1.1.  建立表SQL

共四張表,一個事實表,三個維度資料表,建立表的語句如下:

/**銷售表*/

create table Sale (

       saleId intnot null,

       proId intnull,

       cusId intnull,

       unitPricefloat null,     --單價

       number intnull,   --數量

       constraintPK_SALE primary key (saleId)

)

       /**使用者表*/

create table Customer (

       cusId intnot null,

       genderchar(1) null,   --性別

       constraintPK_CUSTOMER primary key (cusId)

)

/**產品表*/

create table Product (

       proId intnot null,

       proTypeIdint null,

       proNamevarchar(32) null,

       constraintPK_PRODUCT primary key (proId)

)

/**產品類別表*/

create table ProductType (

       proTypeIdint not null,

       proTypeNamevarchar(32) null,

       constraintPK_PRODUCTTYPE primary key (proTypeId)

)

1.2.  插入樣本資料

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,'數位')

insert into producttype(proTypeId,proTypeName)values(3,'傢具')

insert into product(proId,proTypeId,proName)values(1,1,'洗衣機')

insert into product(proId,proTypeId,proName)values(2,1,'電視機')

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,'數位相機')

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 定義了一個多維資料庫。包含了一個邏輯模型,而這個邏輯模型的目的是為了書寫 MDX 語言的查詢語句。邏輯模型包括幾個概念: Cubes (立方體)、維度( Dimensions )、層次( Hierarchies )、層級( Levels )、和成員( Members )。而一個 schema 檔案就是編輯這個 schema 的一個 xml 檔案。在這個檔案中形成邏輯模型和資料庫物理模型的對應。schemaworkbench 工具建立xml檔案非常簡單易用。

3、           通過schema workbench建立schema檔案

3.1、         設定資料庫串連

建立資料庫連接,需要事先拷貝資料庫驅動程式到schema workbench目錄下的drivers檔案夾中,然後啟動workbench程式,從Optionsàconnection…或者如所示點擊工具列按鈕。

輸入串連屬性,測試成功,確定關閉視窗。

3.2、         建立schema檔案

從檔案菜單或點擊工具列建立按鈕,建立schema,彈出介面如下:

給schema命名SaleSchema並儲存;

3.3、         建立cube

一個 Cube 是一系列維度 (Dimension) 和度量 (Measure) 的集合地區。在 Cube 中, Dimension 和Measure 的共同地方就是共用一個事實表。

在左邊視圖中選擇schema節點,點擊工具列cube按鈕或右鍵菜單中,增加cube,然後給cube命名SalesCube並儲存。

       在cube節點上點擊右鍵,增加事實表,選擇相應的事實表sale。如:

點擊工具列編輯模式按鈕可以切換查看對應產生的xml檔案。

3.4、         增加客戶維度

維度是一個層次( Hierarchies )的集合 , 維度一般有其相對應的維度資料表 . 他的組成是由層次( Hierarchies )而層次( Hierarchies )又是有層級( Level )組成 。在cube上右鍵增加維度,並命名dimCustomer儲存。需要選擇foreignKey,即在事實表中用於引用customer表的外鍵。

       增加對應的層次,預設已經給我們建好了一個層次,展開dimCustomer維度看到。修改層次屬性,名稱可以為空白,同時修改allMemberName,allMemberCaption以及primaryKey欄位的值(維表的主鍵);增加維表Customer。

3.4.1、    增加層級

是組成 Hierarchy 的部分。屬性很多,並且是 schema 編寫的關鍵,使用它可以構成一個結構樹, Level 的先後順序決定了 Level 在這棵樹上的的位置,最頂層的 Level 位於樹的第一級,依次類推。

 選擇層級對應的列名稱即可。

3.5、         增加產品維度

因為產品維由兩個表串連而成,稍稍有些複雜;還是在cube節點上右鍵增加維度。輸入名稱和事實表中關聯外鍵。

       修改預設添加的維度資訊,在此維度節點上右鍵添加join,分別為Product和ProductType.所以需要在維度資訊的primaryKeyTable屬性中指明主表。

       設定join的左右表,然後設定join關聯建leftKey和rightKey,完成之後,在維度資訊設定primaryKeyTable,則primaryKey自動化佈建為proId。

3.5.1、    增加productId層級

在維度節點上右鍵增加層級,填寫相應屬性值;層級對應的表和列以及顯示列的值,是否為唯一成員。

3.5.2、    增加productTypeId層級

同樣步驟設定productTypeId層級;

3.6、         添加度量

Measure 就是我們要計算的數值,操作的核心內容。

3.6.1、    增加銷售數量度量

在cube上右鍵添加度量,輸入欄位、資料類型及計算方式。

3.6.2、    增加總銷售額度量

銷售額是(unitPrice * number)運算式計算出來的,不能簡單設定某個列能實現,需要在該度量上右鍵添加運算式,然後編輯運算式的值來實現。

 

運算式內容如下:

3.6.3、    添加導出成員類型度量

在cube上右鍵添加計算度量。預設增加了公式,編輯公式內容,同時也給導出成員添加了

編輯公式的內容:

 

3.7、         驗證xml結果

建立mdx query,載入對應的schema檔案,輸入mdx查詢語句,點擊執行測試,沒有錯誤顯示結果,如所示。

select

       {[Measures].saleNumber,[Measures].saleAmount,[Measures].avgPrice}

oncolumns,

       {([dimProductType].[allProduct],[dimCustomer].[allCustomer])}

onrows

from[salesCube]


相關文章

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.