決策支援圖表工具FineBI如何讀取資料庫轉義?

決策支援圖表工具FineBI的資料庫中存放的資料是從實際業務的發生過程中產生的,但是資料在儲存過程中,儲存的欄位名和表名卻不一定是實際業務過程或業務名稱,一般都需要轉換為縮寫的英文,而在使用決策支援圖表工具FineBI資料庫中的資料時,這些縮寫的欄位名和表名的可讀性就非常差,所以資料庫管理員在建立資料表的時候就會建立一種註釋來轉義資料,註釋中描述了欄位名和表名的實際名稱等等資訊。

決策支援圖表工具FineBI在業務包從資料庫中取數時,為了增強資料的可讀性,將資料轉換為業務人員能夠理解的含義,提供了讀取資料錶轉義功能,能夠將註釋轉義資料讀取出來,並作用在Cube的資料上,提升資料的可讀性,能夠一目瞭然的知道該資料表和欄位中儲存了什麼資料。

在決策支援圖表工具FineBI中,註釋轉義資料一般都放在資料庫的註釋中,但是有些資料的註釋轉義資料卻是存在資料庫表中或者excel中,所以決策支援圖表工具FineBI提供兩種不同的方法來讀取兩種不同儲存位置的註釋轉義資料。資料庫中的註釋可通過業務包管理介面的讀取資料庫轉義功能直接讀取,而存在資料庫表中或者excel中的註釋則通過伺服器資料集實現,下面詳細介紹:

工具/原料

決策支援圖表工具FineBI

方法/步驟

1. 直接讀取資料庫轉義

單擊BIdemo業務包,進入決策支援圖表工具FineBI的資料表管理介面,可以看到資料表名稱均為英文名,如下圖:

點選右下角的讀取資料庫轉義按鈕,業務包就會從資料庫中讀取轉義註釋,如下圖,BIdemo業務包中的9個表中,有18個列名有轉義:

點選分公司資訊(region)則會看到該表中所屬辦事處欄位名添加了一個轉義,如下圖:

注:讀取資料庫轉義後,其對應資料儲存在%BI_HOME%\WEB-INF\resources\bi_connection.xml資料夾中,如果要刪除轉義資料,直接刪除xml檔案即可。

決策支援圖表工具FineBI如何讀取資料庫轉義

決策支援圖表工具FineBI如何讀取資料庫轉義

決策支援圖表工具FineBI如何讀取資料庫轉義

3. 讀取資料庫表或excel中註釋轉義資料

如果決策支援圖表工具FineBI的註釋轉義資料並不直接存在資料表的註釋裡面,而是單獨的放置在某一個數據表或者excel中,如下圖,在mysql資料庫中有2張表,transfer和transferfield表,裡面分別存著oracl資料庫中的幾個表名的註釋轉義和SALES1K表字段名稱的註釋轉義:

· transfer:

· transferfield:

決策支援圖表工具FineBI如何讀取資料庫轉義

決策支援圖表工具FineBI如何讀取資料庫轉義

3.新建資料連線

上圖中的兩張表分別是oracle資料庫中某些表名稱的轉義和sales1K表中欄位名的轉義,首先在BI屬性配置中新增2個數據連線,一個註釋轉義表所在資料庫mysql,另一個是被轉義資料所在的oracle資料資料庫。

點選資料配置>資料連線管理,進入決策支援圖表工具FineBI的資料連線管理介面,點選新建資料連線,建立2個數據連線,一個oracle資料連線,與oracle資料庫相連線,另一個mysqltest,與mysql資料庫相連線,如下圖:

建立資料連線詳細請檢視決策支援圖表工具FineBI的配置資料連線。

決策支援圖表工具FineBI如何讀取資料庫轉義

4.資料表名稱轉義

開啟%BI_HOME%/WEB-INF/resources/datasource.xml,手動在xml中為工程新增一個伺服器資料集,名字為__bi_translated_table_names__,該資料集有四個固定欄位:

connection_name:被註釋轉義的資料表所在的資料連線;

schema_name:被註釋轉義資料所在資料庫的模式,針對於oracle資料庫,如果資料庫沒有模式選項,使用NULL代替;

table_name:儲存在資料庫中表的名稱,一般為英文;

translated_table_name:註釋轉義資料中對資料庫中表的轉義名稱,一般為中文。

注:資料集名稱,欄位名稱均不可改變。

將上面mysql資料連線中的transfer表的註釋轉義資料新增到__bi_translated_table_names__資料集中,其中被轉義資料所在的資料連線名為oracle,資料庫模式為scott。SQL語句如下:

select 'oracle' as connection_name, 'scott' as schema_name, table_en as table_name, table_ch as translated_table_name from transfer

在xml檔案的 標籤中新增一個__bi_translated_table_names__伺服器資料集的xml語句,語句如下:

注:由於transfer表中沒有connection_name和schema_name對應的註釋,所以往這兩個欄位中新增常量,要注意使用單引號,如果不是被轉義資料所在資料庫中沒有模式選項,schema_name常量使用NULL。

另:如果xml中沒有 標籤,則手動新增即可

決策支援圖表工具FineBI如何讀取資料庫轉義

決策支援圖表工具FineBI如何讀取資料庫轉義

5. 資料表字段名稱轉義

類似於決策支援圖表工具FineBI的資料表名稱轉義,欄位名稱轉義也需要新增一個伺服器資料集,名稱為__bi_translated_field_names__,該資料集有五個固定欄位:

connection_name:同資料表名稱轉義;

schema_name:同資料表名稱轉義;

table_name:同資料表名稱轉義;

field_name:存在資料庫中資料實際的欄位名稱,一般為英文;

translated_field_name:註釋轉義資料對資料庫中欄位名的轉義名稱,一般為中文。

注:資料集名稱,欄位名稱均不可改變。

將上面mysql資料庫中的transferfield表的註釋轉義資料新增到__bi_translated_field_names__資料集中,SQL語句如下:

select 'oracle' as connection_name, 'scott' as schema_name, table_field as table_name, field_name_en as field_name, field_name_ch as translated_field_name from transferfield

類似於資料表名稱轉義的xml語句,資料表字段名轉義也需要在datasource.xml中的 標籤中新增一段xml語句,如下:

新增完成之後,重啟伺服器,datasource.xml才能生效。

決策支援圖表工具FineBI如何讀取資料庫轉義

6. 業務包讀取轉義資料

點選資料配置>業務包管理,在決策支援圖表工具FineBI中新增一個業務包,選中oracle資料連線,將上述transfer表中的table_en欄位中涉及到的表以及transferfield表中table_field欄位中涉及到的表均新增至業務包中,業務包命名為BIdemo2,如下圖:

注:選擇oracle資料庫新增資料表時,首先要先選擇好模式,這裡全部是scott模式。

點選讀取資料庫轉義,頁面會彈出如下提示框提示使用者是否從伺服器資料集中讀取轉義:

點選確定,外部資料表中的轉義通過2個伺服器資料集讀取進BIdemo2業務包中。

注:上圖的提示框,點選確定,FineBI業務包就去伺服器資料集中讀取外部資料表中的轉義資料,那麼資料表內部的轉義資料就不會讀取,如果點選取消,那麼就會去讀取資料表內部的轉義資料,所以如果既要讀取內部轉義資料,又要讀取外部轉義資料,操作兩次即可。

決策支援圖表工具FineBI如何讀取資料庫轉義

決策支援圖表工具FineBI如何讀取資料庫轉義

7. 效果檢視

點選確定之後,資料表名稱和欄位名稱轉義都已經被讀取進來,如下圖:

注:資料表名稱和欄位名稱的轉義既可以直接從資料庫中讀取,也可以手動新增,詳細請檢視決策支援圖表工具FineBI手動設定表和欄位的轉

決策支援圖表工具FineBI如何讀取資料庫轉義

相關問題答案