增強(qiáng)E-R
數(shù)據(jù)管理DMS的增強(qiáng)E-R功能基于DMS自研的統(tǒng)一Catalog的元數(shù)據(jù)采集引擎、列算子血緣解析引擎(解析字段間關(guān)聯(lián)、依賴和影響關(guān)系的引擎)和數(shù)據(jù)資產(chǎn)知識(shí)圖譜構(gòu)建等核心能力,可清晰地展現(xiàn)您名下某個(gè)數(shù)據(jù)庫(kù)內(nèi)資產(chǎn)之間的關(guān)聯(lián)關(guān)系。本文介紹了增強(qiáng)E-R功能的優(yōu)勢(shì)、應(yīng)用場(chǎng)景以及使用方法。
前提條件
支持的數(shù)據(jù)庫(kù)實(shí)例類型:RDS MySQL、RDS PostgreSQL、RDS MariaDB、PolarDB MySQL版、PolarDB PostgreSQL版、AnalyticDB for MySQL、AnalyticDB for PostgreSQL。
數(shù)據(jù)庫(kù)實(shí)例所在地域:華東1(杭州)、華北2(北京)、華東2(上海)、華南1(深圳)、華北3(張家口)、華北1(青島)、西南1(成都)、華北5(呼和浩特)、華南2(河源)、華北6(烏蘭察布)、華南3(廣州)、華東6(福州)、華東5(南京)。
數(shù)據(jù)庫(kù)實(shí)例的管控模式為安全協(xié)同。管控模式的詳細(xì)信息,請(qǐng)參見(jiàn)管控模式。
背景信息
E-R圖(Entity Relationship Diagram)也稱實(shí)體關(guān)系圖,是一種用來(lái)描述實(shí)體、屬性和關(guān)系的模型。數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)階段需要繪制數(shù)據(jù)庫(kù)的E-R圖,并將E-R圖轉(zhuǎn)換為多張數(shù)據(jù)庫(kù)表,存儲(chǔ)各表的主、外鍵。E-R圖能較好的描述業(yè)務(wù)數(shù)據(jù)中的關(guān)聯(lián)關(guān)系、數(shù)據(jù)庫(kù)存儲(chǔ)表和字段之間的依賴和關(guān)聯(lián)關(guān)系,并通過(guò)此關(guān)系將業(yè)務(wù)或數(shù)據(jù)庫(kù)存儲(chǔ)的邏輯關(guān)系沉淀到數(shù)據(jù)庫(kù)設(shè)計(jì)中。
隨著業(yè)務(wù)規(guī)模的增大和數(shù)據(jù)庫(kù)外鍵性能的降低,越來(lái)越多的系統(tǒng)設(shè)計(jì)采用應(yīng)用系統(tǒng)來(lái)保障業(yè)務(wù)之間的依賴關(guān)系,導(dǎo)致數(shù)據(jù)庫(kù)的外鍵信息并不會(huì)真正的沉淀到數(shù)據(jù)庫(kù)外鍵設(shè)計(jì)上,不易通過(guò)實(shí)際數(shù)據(jù)庫(kù)的外鍵信息看到業(yè)務(wù)數(shù)據(jù)表中的邏輯關(guān)系,進(jìn)而影響您梳理數(shù)據(jù)庫(kù)內(nèi)的表之間真實(shí)的邏輯關(guān)系。
數(shù)據(jù)管理DMS的增強(qiáng)E-R可以清晰地展示出業(yè)務(wù)數(shù)據(jù)之間、數(shù)據(jù)庫(kù)存儲(chǔ)表和字段之間的關(guān)聯(lián)、依賴和影響關(guān)系,并將此關(guān)系通過(guò)表結(jié)構(gòu)中的邏輯關(guān)系沉淀到數(shù)據(jù)庫(kù)設(shè)計(jì)中。
應(yīng)用場(chǎng)景
快速梳理出數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)間的關(guān)系。
導(dǎo)出增強(qiáng)E-R圖,作為項(xiàng)目數(shù)據(jù)設(shè)計(jì)的資料。
通過(guò)查看敏感數(shù)據(jù)的傳遞方式,避免敏感信息二次加工后泄露。
通過(guò)查看數(shù)據(jù)之間的依賴關(guān)系,盡早發(fā)現(xiàn)數(shù)據(jù)變更的風(fēng)險(xiǎn)。
通過(guò)查看數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,可輔助構(gòu)建數(shù)倉(cāng)寬表。
通過(guò)查看數(shù)據(jù)之間的加工關(guān)系,查看數(shù)據(jù)的加工鏈路。
通過(guò)查看數(shù)據(jù)之間的引用關(guān)系,識(shí)別數(shù)據(jù)庫(kù)中的冷、熱資產(chǎn)。
注意事項(xiàng)
此功能開(kāi)通后的T+1日,才可查看E-R圖。
增強(qiáng)E-R僅可感知到在DMS中輸入或變更的數(shù)據(jù)表、字段信息,并將其之間的關(guān)聯(lián)、影響和依賴關(guān)系展示在頁(yè)面,感知不到在程序代碼等其他端輸入或變更的信息。
費(fèi)用說(shuō)明
該功能不收費(fèi)。但該功能僅支持安全協(xié)同模式的實(shí)例使用,安全協(xié)同管控模式是計(jì)費(fèi)商品。
功能優(yōu)勢(shì)
DMS的增強(qiáng)E-R與傳統(tǒng)E-R的構(gòu)建方案不同,除了具有傳統(tǒng)E-R的能力,還具有基于DMS自研的統(tǒng)一Catalog的元數(shù)據(jù)采集器、列算子血緣解析器和數(shù)據(jù)資產(chǎn)知識(shí)圖譜的構(gòu)建能力,這些能力可以幫助您挖掘出數(shù)據(jù)資產(chǎn)之間更多潛在的關(guān)聯(lián)關(guān)系。
DMS構(gòu)建了百億級(jí)別以上的數(shù)據(jù)節(jié)點(diǎn)和關(guān)系的資產(chǎn)圖譜,結(jié)合多種數(shù)據(jù)資產(chǎn)業(yè)務(wù)應(yīng)用場(chǎng)景,并提供對(duì)應(yīng)的查詢和可視化服務(wù)。
使用方法
傳統(tǒng)E-R
DMS具有傳統(tǒng)E-R能力,可以基于數(shù)據(jù)庫(kù)中的物理外鍵構(gòu)建E-R圖。如下操作步驟為您演示如何實(shí)現(xiàn)傳統(tǒng)E-R。
- 登錄數(shù)據(jù)管理DMS 5.0。
單擊首頁(yè)左側(cè)的數(shù)據(jù)庫(kù)實(shí)例,在實(shí)例列表中選擇目標(biāo)實(shí)例。
單擊目標(biāo)實(shí)例,左鍵雙擊目標(biāo)數(shù)據(jù)庫(kù)名稱,進(jìn)入SQL Console頁(yè)面。
在該頁(yè)面構(gòu)建測(cè)試數(shù)據(jù)。分別為表ods_huiyuan_t1(簡(jiǎn)稱t1)、ods_huiyuan_t2(簡(jiǎn)稱t2)、ods_huiyuan_t3(簡(jiǎn)稱t3)、ods_huiyuan_t4(簡(jiǎn)稱t4)和ods_huiyuan_fk。在SQL Console頁(yè)面執(zhí)行如下SQL:
/*創(chuàng)建表*/ CREATE TABLE `ods_huiyuan_t1` ( `id` int NOT NULL AUTO_INCREMENT comment '用戶id', `user_name` varchar(255) DEFAULT NULL comment '用戶名字', `english_name` varchar(255) DEFAULT NULL comment '用戶英文名', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員1表' CREATE TABLE `ods_huiyuan_t2` ( `id` int NOT NULL AUTO_INCREMENT comment '用戶id', `user_name` varchar(255) DEFAULT NULL comment '用戶名字', `tel_number` varchar(255) DEFAULT NULL comment '用戶電話號(hào)', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員2表' CREATE TABLE `ods_huiyuan_t3` ( `id` int NOT NULL AUTO_INCREMENT comment '用戶id', `birth_date` varchar(255) DEFAULT NULL comment '出生日期', `age` varchar(255) DEFAULT NULL comment '用戶年齡', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員3表' CREATE TABLE `ods_huiyuan_t4` ( `id` int NOT NULL AUTO_INCREMENT comment '用戶id', `address` varchar(255) DEFAULT NULL comment '用戶地址', `postcode` varchar(255) DEFAULT NULL comment '郵編', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員4表' CREATE TABLE `ods_huiyuan_fk` ( `id` int NOT NULL AUTO_INCREMENT comment '自增id', `user_id` int NOT NULL comment '用戶id', `school` varchar(255) DEFAULT NULL comment '用戶畢業(yè)學(xué)校', PRIMARY KEY (`id`), CONSTRAINT fk_user_id FOREIGN KEY(user_id) REFERENCES ods_huiyuan_t1(id) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員外鍵測(cè)試表' /*插入數(shù)據(jù)*/ INSERT INTO `ods_huiyuan_t1` (`id`,`user_name`,`english_name`) VALUES (1,'唐雪',' Caspar Jiracek'), (2,'傅強(qiáng)鈞',' Willem Skatcher'), (3,'麻婕',' Maje Pennell'); INSERT INTO `ods_huiyuan_t2` (`id`,`user_name`,`tel_number`) VALUES (1,'唐雪','1640116****'), (2,'傅強(qiáng)鈞','1640116****'), (3,'麻婕','1970429****'); INSERT INTO `ods_huiyuan_t3` (`id`,`birth_date`,`age`) VALUES (1,'19870718','35'), (2,'19900608','32'), (3,'19870101','35'); INSERT INTO `ods_huiyuan_t4` (`id`,`address`,`postcode`) VALUES (1,'晉邦省遼河市蜀鋒路4987號(hào)戳真流小區(qū)11單元0000室','842768'), (2,'漢東省京州市勉斡韓路5238號(hào)纜攢小區(qū)5單元0000室','520241'), (3,'寧熙省東顧市辟緣路514號(hào)話贓榔小區(qū)11單元0000室','432298'); INSERT INTO `ods_huiyuan_fk` (`id`,`user_id`,`school`) VALUES (10001,1,'中國(guó)農(nóng)業(yè)大學(xué)'), (10002,2,'中南大學(xué)'), (10003,3,'南京農(nóng)業(yè)大學(xué)');
T+1日后,在SQL Console頁(yè)面查看增強(qiáng)E-R。查看的具體操作,請(qǐng)參見(jiàn)查看增強(qiáng)E-R。
在此基礎(chǔ)上,還具有列算子血緣解析、任務(wù)編排的能力,并且可以通過(guò)這三種能力實(shí)現(xiàn)DMS的增強(qiáng)E-R功能。如下介紹實(shí)現(xiàn)DMS增強(qiáng)E-R功能的三種方式及過(guò)程。
列算子血緣解析E-R
列算子血緣解析E-R是基于DMS自研的列算子血緣解析器能力構(gòu)建,可以將字段之間的關(guān)聯(lián)、依賴及影響關(guān)系納入E-R圖譜。如下操作步驟為您演示如何通過(guò)列算子血緣解析E-R能力實(shí)現(xiàn)增強(qiáng)E-R。
將表ods_huiyuan_t1與ods_huiyuan_t3的ID進(jìn)行關(guān)聯(lián),生成一個(gè)寬表。在SQL Console頁(yè)面執(zhí)行如下SQL:
/*字段關(guān)聯(lián)字段關(guān)系*/ SELECT * FROM ods_huiyuan_t1 t1 join `ods_huiyuan_t3` t3 on t1.id = t3.id;
對(duì)t4進(jìn)行一次數(shù)據(jù)加工,生成一個(gè)新的表depend。在SQL Console頁(yè)面執(zhí)行如下SQL:
/*字段依賴字段關(guān)系*/ CREATE TABLE `ods_huiyuan_depend` ( `id` int NOT NULL AUTO_INCREMENT comment '用戶id', `col1` varchar(255) DEFAULT NULL comment '關(guān)聯(lián)結(jié)果1', `col2` varchar(255) DEFAULT NULL comment '關(guān)聯(lián)結(jié)果2', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員依賴測(cè)試表'; insert into `ods_huiyuan_depend` (`id`,`col1`, `col2` ) select `id` , `address` , `postcode` from `ods_huiyuan_t4` where id=1; select * from ods_huiyuan_depend;
對(duì)t2和t3進(jìn)行數(shù)據(jù)加工,將加工后的數(shù)據(jù)進(jìn)行關(guān)聯(lián),生成一張新的表influ。在SQL Console頁(yè)面執(zhí)行如下SQL:
/*字段影響字段關(guān)系*/ CREATE TABLE `ods_huiyuan_influ` ( `id` int NOT NULL AUTO_INCREMENT comment '用戶id', `col1` varchar(255) DEFAULT NULL comment '關(guān)聯(lián)結(jié)果1', `col2` varchar(255) DEFAULT NULL comment '關(guān)聯(lián)結(jié)果2', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='會(huì)員影響測(cè)試表'; INSERT INTO ods_huiyuan_influ (`id`, `col1`, `col2`) SELECT a.id,a.user_name,b.birth_date FROM ( SELECT `id`,`user_name`,`tel_number` FROM `ods_huiyuan_t2` ) a LEFT OUTER JOIN ( SELECT `id`,`birth_date`,`age` FROM `ods_huiyuan_t3` WHERE `age` > 32 ) b ON a.id = b.id; select * from ods_huiyuan_influ;
T+1日后,在SQL Console頁(yè)面查看增強(qiáng)E-R。查看的具體操作,請(qǐng)參見(jiàn)查看增強(qiáng)E-R。
通過(guò)如下示例SQL及表格說(shuō)明列算子血緣解析E-R的原理及能力,包含字段與字段之間的關(guān)聯(lián)、影響和依賴關(guān)系。
CREATE TABLE user_trade AS
SELECT a.user_id
,a.user_name
,a.gender
,b.amt
,b.cnt
FROM (
SELECT user_id,user_name,gender
FROM user
WHERE user_type = 'taobao'
) a
LEFT OUTER JOIN (
SELECT user_id,sum(amt) AS amt,sum(1) as cnt
FROM trade
WHERE is_pay = 1
GROUP BY user_id
) b
ON a.user_id = b.user_id;
關(guān)系類型 | 說(shuō)明 | 示例 |
字段之間的關(guān)聯(lián)關(guān)系 | 表與表的關(guān)聯(lián)條件中,存在字段的關(guān)聯(lián)。 | 示例SQL中user表中的user_id字段與trade表中的user_id字段之間存在關(guān)聯(lián)關(guān)系。 |
字段之間的依賴關(guān)系 | 目標(biāo)字段來(lái)源于哪張表的哪個(gè)字段。 | 示例SQL中user_trade表中的user_id字段來(lái)源于user表中的user_id字段。 |
字段之間的影響關(guān)系 | 從表中WHERE字段對(duì)目標(biāo)表字段的影響。 | 示例SQL中trade表的is_pay字段影響user_trade表中amt字段,影響條件為 |
任務(wù)編排E-R
任務(wù)編排E-R是通過(guò)任務(wù)編排的調(diào)度血緣功能來(lái)構(gòu)建資產(chǎn)圖譜。如下操作步驟為您演示如何通過(guò)任務(wù)編排E-R能力實(shí)現(xiàn)增強(qiáng)E-R。
使用DMS的任務(wù)編排功能,創(chuàng)建一個(gè)單實(shí)例SQL節(jié)點(diǎn),并且設(shè)置調(diào)度時(shí)間為每天0點(diǎn)。
在任務(wù)節(jié)點(diǎn)的編寫SQL區(qū)域,寫入如下SQL:
/*DMS任務(wù)編排,每天重復(fù)調(diào)度一次*/ drop table if exists ods_huiyuan_df; create table IF NOT EXISTS `ods_huiyuan_df` AS SELECT `user_name`,`tel_number` FROM `ods_huiyuan_t2`
T+1日后,在SQL Console頁(yè)面查看增強(qiáng)E-R。查看的具體操作,請(qǐng)參見(jiàn)查看增強(qiáng)E-R。
查看增強(qiáng)E-R
方法一:通過(guò)SQL Console頁(yè)面查看
- 登錄數(shù)據(jù)管理DMS 5.0。
單擊首頁(yè)左側(cè)的數(shù)據(jù)庫(kù)實(shí)例,在實(shí)例列表中選擇目標(biāo)實(shí)例。
單擊目標(biāo)實(shí)例,左鍵雙擊目標(biāo)數(shù)據(jù)庫(kù)名稱,進(jìn)入SQL Console頁(yè)面。
單擊頁(yè)面右上方的圖標(biāo),進(jìn)入E-R分析頁(yè)面,查看增強(qiáng)E-R。
在E-R分析頁(yè)面,您可以進(jìn)行如下操作:
單擊表,查看表詳情。
單擊表區(qū)域的邊,查看關(guān)系詳情。
方法二:通過(guò)資產(chǎn)圖譜功能查看
- 登錄數(shù)據(jù)管理DMS 5.0。
在頂部菜單欄中,選擇數(shù)據(jù)資產(chǎn) > 資產(chǎn)圖譜。
說(shuō)明若您使用的是極簡(jiǎn)模式的控制臺(tái),請(qǐng)單擊控制臺(tái)左上角的圖標(biāo),選擇全部功能 > 數(shù)據(jù)資產(chǎn) > 資產(chǎn)圖譜。
依次單擊目標(biāo)實(shí)例、數(shù)據(jù)庫(kù)區(qū)塊右下角的,進(jìn)入E-R分析頁(yè)面,查看增強(qiáng)E-R。