數(shù)倉建模—建模工具PdMan
數(shù)據(jù)倉庫系列文章(持續(xù)更新)
數(shù)倉架構(gòu)發(fā)展史 數(shù)倉建模方法論 數(shù)倉建模分層理論 數(shù)倉建模—寬表的設計 數(shù)倉建模—指標體系 數(shù)據(jù)倉庫之拉鏈表 數(shù)倉—數(shù)據(jù)集成 數(shù)倉—數(shù)據(jù)集市 數(shù)倉—商業(yè)智能系統(tǒng) 數(shù)倉—埋點設計與管理 數(shù)倉—ID Mapping 數(shù)倉—OneID 數(shù)倉—AARRR海盜模型 數(shù)倉—總線矩陣 數(shù)倉—數(shù)據(jù)安全 數(shù)倉—數(shù)據(jù)質(zhì)量 數(shù)倉—數(shù)倉建模和業(yè)務建模
工欲善其事,必先利其器,所以開始數(shù)倉建模之前我們還是要選擇一個合適的建模工具,江湖上混怎么能沒有一個響亮的名號和趁手的武器呢,PDMan就是我們要介紹的工具。后面我們還會介紹其他建模工具,你選擇一個合適的就行。
PDMan是一款開源免費的數(shù)據(jù)庫模型建模工具,支持Windows,Mac,Linux等操作系統(tǒng),是PowerDesigner之外,更好的免費的替代方案。他具有顏值高,使用簡單的特點。包含數(shù)據(jù)庫建模,靈活自動的自動生成代碼模板,自動生成文檔等多種開發(fā)人員實用的功能。
PDMan已全面升級至CHINER
開始之前我們開始先介紹一下這個工具本身,后面再看怎么使用它以及它的特性,其實CHINER就是PDMan的升級版本,我們可以先看一下界面
這是PDMan 的項目管理界面,我們看到也是分項目管理的,可以選擇打開已有的項目

項目打開后的界面,其實功能還是比較簡單的,主要就是模型的設計,包含兩塊
表設計 關(guān)系設計

名稱由來
第一個(公開發(fā)行名稱):PDMan: Physical Data Model Manager(物理模型管理) 第二個(內(nèi)部使用名稱):SINOPER: SINO Popular Entity Relation(中國最流行的實體關(guān)系圖工具),目前該軟件發(fā)行版,底層很多代碼為該詞前綴。 第三個(公開發(fā)行名稱):CHINER: CHINESE Entity Relation(國產(chǎn)實體關(guān)系圖工具),為方便國內(nèi)普及,中文名稱為:元數(shù)建模,也作:"CHINER[元數(shù)建模]"公開使用。
CHINER 的特點
體系結(jié)構(gòu)重新設計,結(jié)構(gòu)顛覆,但是對原PDMan做到高度兼容。 精細的界面布局及操作優(yōu)化,更好看,更簡單,更好用。 增加實用新功能(如導入PowerDesigner等),功能更強大,生態(tài)兼容性更好。
功能介紹
因為CHINER 是PDMan 的升級版本,所以我們這里直接介紹CHINER
自帶入門參考案例
首頁自帶兩個典型參考案例,方便用戶快速了解軟件支持的功能以及特性。

管理對象
數(shù)據(jù)表及字段
提供簡潔直觀的數(shù)據(jù)表以及字段管理及操作,左側(cè)列表支持拖動排序,數(shù)據(jù)表更多設置支持增加表備注,擴展屬性列表,例如提供對Hive的支持,如下圖:

多表關(guān)聯(lián)的視圖
視圖由多個表結(jié)合而成,支持多表以及字段的選擇,如下圖:

視圖及來源數(shù)據(jù)表,如下圖:

可定制的數(shù)據(jù)類型及數(shù)據(jù)域
可擴展的數(shù)據(jù)類型,并且支持多種數(shù)據(jù)庫方言的適配,如下圖:
這個主要是解決拓展性的,也就是我們可以根據(jù)擴展不同的數(shù)據(jù)庫進來

數(shù)據(jù)域,用于設置同一類具有特定業(yè)務含義的數(shù)據(jù)類型,其實這個是很重要的,我們在做數(shù)倉建模的過程中是需要統(tǒng)一字段命名和字段類型,如下圖:

數(shù)據(jù)標準(字段庫)
標準字段庫用于解決常用字段記錄,方便用戶建立數(shù)據(jù)表時,能夠從常用字段庫里直接拖入數(shù)據(jù)表中。標準字段庫可以用戶自行添加,也可以從現(xiàn)有數(shù)據(jù)表中移到標準字段庫中,其實這個是很重要的,我們在做數(shù)倉建模的過程中是需要統(tǒng)一字段命名和字段類型
如下圖所示:

標準字段庫支持導出JSON文件,也支持從JSON文件中導入,以解決共享交流問題。
數(shù)據(jù)字典(代碼映射表)
增加了數(shù)據(jù)字典支持,用于解決對字段元數(shù)據(jù)更清晰的解析闡述,如下圖:

數(shù)據(jù)表字段可以直接關(guān)聯(lián)數(shù)據(jù)字典,如下圖所示:

項目組織形式(多模塊模式以及不分模塊模式)
簡單項目,不需要分模塊,直接分為數(shù)據(jù)表,視圖,關(guān)系圖,數(shù)據(jù)字典即可,復雜項目需要折分為一個一個獨立的模塊,系統(tǒng)對這兩種形式均給予支持。簡單模式,如下圖:

分模塊形式,如下圖:

關(guān)系圖
其實當前版本的關(guān)系圖的可視化相比PDMan 就好看很多了,而且還支持了折線
ER關(guān)聯(lián)關(guān)系圖
數(shù)據(jù)實體關(guān)聯(lián)關(guān)系圖,該關(guān)聯(lián)關(guān)系圖需要人工手動維護,如下圖所示:

簡單的概念模型圖
支持簡單的概念模型圖,概念模型圖實體只保存在關(guān)系圖上,不保持實體對象,如下圖所示:

概念模型圖,主要用于快速勾勒系統(tǒng)的關(guān)鍵業(yè)務對象關(guān)系圖,用于快速整體理解數(shù)據(jù)模型。
同一模塊多張關(guān)系圖
同一個模塊,可以支持多張多種形式的關(guān)系圖:

畫布設計界面
分組框及以備注框
分組框,用于對數(shù)據(jù)表或者實體進行分類,能夠更清晰的了解數(shù)據(jù)表的層次結(jié)構(gòu),如下圖:

文字以及背景顏色設置
備注框,為普通矩形框,用于對數(shù)據(jù)表或者業(yè)務場景進行解釋說明,如下圖:

代碼模板
不同數(shù)據(jù)庫方言的DDL
通過代碼模板引擎,實現(xiàn)可擴展的數(shù)據(jù)庫方言支持,如下圖:
MySQL

ORACLE

SQLServer

擴展屬性支持類似Hive

JavaBean代碼生成

可定制化可編輯的代碼模板引擎
代碼模板引擎基于doT.js構(gòu)建,如下圖:

提供代碼預覽編輯,以便能夠及時預覽代碼模板的效果,如下圖:

生態(tài)對接-導入
數(shù)據(jù)庫逆向
連接數(shù)據(jù)庫,逆向解析數(shù)據(jù)庫,支持數(shù)據(jù)庫中文注釋的解析。連接數(shù)據(jù)庫,如下圖:

解析數(shù)據(jù)列表清單,如下圖:

解析數(shù)據(jù)表結(jié)果,如下圖:

導入PDMan文件
支持PDMan的導入,支持數(shù)據(jù)表,關(guān)系圖,數(shù)據(jù)域的高度還原。導入列表選擇,如下圖:

導入后結(jié)果,如下圖:

PDMan原始情況,如下圖:

導入PowerDesigner文件
導入PowerDesigner,支持數(shù)據(jù)表,數(shù)據(jù)域的高度還原(不支持關(guān)系圖還原),如下圖:

數(shù)據(jù)表選擇,如下圖:

最終導入后結(jié)果,如下圖:

生態(tài)對接-導出
導出DDL
導出DDL,用于解決一次性導出指定數(shù)據(jù)表,針對指定數(shù)據(jù)庫方言的導出,如下圖:

導出WORD文檔及模板可定制
將當前數(shù)據(jù)表,關(guān)系圖,數(shù)據(jù)字典導出至WORD文檔,如下圖:

導出結(jié)果,如下圖:

關(guān)系圖導出圖片
實現(xiàn)將當前畫布的關(guān)系圖,導出為PNG圖片。
全局搜索及定位
字段及關(guān)鍵字,數(shù)據(jù)字典等的全局搜索,如下圖:

更多特性
多語言
中文,如下圖:

英文,如下圖:

語言設置,如下圖:

新建表默認初始化字段

表編輯一次性設置多個數(shù)據(jù)域

總結(jié)
PDMan(CHINER) 是一款優(yōu)秀的國產(chǎn)開源軟件,能滿足我們在建模過程中80%的需求; PDMan 本身上手簡單,學習成本低; 下一節(jié)我們從頭開始使用PDMan設計一個模型;
