數倉建模—建模工具PdMan(CHINER)介紹
數據倉庫系列文章(持續更新)
- 數倉架構發展史
- 數倉建模方法論
- 數倉建模分層理論
- 數倉建模—寬表的設計
- 數倉建模—指標體系
- 數據倉庫之拉鏈表
- 數倉—數據集成
- 數倉—數據集市
- 數倉—商業智能系統
- 數倉—埋點設計與管理
- 數倉—ID Mapping
- 數倉—OneID
- 數倉—AARRR海盜模型
- 數倉—總線矩陣
- 數倉—數據安全
- 數倉—數據質量
- 數倉—數倉建模和業務建模
工欲善其事,必先利其器,所以開始數倉建模之前我們還是要選擇一個合適的建模工具,江湖上混怎麼能沒有一個響亮的名號和趁手的武器呢,PDMan就是我們要介紹的工具。後面我們還會介紹其他建模工具,你選擇一個合適的就行。
PDMan是一款開源免費的數據庫模型建模工具,支持Windows,Mac,Linux等操作系統,是PowerDesigner之外,更好的免費的替代方案。他具有顏值高,使用簡單的特點。包含數據庫建模,靈活自動的自動生成代碼模板,自動生成文檔等多種開發人員實用的功能。
PDMan已全面升級至CHINER
開始之前我們開始先介紹一下這個工具本身,後面再看怎麼使用它以及它的特性,其實CHINER就是PDMan的升級版本,我們可以先看一下界面
這是PDMan 的項目管理界面,我們看到也是分項目管理的,可以選擇打開已有的項目
項目打開後的界面,其實功能還是比較簡單的,主要就是模型的設計,包含兩塊
- 表設計
- 關係設計
名稱由來
- 第一個(公開發行名稱):PDMan: Physical Data Model Manager(物理模型管理)
- 第二個(內部使用名稱):SINOPER: SINO Popular Entity Relation(中國最流行的實體關係圖工具),目前該軟件發行版,底層很多代碼為該詞前綴。
- 第三個(公開發行名稱):CHINER: CHINESE Entity Relation(國產實體關係圖工具),為方便國內普及,中文名稱為:元數建模,也作:”CHINER[元數建模]“公開使用。
CHINER 的特點
- 體系結構重新設計,結構顛覆,但是對原PDMan做到高度兼容。
- 精細的界面布局及操作優化,更好看,更簡單,更好用。
- 增加實用新功能(如導入PowerDesigner等),功能更強大,生態兼容性更好。
功能介紹
因為CHINER 是PDMan 的升級版本,所以我們這裡直接介紹CHINER
自帶入門參考案例
首頁自帶兩個典型參考案例,方便用戶快速了解軟件支持的功能以及特性。
管理對象
數據表及字段
提供簡潔直觀的數據表以及字段管理及操作,左側列表支持拖動排序,數據表更多設置支持增加表備註,擴展屬性列表,例如提供對Hive的支持,如下圖:
多表關聯的視圖
視圖由多個表結合而成,支持多表以及字段的選擇,如下圖:
視圖及來源數據表,如下圖:
可定製的數據類型及數據域
可擴展的數據類型,並且支持多種數據庫方言的適配,如下圖:
這個主要是解決拓展性的,也就是我們可以根據擴展不同的數據庫進來
數據域,用於設置同一類具有特定業務含義的數據類型,其實這個是很重要的,我們在做數倉建模的過程中是需要統一字段命名和字段類型,如下圖:
數據標準(字段庫)
標準字段庫用於解決常用字段記錄,方便用戶建立數據表時,能夠從常用字段庫里直接拖入數據表中。 標準字段庫可以用戶自行添加,也可以從現有數據表中移到標準字段庫中,其實這個是很重要的,我們在做數倉建模的過程中是需要統一字段命名和字段類型
如下圖所示:
標準字段庫支持導出JSON文件,也支持從JSON文件中導入,以解決共享交流問題。
數據字典(代碼映射表)
增加了數據字典支持,用於解決對字段元數據更清晰的解析闡述,如下圖:
數據表字段可以直接關聯數據字典,如下圖所示:
項目組織形式(多模塊模式以及不分模塊模式)
簡單項目,不需要分模塊,直接分為數據表,視圖,關係圖,數據字典即可,複雜項目需要折分為一個一個獨立的模塊,系統對這兩種形式均給予支持。 簡單模式,如下圖:
分模塊形式,如下圖:
關係圖
其實當前版本的關係圖的可視化相比PDMan 就好看很多了,而且還支持了折線
ER關聯關係圖
數據實體關聯關係圖,該關聯關係圖需要人工手動維護,如下圖所示:
簡單的概念模型圖
支持簡單的概念模型圖,概念模型圖實體只保存在關係圖上,不保持實體對象,如下圖所示:
概念模型圖,主要用於快速勾勒系統的關鍵業務對象關係圖,用於快速整體理解數據模型。
同一模塊多張關係圖
同一個模塊,可以支持多張多種形式的關係圖:
畫布設計界面
分組框及以備註框
分組框,用於對數據表或者實體進行分類,能夠更清晰的了解數據表的層次結構,如下圖:
文字以及背景顏色設置
備註框,為普通矩形框,用於對數據表或者業務場景進行解釋說明,如下圖:
代碼模板
不同數據庫方言的DDL
通過代碼模板引擎,實現可擴展的數據庫方言支持,如下圖:
MySQL
ORACLE
SQLServer
擴展屬性支持類似Hive
JavaBean代碼生成
可定製化可編輯的代碼模板引擎
代碼模板引擎基於doT.js構建,如下圖:
提供代碼預覽編輯,以便能夠及時預覽代碼模板的效果,如下圖:
生態對接-導入
數據庫逆向
連接數據庫,逆向解析數據庫,支持數據庫中文注釋的解析。 連接數據庫,如下圖:
解析數據列表清單,如下圖:
解析數據表結果,如下圖:
導入PDMan文件
支持PDMan的導入,支持數據表,關係圖,數據域的高度還原。 導入列表選擇,如下圖:
導入後結果,如下圖:
PDMan原始情況,如下圖:
導入PowerDesigner文件
導入PowerDesigner,支持數據表,數據域的高度還原(不支持關係圖還原),如下圖:
數據表選擇,如下圖:
最終導入後結果,如下圖:
生態對接-導出
導出DDL
導出DDL,用於解決一次性導出指定數據表,針對指定數據庫方言的導出,如下圖:
導出WORD文檔及模板可定製
將當前數據表,關係圖,數據字典導出至WORD文檔,如下圖:
導出結果,如下圖:
關係圖導出圖片
實現將當前畫布的關係圖,導出為PNG圖片。
全局搜索及定位
字段及關鍵字,數據字典等的全局搜索,如下圖:
更多特性
多語言
中文,如下圖:
英文,如下圖:
語言設置,如下圖:
新建表默認初始化字段
表編輯一次性設置多個數據域
總結
- PDMan(CHINER) 是一款優秀的國產開源軟件,能滿足我們在建模過程中80%的需求;
- PDMan 本身上手簡單,學習成本低;
- 下一節我們從頭開始使用PDMan設計一個模型;