1. 概述
Cognos Analysics 11,是IBM在Cognos BI 10的版本基礎上,吸取業界流行的敏捷BI理念,強化了自助式分析的一款強大BI開發平台工具。其官方文檔內容豐富,但是較為冗長,新手應對項目過程中客戶的進度要求稍顯捉襟見肘。作為官方文檔的一個補充,我們結合在川高系統大數據分析與應用平台項目過程中的實踐,撰寫了此文。便於有其他類似需求的項目團隊及同事,作為快速參考。
本文檔主要針對初次使用,且對cognos整體和開發流程不太了解的人員,能幫助他們快速上手制作報表。本文將以制作一張普通的固定報表的順序來編寫文檔,制作報表的整體步驟分為兩步:一是數據建模,二是報表制作;
其中數據建模可以有多種方式,如:framework Manager,Cube designer,BI 中的數據模塊等,這里采用傳統的framework Manager設計。
2. 啟動cognos服務
在建模和開發報表之前都需要向啟動cognos的服務,步驟如下:
(1)打開IBM Cognos 配置器
(2)點擊工具欄中的啟動按鈕,然后等待,這里等待時間較長,大概要話費5-10分鍾,等看到工具中的啟動按鈕變成了灰色,則表示已經啟動成功。
(3)記錄下Cognos的訪問地址,在報表開發的時候會用到。即:在資源管理器中選擇環境,如下圖中,Gateway URI后面的地址就是Cognos的訪問地址了:
3. framework manager
這是一個cognos中傳統的數據建模工具,可以處理復雜的關系模型,他的整體流程主要是:
(1)創建“數據源”的鏈接,這里使用MySQL數據庫
(2)從數據源中選中要使用的數據表來建立“元數據”
(3)建立數據表之間的關系模型
(4)根據報表頁面創建業務視圖
(5)根據業務需要創建維度視圖(非必須)
(6)創建“數據包”並發布
3.1. 更新jdbc的jar包
由於cognos 11中默認沒有MySQL的jdbc驅動,所以這里講解一下jdbc驅動的部署方法,下載mysql-connector-java-5.1.42-bin.jar文件,然后將文件復制到Cognos的安裝目錄下的drivers目錄下,如下圖:
3.2. 操作步驟
3.2.1. 打開framework Manager工具
首先在開始菜單中找到並打開framework Manager工具,如下圖:
3.2.2. 新建項目
(1)在“菜單”中點擊“新建”來創建一個項目,如下圖:
(2)選擇模型的語言,如下圖:
(3)選擇“數據源”向導,默認選擇“數據源”選項,如下圖:
3.2.3. 新建數據源
(1)新建“數據源”,如下圖:
(2)為數據源命名后點擊下一步
(3)選擇JDBC連接類型,下一步
(4)選擇MySQL數據庫類型,配置jdbc url 內容,將
jdbc:mysql://<host>:<port>/<database-name>?noAccessToProcedureBodies=true
替換成具體的url,如jdbc:mysql://139.224.42.182:3306/scdp_ciimp?noAccessToProcedureBodies=true
(5)配置數據庫登陸憑證
(6)測試連接連接成功后關閉測試頁面,點擊下一步
(7)點擊完成即可。
關閉數據源向導后,選擇剛剛建立好的數據源,即可進行下一步操作
3.2.4. 選擇數據表
(1)選擇需要使用的表、視圖、存儲過程,這里選用了如下幾張表:
“bis_company,bis_road,rpm_r_accident_probability,mem_r_full_percentage”
(2)點擊下一步,取消“使用組件和外鍵”的選項,否則會創建默認的關系,如果數據庫表未創建外鍵則會報錯,最后點擊“導入”
(3)導入完成后在模型設計界面就能看到導入的相關表了。
3.2.5. 創建名稱空間
“名稱空間”是用來將模型歸類的,有點類似於代碼中的命名空間,通常我們創建三個名稱空間:“元數據”、“業務視圖”、“維度視圖”,這里的名稱可以自定義,這里只是推薦的一種歸類方式,如下圖:
將剛才導入的表全部拖入“元數據”中,如下圖:
3.2.6. 模型結構概覽
整個模型分為四個部分:模型、數據源、參數映射、數據包,整體結構如下,圖中的紅色框部分對應了這四個部分:
3.2.7. 自定義sql查詢主題(可選)
這里科普一下,默認我們導入的“表、視圖、存儲過程”在模型中都以“查詢主題”的方式呈現,所以你可以理解“查詢主題”為一個數據集合。
“查詢主題”分為三類:模型、數據源、存儲過程,如下圖:
(1)這里如果要自定義sql語句的查詢主題,我們需要選擇“數據源”類型的“查詢主題”,默認從數據庫中導入的就是“數據源”類型的。
(2)雙擊需要修改sql的數據源查詢主題,結構如下:
(3)用戶可以選擇插入多個數據源,然后將多個數據源進行sql的拼接,如上圖,我這里采用了兩個數據源“mysql1、mysql內網”,如下圖:
(4)編寫好sql后,需要進行驗證並測試,如下圖:
(5)用戶也可以做“計算”或者“過濾”的操作,其實和我們自己寫sql語句是一樣的原理
3.2.8. 創建關系
創建表與表之間的關系,操作步驟如下:
(1)雙擊“元數據”名稱空間,在中間顯示區域切換為“圖”顯示,如下圖:
(2)點擊右側的工具欄中創建“鏈接”圖標,然后在圖中鼠標左鍵點擊需要創建關系的表不放,拖放到需要創建關聯的表中,打開關系配置框,如:rpm_r_accident_probability <--> bis_road
(3)創建好關系后,用戶點擊驗證我錯誤后,可以切換到“關系SQL”選項中查看拼接的SQL語句,如下圖:
(4)最后查看整體關系圖,如下:
3.2.9. 創建業務視圖
在創建好表關系之后,我們可以針對自己的業務,從“元數據”的表中選擇有用的字段,放入業務視圖的“查詢主題”中,這里主要的工作就是將數據空表的字段映射為中文,並且創建一些計算字段。
(1)在“業務視圖”右鍵,創建“查詢主題”,在彈出框架,輸入名稱和類型選擇“模型”,如下圖:
(2)將左側“元數據”中的查詢項目拖入到右側框中,如下圖:
(3)你也可以自己添加一個“項目”,點擊右下角的“添加”,打開“計算定義”,用戶可以自定義字段的處理,如下圖,我們進行了字段的計數處理:
(4)最后點擊“驗證”查看有沒有配置錯誤,則完成,如下圖:
(5)最后點擊整個“查詢主題”的驗證,如果無問題,則完成。
3.2.10. 創建維度視圖(可選)
“維度視圖”是由“常規維度”和“度量維度”組成;默認是將“業務視圖”中的信息組織在一個層級內(從詳細程度的最高級別到最低級別)
l 常規維度
時間(包含:年、季度、月、周、天),銷售人員(包含:國家/地區、城市、人員名稱)
l 度量維度
度量維度主要是表示度量的數字,如價格,年齡之類
如下圖:
“維度視圖”不是必須創建的,只有當您希望在 IBM Cognos Analysis Studio 中使用關系數據源、在報表中啟用向上鑽取和向下鑽取或訪問工作室中的成員函數時,必須對關系數據源按維度建模。
穩定的關系模型是維度模型的基礎。
3.2.10.1.1. 創建方式
用戶可以在“業務視圖”右鍵添加“度量維度、常規維度”對象
3.2.10.1.2. 常規維度
創建“常規維度”時,在“層級框”中前兩層默認不能綁定數據源,只做當前維度的名稱,從第三層開始定義維度字段,如下圖中的“年”層級,用戶可以在左側模型中選擇需要的“年份”字段,如果該字段不為字符串,則可以使用cast函數進行轉換
並且在“角色”字段選擇“_businessKey(業務鍵)、_memberCaption(標題)”
3.2.10.1.3. 度量維度
創建“度量維度”用戶可以將某類“度量”歸為一類,如:庫存(包含:期初盤存、發運數量、增加、期末盤存等),如下圖:
3.2.11. 創建數據源
在創建好模型后,我們就可以將整個模型打包為“數據包”,並發布到cognos中,進行報表的開發。步驟如下:
(1)在“數據源”選項上右鍵,創建“數據包”,如下圖:
(2)在彈出的數據框中,輸入名稱,點擊下一步,如下圖:
(3)然后配置“名稱空間”的可選項,一般將“元數據”設置為隱藏,點擊下一步,如下圖:
(4)點擊下一步,選擇函數包,默認是全部選擇,直接點擊完成,然后提示是否發布數據包,點擊“是”,進行數據包發布,如下圖:
(5)可以選擇數據包發布的位置,和數據包的版本,處理好后,一直點擊“下一步”,直到發布,在發布時會進行數據包的驗證,如果有錯誤,就不能發布數據包。
3.2.11.1. 修改數據包位置報錯解決方案
當用戶不能修改cognos中的發布位置時,是因為當前用戶沒有權限訪問Cognos中的文件夾位置,所以請在“項目-登陸身份”界面登陸管理員賬號