pentaho學(xué)習(xí)筆記_第1頁(yè)
pentaho學(xué)習(xí)筆記_第2頁(yè)
pentaho學(xué)習(xí)筆記_第3頁(yè)
pentaho學(xué)習(xí)筆記_第4頁(yè)
pentaho學(xué)習(xí)筆記_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、 Pentaho 整 體 架 構(gòu)二、 Client tools1. Report Designer報(bào)表創(chuàng)建工具。如果想創(chuàng)建復(fù)雜數(shù)據(jù)驅(qū)動(dòng)的報(bào)表,這是合適工具。2. Design Studio這是基于eclipse的工具,你可以使用它來(lái)創(chuàng)建手工編輯的報(bào)表或分析視圖xaction 文件,一般用來(lái)對(duì)在report designer中無(wú)法增加修改的報(bào)表進(jìn)行修改。3. Aggregation Designer幫助改善Mondrian cube 性能的圖形化工具。4. Metadata Editor用來(lái)添加定制的元數(shù)據(jù)層到已經(jīng)存在的數(shù)據(jù)源。一般不需要,但是它對(duì)應(yīng)業(yè)務(wù)用戶(hù)在創(chuàng)建報(bào)表時(shí)解析數(shù)據(jù)庫(kù)比較容易。5

2、. Pentaho Data Integration這是kettle etl工具。6. Schema Workbench幫助你創(chuàng)建rolap的圖形化工具。這是為分析準(zhǔn)備數(shù)據(jù)的必須步驟。三、 Pentaho BI suit community editon安裝硬件要求:RAM: At least 2GBHard drive space: At least 1GBProcessor: Dual-core AMD64 or EM64T軟件要求: 需要JRE 1.5版本,1.4版本已經(jīng)不再支持。修改默認(rèn)的端口8080,打開(kāi)biserver-cetomcatconf目錄下的server.xml文件,修改

3、<connector port=8080為你想要的端口號(hào)。同時(shí)在這部分可以調(diào)整Apache Tomcat參數(shù)。在修改了該端口號(hào)后,必須同時(shí)修改tomcatwebappspentahoWEB-INF目錄下的web.xml文件中的<context-param><param-name>base-url</param-name><param-value>http:/localhost:8080/pentaho</param-value></context-param>中的端口號(hào)。否則administration-consol

4、e中不能連接到bi server。四、 配置數(shù)據(jù)庫(kù)連接如果要是pentaho bi server能連接到關(guān)系數(shù)據(jù)庫(kù),需要將相應(yīng)數(shù)據(jù)庫(kù)driver的jar包拷貝到server/biserver-ce/tomcat/common/lib目錄。 為了能在administration console中創(chuàng)建數(shù)據(jù)庫(kù)連接并測(cè)試,需要將相應(yīng)的數(shù)據(jù)庫(kù)driver的jar包拷貝到server/administration console/jdbc目錄。下面是具體關(guān)系數(shù)據(jù)庫(kù)連接設(shè)置說(shuō)明。1、連接oracle數(shù)據(jù)庫(kù)。需要將oracle的driver類(lèi)class12.jar包拷貝到/Pentaho/server/ent

5、erprise-console-server/jdbc/ 或/biserver-ee/server/enterprise-console-server/jdbc/ /Pentaho/server/bi-server/tomcat/common/lib/ 或/biserver-ee/server/bi-server/tomcat/common/lib/目錄。執(zhí)行PentahoServeradministration-console目錄下的start-pac.bat啟動(dòng)admin console或 bi server。在Adminstrator console中配置數(shù)據(jù)庫(kù)連接: 在iE中輸入htt

6、p:/localhost:8099/后進(jìn)入管理界面,點(diǎn)左邊的administrator,在右邊窗口中點(diǎn)database connection進(jìn)入下面的界面。在name中輸入要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)連接的名稱(chēng),在driver class中選擇要使用的driver類(lèi),user name中輸入訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)、password中輸入相應(yīng)的密碼,在url中輸入訪問(wèn)數(shù)據(jù)庫(kù)的連接信息:jdbc:oracle:thin:xzq:1521:oradata。在之前的是固定信息,之后分別是服務(wù)器名稱(chēng)或IP:端口號(hào):數(shù)據(jù)庫(kù)服務(wù)名。2、連接MS Sql server數(shù)據(jù)庫(kù)在iE中輸入http:/localhost:8099/后

7、進(jìn)入管理界面,點(diǎn)左邊的administrator,在右邊窗口中點(diǎn)database connection進(jìn)入下面的界面。在name中輸入要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)連接的名稱(chēng),在driver class中選擇要使用的driver類(lèi),user name中輸入訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)、password中輸入相應(yīng)的密碼,在url中輸入訪問(wèn)數(shù)據(jù)庫(kù)的連接信息:jdbc:Microsoft:sqlserver:/localhost:41433;DatabaseName=GOSLDW。/前的字符是固定的,/后是數(shù)據(jù)庫(kù)服務(wù)器名或ip地址:端口號(hào);DatabaseName=數(shù)據(jù)庫(kù)名。五、 Report Designer創(chuàng)建報(bào)表5.1.

8、 創(chuàng)建步驟第一步:定義數(shù)據(jù)源,創(chuàng)建dataset第二步:定義report layout,report layout有一組band構(gòu)成,包括report header、report footer、group header、group footer以及detail構(gòu)成。第三步:部署報(bào)表到BIserver.5.2. 創(chuàng)建report title在左邊的工具欄上拖一個(gè)label報(bào)表元素到report header band中,雙擊label報(bào)表元素輸入你想要的report title,如圖5-2。你可以在右邊的屬性窗口中對(duì)該title進(jìn)行屬性定義,包括字體大小、顏色、樣式等。圖5-2 創(chuàng)建report

9、 title5.3. 創(chuàng)建column header在report title下加幾個(gè)label報(bào)表元素,構(gòu)成你需要的column header,如圖5.3所示。圖5-3 創(chuàng)建column header5.4. 創(chuàng)建report detail報(bào)表的Detail本身將產(chǎn)生報(bào)表的明細(xì)記錄,這些記錄有dataset提供,因此需要將dataset中的字段拖入report detail band即可,如圖5-4。圖5-4 產(chǎn)生report detail5.5. 創(chuàng)建report summary在 report footer band加上匯總元素的描述標(biāo)簽和相應(yīng)的匯總計(jì)算字段,如圖 5-5所示。這里的關(guān)鍵

10、是需要生產(chǎn)匯總計(jì)算字段,圖中生成了兩個(gè)library count 和total library size,要產(chǎn)生這兩個(gè)匯總字段,需要在右邊data頁(yè)的function中增加function字段,分別利用了count(running)和summary(running)函數(shù)5.6. 畫(huà)布大小設(shè)置點(diǎn)擊菜單file->page setup,出現(xiàn)圖5.6所示的界面,在該界面中可以設(shè)置畫(huà)布的大小圖5.65.7. 創(chuàng)建圖表所有圖表都有一個(gè)show label屬性,默認(rèn)是hide label,在這種情況下,圖表上不會(huì)顯示相應(yīng)的值,圖表上能顯示的值一般有三種情況,分別是0、1、2(對(duì)pie chart有3

11、),分別表示系列的描述、category 描述、項(xiàng)值,如果需要組合顯示,可以采用0,2這樣的格式來(lái)表示。5.7.1. Bar chartBar chart對(duì)比較不同類(lèi)別數(shù)據(jù)的大小是有用的。在左邊的工具按鈕中拖入chart圖標(biāo)到report header,如圖5.7.1圖5.7.1雙擊該圖出現(xiàn)圖5.7.2所示的屬性窗口圖5.7.2 bar chart屬性設(shè)置在左邊窗口中設(shè)置相關(guān)的顯示屬性,在右邊窗口中指定顯示的數(shù)據(jù)字段。這樣就完成了圖形報(bào)表的創(chuàng)建。技巧: Pentaho中的數(shù)據(jù)集是同報(bào)表綁定的,如果想在同一報(bào)表中顯示多張chart報(bào)表,需要利用sub report,在不同的sub report中

12、分別創(chuàng)建報(bào)表完成。5.7.2. 區(qū)域圖(Area chart)區(qū)域圖用于比較兩個(gè)或多個(gè)數(shù)據(jù)集間的差異是有用的。5.7.3. 線性圖(line chart)線性圖對(duì)分析發(fā)展趨勢(shì)是有用的。注意,堆積和堆積百分比(stack and stack percent)不能用于line chart。5.7.4. 餅圖(pie chart)餅圖一般用來(lái)分析不同category占總值的占比分析。餅圖有一個(gè)label format屬性,該屬性值有以下幾種:0:series name,1::series raw value2: percentage value3: total raw value5.7.5. 環(huán)形圖

13、(ring chart)環(huán)形圖類(lèi)似于餅圖,除了它呈現(xiàn)為環(huán)形,而餅圖是實(shí)體填充外,沒(méi)有什么差異。5.7.6. 多餅圖(muti pie chart)根據(jù)category呈現(xiàn)一組餅圖,每一個(gè)category對(duì)應(yīng)一個(gè)餅圖。5.7.7. 瀑布圖(warterfall chart)瀑布圖呈現(xiàn)了唯一一個(gè)跨category的stacked bar chart。這種圖形對(duì)于一個(gè)category同另一個(gè)category進(jìn)行比較時(shí)是有用的。通常最后一個(gè)category等于所有別的category的總和。5.7.8. 條形和線形組合圖(bar line chart)在比較category值的同時(shí)查看趨勢(shì)。這是一個(gè)需

14、要兩個(gè)category 數(shù)據(jù)集的圖形,第一個(gè)產(chǎn)生bar chart,第二個(gè)產(chǎn)生line chart。5.7.9. 冒泡圖(bubble chart)冒泡圖允許你查看三維數(shù)據(jù),前兩維是傳統(tǒng)的X/Y維,也就是域和范圍(domain and range)。第三維代表單個(gè)氣泡的大小。六、 將pentaho的資料庫(kù)遷移到oracle數(shù)據(jù)庫(kù)默認(rèn)情況下是使用HSQLDB數(shù)據(jù)庫(kù)作為pentaho的資料庫(kù)。遷移步驟:1、 將oracle JDBC驅(qū)動(dòng)class12.jar拷貝到.tomcatwebappspentahoWEB-INFlib或.tomcatcommonlib目錄,供pentaho BI服務(wù)器訪問(wèn)o

15、racle 數(shù)據(jù)庫(kù)使用。另外也需要將oracle JDBC驅(qū)動(dòng)拷貝到administration-consolejdbc目錄,否則用戶(hù)不能正常使用pentaho管理控制臺(tái)。2、 初始化Oracle 10g數(shù)據(jù)庫(kù)。依次執(zhí)行下面的sql包,在執(zhí)行sql包前先創(chuàng)建兩個(gè)用戶(hù),quartz/password,用于存儲(chǔ)quartz相關(guān)信息,另一個(gè)用戶(hù)hibuser/password用戶(hù)存儲(chǔ)pentaho bi服務(wù)本身資料庫(kù)。Sql包說(shuō)明:l Create_repository_Ora.sql,用于創(chuàng)建pentaho_tablespace表空間、新增hibuser/password用戶(hù),以及datasour

16、ce 表。l Create_sample_datasource_Ora.sql,往datasource表中增加外部業(yè)務(wù)資料庫(kù)連接信息。l Create_quartz_ora.sql,創(chuàng)建pentaho_user/password用戶(hù),quartz數(shù)據(jù)庫(kù)、quartz表等。3、 修改contex.xml中配置數(shù)據(jù)庫(kù)連接的信息。這個(gè)文件位于biserver-cetomcatwebappspentahoMETA-INF位置。修改該文件中的數(shù)據(jù)庫(kù)連接相關(guān)信息。4、 打開(kāi)biserver-cepentaho-solutionssystemhibernate中的hibernate-settings.xml

17、配置文件,并啟用oracle10g.hibernate.cfg.xml配置文件,配置示例如下。<config-file>system/hibernate/oracle10.cfg.xml</config-file>5、 調(diào)整oracle10g.hibernate.cfg.xml文件,主要是連接數(shù)據(jù)庫(kù)的相關(guān)信息。6、 修改applicationCperties配置文件,它位于biserver-cepentaho-solutionssystem。下面是配置示例。Jdbc.driver=oracle.jd

18、bc.driver.OracleDriverJdbc.url=jdbc:oracle:thinlocalhost:1521:ORCLJdbc.username=hibuserJdbc.password=passwordHibernate.dialect=org.hibernate.dialect.Oracle10Dialect7、 修改perties,位于biserver-cepentaho-solutionssystemquartz目錄。當(dāng)使用oracle存儲(chǔ)quartz的各種信息時(shí),需要啟動(dòng)如下實(shí)現(xiàn)類(lèi),即默認(rèn)的org.quartz.impl.jdbcjobstore.S

19、tdJDBCDelegate被替換成OracleDelegate。Otore.driverDelegateClass=org.quartz.impl.jdbcstore.oracle.OracleDelegate8、 可選地,用戶(hù)需要修改start_hypersonic.bat中的相關(guān)信息。七、 設(shè)置publication口令Pentaho設(shè)置工具用來(lái)定義BI 內(nèi)容,如report 、olap cube和metadata。在這些工具中創(chuàng)建的內(nèi)容文件要部署到BI server上,可以通過(guò)手工拷貝這些內(nèi)容文件到pentaho相應(yīng)的solution文件夾下來(lái)完成

20、部署,但典型的方式還是通過(guò)publication來(lái)完成部署。為了能完成publication,需要設(shè)置相應(yīng)的口令,默認(rèn)情況下是沒(méi)有設(shè)置口令的。為了設(shè)置這個(gè)口令,需要在pentaho-solution/system目錄下的publisher_config.xml文件中添加<publisher-config><publisher-password>password</publisher-password></publisher-config>這個(gè)例子中將 password設(shè)置為”password”。八、 Pentaho Data integratio

21、nPentaho DI包含的主要工具和實(shí)用程序:Spoon 圖形化的DI IDE,用于創(chuàng)建Transformation 和jobKitchen 運(yùn)行job的命令行工具Pan 運(yùn)行transformation的命令行工具Carte 在遠(yuǎn)程主機(jī)上運(yùn)行transformation和job的輕量級(jí)服務(wù)器。默認(rèn)的登錄用戶(hù)是cluster/cluster.可以使用Encr carte <password>修改口令。Carte將登錄用戶(hù)信息存儲(chǔ)在/data-integration/pwd目錄下的kettle.pwd文件中。Encr這個(gè)用來(lái)加密口令,用法為Encr kettle <passw

22、ord>下圖是關(guān)于pentaho DI 各個(gè)工具和組件工作情況說(shuō)明。Data integration engine負(fù)責(zé)解釋和執(zhí)行數(shù)據(jù)集成job和transformation。Data integration engine在物理上是以java庫(kù)的形式存在,前端可以通過(guò)調(diào)用公共的api來(lái)執(zhí)行job和transformation。Data integration engine也包括pentaho BI server,將job和transformation作為 action sequence的一部分來(lái)執(zhí)行。Repository。Job 和transformation可以存儲(chǔ)在數(shù)據(jù)庫(kù)知識(shí)庫(kù)中,前端

23、工具可以通過(guò)連接知識(shí)庫(kù)來(lái)裝載job和tranformation定義。8.1 自動(dòng)連接知識(shí)庫(kù)在user的home目錄下的.kettle目錄中打開(kāi)perties文件,然后添加:KETTLE_REPOSITORY = KETTLE_MD repository nameKETTLE_USER = admin - credential user nameKETTLE_PASSWORD = admin -user password這樣每次啟動(dòng)spoon時(shí),可以自動(dòng)登錄默認(rèn)的repository。8.2使用集群要使用集群,首先要定義相關(guān)的子服務(wù)器(slave server),然后定義cl

24、uster schema,最后將定義好的cluster schema分配給相應(yīng)的Transformation step。8.3創(chuàng)建數(shù)據(jù)庫(kù)連接在spoon IDE中在Transformation 樹(shù)結(jié)構(gòu)中右鍵單擊“數(shù)據(jù)庫(kù)連接”->新建連接或新建數(shù)據(jù)庫(kù)連接向?qū)Щ虬纯旖萱IF3進(jìn)入“創(chuàng)建數(shù)據(jù)連接”窗口。目前支持幾乎所有的數(shù)據(jù)庫(kù)連接。數(shù)據(jù)庫(kù)連接選項(xiàng):1) Connection name:定義轉(zhuǎn)換或者任務(wù)訪問(wèn)的連接的唯一名稱(chēng),可以自行設(shè)置; 2) Connection type:連接的數(shù)據(jù)類(lèi)型; 3) Method of access:可以是Native(JDBC),ODBC,或者OCI,一般選擇J

25、DBC; 4) Server host name:指定數(shù)據(jù)庫(kù)部署的主機(jī)或者服務(wù)器的名稱(chēng),也可以指定 IP 地址; 5)Database name:指定連接的數(shù)據(jù)庫(kù)的名稱(chēng),如果是 ODBC 方式就指定 DSN 名稱(chēng);6)Port number:設(shè)定數(shù)據(jù)庫(kù)監(jiān)聽(tīng)的 TCP/IP 端口號(hào) 7)User name/password:指定連接數(shù)據(jù)庫(kù)的用戶(hù)名和密碼;數(shù)據(jù)庫(kù)用法:8.4 Transformation Step8.4.1. Text File input這個(gè)step用來(lái)讀取各種不同類(lèi)型的text-file類(lèi)型文件,常見(jiàn)的是由excel生成的cvs文件和固定寬度的flat file。該組件提供了指

26、定文件列表或文件目錄列表的能力,支持正則表達(dá)式,還可以接收前面步驟生成的文件。8.4.2. 表輸入(table input)該組件用來(lái)從數(shù)據(jù)庫(kù)獲取信息。主要的屬性有數(shù)據(jù)庫(kù)連接、sql等。在sql中可以使用變量,如果使用了變量,則必須勾選上“替換sql 語(yǔ)句中的變量”選項(xiàng),否則變量不能傳入,sql語(yǔ)句將報(bào)錯(cuò)?!霸试S延遲轉(zhuǎn)換”選項(xiàng)可以避免不必要的數(shù)據(jù)類(lèi)型轉(zhuǎn)換,改善數(shù)據(jù)處理性能。8.4.3. 獲取系統(tǒng)信息(get system info)該組件用來(lái)獲取kettle環(huán)境中可用的信息。8.4.4. 行發(fā)生器(generate rows)產(chǎn)生多行,具體產(chǎn)生多少行可以通過(guò)設(shè)置limit(限制)來(lái)做設(shè)定??梢?/p>

27、通過(guò)field(字段)列表來(lái)指定字段名稱(chēng)及類(lèi)型。8.4.5. 輸入(De-serialize from file,原名cube輸入)從二進(jìn)制的kettle cube文件中讀取記錄行數(shù)據(jù)。8.4.6. XBase輸入使用這一步可以讀取大多數(shù)被稱(chēng)為 XBase family派生的 DBF文件。8.4.7. Excel輸入該組件可以從一個(gè)或多個(gè)excel文件中讀取數(shù)據(jù),可以使用正則表達(dá)式來(lái)指定文件。8.4.8. 插入或更新(insert/update)這個(gè)組件首先使用一個(gè)或多個(gè)對(duì)照key來(lái)查詢(xún)表中的一行,如果找到,則更新,如果沒(méi)有找到則插入。選項(xiàng) 1、 步驟名稱(chēng):步驟的名稱(chēng),在單個(gè)轉(zhuǎn)換中必須唯一。

28、2、連接:目標(biāo)表所在的數(shù)據(jù)庫(kù)連接名稱(chēng)。 3、Target schema:要寫(xiě)入數(shù)據(jù)的表的 Schema 名稱(chēng)。 允許表名中包含 “.”是很重要的。 4、目標(biāo)表:想插入或者更新的表的名稱(chēng)。 5、Commit size:提交之前要改變(插入/更新)的行數(shù)。 6、不執(zhí)行任何更新:如果被選擇,數(shù)據(jù)庫(kù)的值永遠(yuǎn)不會(huì)被更新。僅僅可以插入。 7、用來(lái)查詢(xún)的關(guān)鍵字:可以指定字段值或者比較符??梢杂靡韵卤容^符:=,<>,<,<=,>,LIKE,BETWEEN,IS NULL,IS NOT NULL。 8、更新字段:指定你想要插入/更新的字段8.4.9. 更新(Update)這個(gè)步驟類(lèi)

29、似于插入/更新步驟,除了對(duì)數(shù)據(jù)表不作插入操作之外。它僅僅執(zhí)行更新操作。8.4.10. 刪除(Delete)這個(gè)步驟類(lèi)似于上一步,除了不更新操作。所有的行均被刪除。8.4.11. XML 輸出(XML output)這個(gè)步驟允許你從源中寫(xiě)入行到一個(gè)或者多個(gè) XML 文件。選項(xiàng)8.4.12. 數(shù)據(jù)庫(kù)查詢(xún)(Database lookup)這個(gè)步驟類(lèi)型允許你在數(shù)據(jù)庫(kù)表中查找值。選項(xiàng)步驟名稱(chēng):在單一轉(zhuǎn)換中步驟名稱(chēng)必須唯一。 數(shù)據(jù)庫(kù)連接:想要寫(xiě)入數(shù)據(jù)的連接。 查詢(xún)表:想要查詢(xún)的表名。 使用緩存:數(shù)據(jù)庫(kù)查詢(xún)是否使用緩存。這意味著在某種查詢(xún)值的條件下,每次數(shù)據(jù)庫(kù)都能返回同樣的結(jié)果。8.4.13. 流查詢(xún)(St

30、ream lookup)這個(gè)步驟類(lèi)型允許你從其它步驟中查詢(xún)信息。首先, “源步驟(lookup step)”的數(shù)據(jù)被讀到內(nèi)存中,然后被用來(lái)從主要的流中查詢(xún)數(shù)據(jù)。選項(xiàng)步驟名稱(chēng):在單個(gè)轉(zhuǎn)換中步驟名必須唯一。 源步驟:數(shù)據(jù)來(lái)源的步驟名稱(chēng) 查詢(xún)值所需要的關(guān)鍵字:允許你來(lái)指定用來(lái)查詢(xún)值的字段名稱(chēng)。值總是用“等于”比較符來(lái)搜索。 接收的字段:你可以指定用來(lái)接收字段的名稱(chēng),或者在值沒(méi)有找到的情況下的缺省值,或者你不喜歡舊的字段名稱(chēng)的情況下的新字段名稱(chēng) Preserve Memory:排序的時(shí)候?qū)?shù)據(jù)行進(jìn)行編碼以保護(hù)內(nèi)存 Key and value are exactly one integer field:

31、 排序的時(shí)候?qū)?shù)據(jù)行進(jìn)行編碼以保護(hù)內(nèi)存 Use sorted list:是否用一個(gè)排序列表來(lái)存儲(chǔ)值,它提供更好的內(nèi)存使用。這個(gè)步驟的使用類(lèi)似于數(shù)據(jù)庫(kù)查詢(xún)步驟,區(qū)別在于數(shù)據(jù)庫(kù)查詢(xún)使用的是數(shù)據(jù)庫(kù)表,而流查詢(xún)是從文本文件等數(shù)據(jù)流中查詢(xún)。8.4.14. 調(diào)用數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程(Call DB Procedure)這個(gè)步驟允許你運(yùn)行一個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程,獲取返回結(jié)果。8.4.15. 字段選擇(select value) 該組件對(duì)于選擇、重命名或修改字段的長(zhǎng)度和精度方面很有用。這幾方面被放在了不同的category中,在組件上分別放在不同的tab中。8.4.16. 過(guò)濾記錄(Filter rows)這個(gè)步驟允許

32、你根據(jù)條件和比較符來(lái)過(guò)濾記錄。一旦這個(gè)步驟連接到先前的步驟中,你可以簡(jiǎn)單的單擊“<field>” , “=”和“<value>”區(qū)域來(lái)構(gòu)建條件。選項(xiàng)步驟名稱(chēng):步驟的名稱(chēng),在單一轉(zhuǎn)換中必須唯一。 技術(shù)資料, 【Kette3.0用戶(hù)手冊(cè)】 發(fā)送“true”數(shù)據(jù)給步驟:指定條件返回 true的數(shù)據(jù)將發(fā)送到此步驟。 發(fā)送“false”數(shù)據(jù)給步驟:指定條件返回 false 的數(shù)據(jù)將發(fā)送到此步驟。8.4.17. 空操作(什么也不做)(dummy(do nothing))該組件什么也不做,只是用來(lái)做一些測(cè)試時(shí)的占位符。8.4.18. Row DeNormalizer(行轉(zhuǎn)列)該組件做

33、行轉(zhuǎn)列。在“構(gòu)成分組的字段”中指定分組字段,在“目標(biāo)字段”中指定“目標(biāo)字段”的名稱(chēng),目標(biāo)字段的值字段(從哪個(gè)字段中獲取值)和“關(guān)鍵字值”。如下圖所示的樣例:8.4.19. 列轉(zhuǎn)行(Row normaliser)用于將列轉(zhuǎn)行例如下表的數(shù)據(jù)轉(zhuǎn)換成下表所示的數(shù)據(jù)Row normaliser步驟的設(shè)置如下圖8.4.20. 拆分字段(split field)基于指定的分割符信息進(jìn)行字段拆分。8.4.21. 去重(Unique Rows) 從輸入流中去除重復(fù)的記錄。需要確保輸入流是排了序的,否則只有相鄰連續(xù)的記錄會(huì)去重。8.4.22. 分組(group by)這個(gè)組件用來(lái)根據(jù)一組分組字段進(jìn)行計(jì)算。選項(xiàng)步驟

34、名稱(chēng):步驟的名稱(chēng),在單一轉(zhuǎn)換中必須唯一。 分組字段:指定分組的字段。 聚合:指定需要聚合的字段、方法以及新字段結(jié)果的名稱(chēng) 包含所有的行:如果選擇這個(gè),輸出中就包含所有的行,不僅僅是聚合。臨時(shí)文件目錄:臨時(shí)文件存儲(chǔ)的目錄。 臨時(shí)文件前綴:指定命名臨時(shí)文件時(shí)的文件文件前綴。 添加行號(hào),每一個(gè)分組重啟:如果你想添加行號(hào),就選擇這個(gè)。 字段名行數(shù):指定行號(hào)將插入的字段的名稱(chēng)。8.4.23. 設(shè)置為空值(Null if)如果某個(gè)字符串的值等于指定的值,設(shè)置那個(gè)值為空。8.4.24. 計(jì)算器(Calculator)這個(gè)步驟提供一個(gè)功能列表,可以在字段值上運(yùn)行。 計(jì)算器的一個(gè)重要優(yōu)勢(shì)是,它有著幾倍于常用的

35、JavaScript 腳本的速度。8.4.25. 行扁平化(flattener)這個(gè)操作類(lèi)似行轉(zhuǎn)列(分組字段,對(duì)某一列進(jìn)行行轉(zhuǎn)列)8.4.26. 值映射(value mapper)該組件將值從一個(gè)值映射到另一個(gè)值。通常你想解決存儲(chǔ)一個(gè)數(shù)據(jù)庫(kù)中轉(zhuǎn)換表的問(wèn)題,不管怎么說(shuō),這是一種可選的方案:簡(jiǎn)單的將轉(zhuǎn)換表作為值映射對(duì)話框的一部分。例如將1映射為男,0映射為女等。8.4.27. 數(shù)據(jù)庫(kù)連接(Database Join)這個(gè)步驟允許你使用先前步驟的數(shù)據(jù),運(yùn)行一個(gè)數(shù)據(jù)庫(kù)查詢(xún)。 能夠指定查詢(xún)參數(shù): 在 SQL 查詢(xún)中使用“?” 在 SQL 查詢(xún)中使用數(shù)據(jù)網(wǎng)格中的字段8.4.28. 合并記錄(Merge r

36、ows)該組件可以用來(lái)比較兩個(gè)記錄流。對(duì)于比較兩個(gè)不同時(shí)間點(diǎn)的記錄流是很有用的。常使用在沒(méi)有包含最后更新時(shí)間的數(shù)據(jù)倉(cāng)庫(kù)源系統(tǒng)狀態(tài)中。兩個(gè)記錄流,參照流和比較流進(jìn)行合并,記錄的最后更新版本數(shù)據(jù)被傳給下一個(gè)組件,記錄被標(biāo)記為:identical 在兩個(gè)流中都發(fā)現(xiàn)了key,并且值是一致的。changed在兩個(gè)流中都發(fā)現(xiàn)了key,但是一個(gè)或多個(gè)值不一致。new key在參照流(舊數(shù)據(jù)源)中沒(méi)有發(fā)現(xiàn)deleted key在比較流(新數(shù)據(jù)源)中沒(méi)有發(fā)現(xiàn)。除了deleted狀態(tài)情況,比較流的數(shù)據(jù)傳到下一個(gè)組件中。需要注意的是,兩個(gè)流都需要在指定的key上排序。8.4.29. Merge join對(duì)兩個(gè)不同的

37、輸入組件的數(shù)據(jù)集做合并關(guān)聯(lián)。關(guān)聯(lián)類(lèi)型可以是內(nèi)聯(lián)、左外聯(lián)、右外聯(lián)和全外聯(lián)。需要注意的是,合并join的數(shù)據(jù)記錄需要在指定的key上做排序。8.4.30. Java Script 值(Java Script Value)這個(gè)步驟允許你用 JavaScript 語(yǔ)言做復(fù)雜的運(yùn)算。使用的 JavaScript 引擎是 Rhino 1.5R5。選項(xiàng)步驟名稱(chēng):步驟的名稱(chēng),在單個(gè)轉(zhuǎn)換中必須唯一Java Script:步驟中的腳本。 字段:要添加到輸出流中的字段。8.4.31. Excute SQL Script 可以使用該組件執(zhí)行sql 腳本。可以在整個(gè)Transformation初始化中執(zhí)行一次(一般這種

38、情況用于DDL語(yǔ)句)或在沒(méi)輸入該組件一行記錄時(shí)執(zhí)行一次(這種情況一般用于帶參的DML語(yǔ)句)。 注意:如果sql語(yǔ)句中的腳本失敗,整個(gè)Transformation的執(zhí)行將掛起。8.4.32. 維度更新/查詢(xún)(dimension lookup/update)該組件允許你執(zhí)行Ralph kimball的兩類(lèi)緩慢變化維:第一類(lèi)(update)和第二類(lèi)(insert)。使用該組件不僅可以更新維表,還可以查詢(xún)維表值。8.4.33. Oracle批量裝載(Oracle bulk loader)這個(gè)步驟允許你大批量加載數(shù)據(jù)到 Oracle 數(shù)據(jù)庫(kù),它將用一個(gè)正確的裝載格式,然后用 Oracle的 SQL*Lo

39、ader 數(shù)據(jù)加載工具加載到指定的表中。選項(xiàng)步驟名稱(chēng):步驟的名稱(chēng),在單個(gè)轉(zhuǎn)換中必須唯一。 連接:維表所在數(shù)據(jù)庫(kù)的連接。 目標(biāo)schema: 要寫(xiě)入數(shù)據(jù)的表的 schema 名稱(chēng),表名中可以包含”.”。 Sqlldr path: SQL*Loader 數(shù)據(jù)加載工具的全路徑。 裝載方式: “自動(dòng)加載”或者“手動(dòng)加載” 。如果是“自動(dòng)加載” ,步驟將在用指定的參數(shù)收到所有的輸入后運(yùn)行 Sqlldr 工具。如果是“手動(dòng)加載” ,將生成一個(gè)可以作為后門(mén)使用的控制和數(shù)據(jù)文件。 加載動(dòng)作:Append、Insert、Replace、Truncate。這些會(huì)映射到 sqlddr 的動(dòng)作來(lái)執(zhí)行。 錯(cuò)誤的最大行數(shù)

40、:發(fā)生錯(cuò)誤的行數(shù),這時(shí) sqlldr 將被中斷。與 sqlldr 的“ERROR”屬性來(lái)通信。 提交:提交的行數(shù),與 sqlldr 的“ROWS”屬性通信。 綁定大?。号c sqlldr 的“BINDSIZE”屬性通信。 讀取大小:與 sqlldr 的“READSIZE”屬性通信。 控制文件:sqlldr 控制文件的名稱(chēng)。 數(shù)據(jù)文件:數(shù)據(jù)將被寫(xiě)入的數(shù)據(jù)文件的名稱(chēng)。 日志文件:日志文件的名稱(chēng),可選。 壞文件:壞文件的名稱(chēng),可選。 廢文件:廢文件的名稱(chēng),可選。 編碼:數(shù)據(jù)指定的編碼格式,可以從下拉列表框中選擇。 直接路徑:直接路徑加載的開(kāi)關(guān),與 sqlldr 的“DIRECT=TRUE”通信。 使用

41、后刪除cfg/dat 文件:加載后是否刪除控制文件和數(shù)據(jù)文件的開(kāi)關(guān)。 表字段:ORACLE 表中加載的表字段。 流字段:輸入行中帶來(lái)的字段。8.4.34. 運(yùn)行步驟的多個(gè)副本右鍵單擊每個(gè)Transformation步后都會(huì)出現(xiàn)一個(gè)菜單“改變開(kāi)始復(fù)制的數(shù)量”,可以設(shè)置這個(gè)復(fù)制的數(shù)量,這個(gè)對(duì)于“數(shù)據(jù)庫(kù)查詢(xún)”組件來(lái)說(shuō),可以提高其執(zhí)行的效率。但如果對(duì)于其他的組件,將使輸出結(jié)果記錄數(shù)翻倍,需要特別注意。另外,對(duì)于“數(shù)據(jù)庫(kù)查詢(xún)”組件,如果前一組件采用“數(shù)據(jù)遷移”是“復(fù)制到下一步”而不是“發(fā)送到下一步”也會(huì)造成“數(shù)據(jù)庫(kù)查詢(xún)”組件的輸出記錄翻倍。8.4.35. 問(wèn)題集1、 在“表輸入”組件中,如何從上一步中獲

42、得數(shù)據(jù)替換sql語(yǔ)句中的參數(shù)?2、8.5 任務(wù)條目(Job Entries)8.5.1 圖標(biāo)8.5.2 StartStart 是任務(wù)執(zhí)行的入口,首先必須是任務(wù)可以執(zhí)行。只有無(wú)條件的任務(wù)條目可以從Start 入口連接。8.5.3 Dummy在一個(gè)任務(wù)中使用 Dummy 條目將什么也不做。這可以使一個(gè)任務(wù)更清晰的展示,或者在執(zhí)行循環(huán)中使用。8.5.4 轉(zhuǎn)換你可以用一個(gè)轉(zhuǎn)換任務(wù)條目執(zhí)行一個(gè)先前定義的轉(zhuǎn)換。選項(xiàng)8.5.5 任務(wù)(Job)你可以使用 Job 條目來(lái)運(yùn)行一個(gè)先前定義的任務(wù)。8.5.6 Shell你可以使用 Shell 任務(wù)條目在任務(wù)運(yùn)行的主機(jī)上執(zhí)行一段 Shell 腳本。 備注:Shell

43、 腳本能在控制臺(tái)窗口輸出文本,輸出將轉(zhuǎn)換到 Kettle 日志系統(tǒng),這不會(huì)影響 Shell腳本的運(yùn)行。 備注: Windows 系統(tǒng), 腳本被 “CMD.EXE/C” (NT/XP/20000) 或 “COMMAND.COM/C” (95/98) 。8.5.7 Mail你可以使用 Mail 任務(wù)條目來(lái)發(fā)送 e-Mail。8.5.8 SQL你可以使用 SQL 任務(wù)條目執(zhí)行 SQL 腳本,多行腳本之前用“;”隔開(kāi)。8.5.9 FTP你可以使用 FTP 任務(wù)條目從 FTP 服務(wù)器上獲取一個(gè)或者多個(gè)文件。8.5.10 Table Exists你可以使用 Table exists任務(wù)條目檢驗(yàn)數(shù)據(jù)庫(kù)中是否

44、存在某個(gè)表。8.5.11 File Exists你可以使用File exists任務(wù)條目檢驗(yàn)在Kettle運(yùn)行的服務(wù)器上中是否存在某個(gè)文件。8.5.12 Evaluation(javascript)你可以使用 Evaluation 任務(wù)條目來(lái)計(jì)算一個(gè)布爾型的變量,這個(gè)變量可以在決定下一個(gè)步驟是否將被執(zhí)行時(shí)使用。用戶(hù)可以使用以下變量: Errors:先前的任務(wù)條目的錯(cuò)誤數(shù) Lines_input:從數(shù)據(jù)庫(kù)或者文件讀取的行數(shù) Lines_output:從數(shù)據(jù)庫(kù)或者文件讀取的行數(shù) Lines_updated:數(shù)據(jù)庫(kù)表更新的行數(shù) Lines_read:從先前轉(zhuǎn)換步驟讀取的行數(shù) Lines_writte

45、n:往下一個(gè)轉(zhuǎn)換步驟寫(xiě)入的行數(shù) Files_retrieved:從FTP 找到的文件數(shù) Exit_status:Shell 腳本的退出狀態(tài) Nr(integer):任務(wù)條目數(shù)。每下一個(gè)條目就會(huì)自動(dòng)增長(zhǎng) Is windows:如果Kettle 運(yùn)行在Windows 平臺(tái)上就返回true8.5.13 Create file你可以使用 Create a file任務(wù)條目創(chuàng)建一個(gè)空文件,這對(duì)在任務(wù)中創(chuàng)建“觸發(fā)器”是有用的。8.5.14 Delete file你可以使用 Delete a file 任務(wù)條目來(lái)刪除一個(gè)文件。8.5.15 Wait for file你可以使用 Wait for file任務(wù)

46、條目來(lái)等待一個(gè)文件。這個(gè)任務(wù)條目將定期的檢查指定的文件是否存在,以決定流程是否繼續(xù)。這個(gè)條目可以不確定的等待文件或者經(jīng)過(guò)一過(guò)段時(shí)間后超時(shí)。8.5.16 File compare你可以使用 File compare 任務(wù)條目來(lái)比較兩個(gè)文件的內(nèi)容,控制任務(wù)的流程。當(dāng)兩個(gè)文件相等時(shí),成功流出節(jié)點(diǎn)將繼續(xù),否則失敗節(jié)點(diǎn)將繼續(xù)。8.5.17 Zip files這個(gè)步驟將按照你在對(duì)話框中指定的選擇創(chuàng)建一個(gè)標(biāo)準(zhǔn)的 ZIP 歸檔。選項(xiàng)九、 Metadata layer元數(shù)據(jù)層的用法和范圍。元數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù)以及用戶(hù)定義元數(shù)據(jù)通過(guò)使用PME(pentaho metadata editor)定義并存儲(chǔ)在數(shù)據(jù)庫(kù)中。元數(shù)

47、據(jù)能從知識(shí)庫(kù)中導(dǎo)出成xml文件保存。元數(shù)據(jù)與在pentaho server的pentaho solution相關(guān),它用作基于metadata報(bào)表服務(wù)的源。使用pentaho報(bào)表設(shè)計(jì)工具,終端用戶(hù)可以使用元數(shù)據(jù)創(chuàng)建報(bào)表。當(dāng)運(yùn)行基于pentaho元數(shù)據(jù)報(bào)表時(shí),報(bào)表引擎解釋報(bào)表,查詢(xún)規(guī)范(query specifications)以MQL(Metadata query language)的形式存儲(chǔ)在報(bào)表中。下圖是metadata 層使用范圍概覽。十、 pentaho報(bào)表設(shè)計(jì)工具10.1 報(bào)表架構(gòu)下圖顯示了報(bào)表架構(gòu)的不同組件:報(bào)表設(shè)計(jì)器定義報(bào)表規(guī)范報(bào)表規(guī)范以xml的格式存放。報(bào)表引擎根據(jù)報(bào)表規(guī)范和輸出

48、格式執(zhí)行報(bào)表。數(shù)據(jù)庫(kù)連接定義能使用標(biāo)準(zhǔn)的中間件如JDBC來(lái)連接不同的數(shù)據(jù)源。在報(bào)表的最后階段,報(bào)表查詢(xún)被report engine直接執(zhí)行。Pentaho不僅包含了執(zhí)行pentaho 報(bào)表的能力,而且還包含了jasper report 和BIRT報(bào)表的類(lèi)庫(kù)。Pentaho報(bào)表引擎通常叫做JFreeReport,其設(shè)計(jì)器完全就是JFree Report 設(shè)計(jì)器的再造版,被稱(chēng)為pentaho report Designer(PRD)。10.2 基于web的報(bào)表(web-based reporting)Pentaho web 門(mén)戶(hù)(web portal)不僅提供了查看和分析內(nèi)容,而且也提供了特殊報(bào)表

49、(ad hoc report)的能力。使用基本web的報(bào)表工具能創(chuàng)建的報(bào)表只限于沒(méi)有圖形、交叉和圖片的分組列表。這種web工具官方名字叫Web Ad hoc query and reporting client,簡(jiǎn)稱(chēng) WAQR。WAQR只能使用metadata model工作,它必須首先發(fā)布到服務(wù)器。WAQR模板存儲(chǔ)在pentaho-solutions/system/waqr/templates目錄,每個(gè)模板都存儲(chǔ)在它自己的目錄下,增加自己的模板比較容易的方法就是拷貝其中一個(gè)文件夾然后再重命名它。可以手工修改模板,關(guān)于手工修改模板可以參考10.3 Pentaho Report Designer

50、Pentaho report Designer是一款圖形化的前端報(bào)表設(shè)計(jì)工具。它的好處之一是可以使用metadata作為數(shù)據(jù)源進(jìn)行報(bào)表編輯。報(bào)表可以直接使用report designer發(fā)布到pentaho BI平臺(tái)。新的.prpt文件由pentaho server自動(dòng)生成,因此不需要額外的包裝就可以使PRD報(bào)表運(yùn)行在門(mén)戶(hù)網(wǎng)站上。有兩種方式創(chuàng)建報(bào)表:l The New optionl The Report Wizard報(bào)表的基本部分:l Page header/report footer。任何放在這部分中的元素都會(huì)出現(xiàn)在每一頁(yè)。Page behavior style屬性能指定page head

51、er或page footer顯示在第一頁(yè)還是最后一頁(yè)或都不顯示。l Report Header/Footer。任何放在這部分的內(nèi)容都只會(huì)顯示一次。Report header的典型用法是首頁(yè),顯示所有參數(shù)或報(bào)表的簡(jiǎn)單簡(jiǎn)介或report title。Report footer用于報(bào)表的total。l Group Header/Footer。一張報(bào)表至少會(huì)有一個(gè)分組,每組會(huì)有一個(gè)header和footer來(lái)放置組標(biāo)簽或小計(jì)(subtotal)。分組可以嵌套,創(chuàng)建一個(gè)層級(jí)報(bào)表。l Details Body。只有最里層分組包含明細(xì)體,它包含來(lái)自查詢(xún)的每一行記錄,detail header和detail

52、footer也是明細(xì)體的一部分。l No Data。這是一種特殊的數(shù)據(jù)帶,顯示無(wú)查詢(xún)結(jié)果時(shí)的顯示信息。l Watermark。這個(gè)主要用來(lái)設(shè)置背景。一張PRD只能包含一個(gè)Data set,但是一張報(bào)表可以包含子報(bào)表。合并或使用子報(bào)表的的數(shù)據(jù)到主報(bào)表是不可能的。10.3.1 創(chuàng)建數(shù)據(jù)庫(kù)連接有三種入口創(chuàng)建數(shù)據(jù)庫(kù)連接:l Data 菜單->add data sourcel Data tab->add datasources按鈕l Data Tab->右鍵單擊Data set10.3.2 創(chuàng)建SQL Query在創(chuàng)建或編輯Data source的界面中,右邊有創(chuàng)建query 的按鈕,

53、點(diǎn)增加query按鈕可以創(chuàng)建SQL Query,如下圖:10.3.3 增加參數(shù)有以下兩種途徑進(jìn)入增加參數(shù)窗口:9、 Data菜單->add parameter10、 右邊Data Tab->右鍵parameters-> add parameter 增加參數(shù)窗口Name中輸入?yún)?shù)名Label是在運(yùn)行時(shí)參數(shù)前的提示標(biāo)簽Value type指定參數(shù)的值類(lèi)型Data format是指定值的格式Default value指定參數(shù)的缺省值Mandatory如果選上,參數(shù)是必須的Hidden指定該參數(shù)是否需要顯示在頁(yè)面上Display type-指定參數(shù)顯示的方式,是單選下拉框還是多選下拉

54、框或文本輸入等。Query-指定參數(shù)的值以及顯示的內(nèi)容從哪個(gè)query獲得,如果是文本輸入,可以不指定。增加參數(shù)后,可以在query中使用該參數(shù),使用方式$parameterName十一、 保護(hù)pentaho管理控制臺(tái)1、 管理員賬號(hào)設(shè)置管理員賬號(hào)信息存儲(chǔ)在/resource/config目錄下的perties文件中,其格式如下:admin: OBF:1cb01j1s1kmy1jnb1wn31jk71kjo1iz21caa,server-administrator,content-administrator,admin其中admin是用戶(hù)名,OBF是其相應(yīng)的密碼??梢允褂孟旅?/p>

55、的命令來(lái)重新設(shè)置賬號(hào)及其相應(yīng)的密碼。java -cp lib/jetty-6.1.2.jar;lib/jetty-util-6.1.9.jar org.mortbay.jetty.security.Password admin Admin1234執(zhí)行該命令需要進(jìn)入administration-console目錄。執(zhí)行后將生成的OBF拷貝入perties中覆蓋現(xiàn)有的值即可。2、 使用ssl協(xié)議為了啟用https,只需要修改resource/config目錄下perties文件中的console.ssl.enabled=false設(shè)置為true。十二、 Pentaho PSW(pentaho schema worbench)121安裝PSW下載相關(guān)軟件,解壓即可。在解壓后,需要把連接數(shù)據(jù)庫(kù)相關(guān)驅(qū)動(dòng)程序的Jar包文件拷貝到d

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論