数据管理DMS的增强E-R功能基于DMS自研的统一Catalog的元数据采集引擎、列算子血缘解析引擎(解析字段间关联、依赖和影响关系的引擎)和数据资产知识图谱构建等核心能力,可清晰地展现您名下某个数据库内资产之间的关联关系。本文介绍了增强E-R功能的优势、应用场景以及使用方法。
前提条件
- 支持的数据库实例类型:RDS MySQL、RDS PostgreSQL、RDS MariaDB、PolarDB MySQL版、PolarDB PostgreSQL版、AnalyticDB for MySQL、AnalyticDB for PostgreSQL。 
- 数据库实例所在地域:华东1(杭州)、华北2(北京)、华东2(上海)、华南1(深圳)、华北3(张家口)、华北1(青岛)、西南1(成都)、华北5(呼和浩特)、华南2(河源)、华北6(乌兰察布)、华南3(广州)、华东5 (南京-本地地域-关停中)、华东6(福州-本地地域-关停中)。 
- 数据库实例的管控模式为安全协同。管控模式的详细信息,请参见管控模式。 
背景信息
E-R图(Entity Relationship Diagram)也称实体关系图,是一种用来描述实体、属性和关系的模型。数据库结构设计阶段需要绘制数据库的E-R图,并将E-R图转换为多张数据库表,存储各表的主、外键。E-R图能较好的描述业务数据中的关联关系、数据库存储表和字段之间的依赖和关联关系,并通过此关系将业务或数据库存储的逻辑关系沉淀到数据库设计中。
随着业务规模的增大和数据库外键性能的降低,越来越多的系统设计采用应用系统来保障业务之间的依赖关系,导致数据库的外键信息并不会真正的沉淀到数据库外键设计上,不易通过实际数据库的外键信息看到业务数据表中的逻辑关系,进而影响您梳理数据库内的表之间真实的逻辑关系。
数据管理DMS的增强E-R可以清晰地展示出业务数据之间、数据库存储表和字段之间的关联、依赖和影响关系,并将此关系通过表结构中的逻辑关系沉淀到数据库设计中。
应用场景
- 快速梳理出数据库内数据间的关系。 
- 导出增强E-R图,作为项目数据设计的资料。 
- 通过查看敏感数据的传递方式,避免敏感信息二次加工后泄露。 
- 通过查看数据之间的依赖关系,尽早发现数据变更的风险。 
- 通过查看数据之间的关联关系,可辅助构建数仓宽表。 
- 通过查看数据之间的加工关系,查看数据的加工链路。 
- 通过查看数据之间的引用关系,识别数据库中的冷、热资产。 
注意事项
- 此功能开通后的T+1日,才可查看E-R图。 
- 增强E-R仅可感知到在DMS中输入或变更的数据表、字段信息,并将其之间的关联、影响和依赖关系展示在页面,感知不到在程序代码等其他端输入或变更的信息。 
费用说明
该功能不收费。但该功能仅支持安全协同模式的实例使用,安全协同管控模式是计费商品。
功能优势
- DMS的增强E-R与传统E-R的构建方案不同,除了具有传统E-R的能力,还具有基于DMS自研的统一Catalog的元数据采集器、列算子血缘解析器和数据资产知识图谱的构建能力,这些能力可以帮助您挖掘出数据资产之间更多潜在的关联关系。 
- DMS构建了百亿级别以上的数据节点和关系的资产图谱,结合多种数据资产业务应用场景,并提供对应的查询和可视化服务。 

使用方法
传统E-R
DMS具有传统E-R能力,可以基于数据库中的物理外键构建E-R图。如下操作步骤为您演示如何实现传统E-R。
- 登录数据管理DMS 5.0。
- 单击首页左侧的数据库实例,在实例列表中选择目标实例。 
- 单击目标实例,左键双击目标数据库名称,进入SQL Console页面。 
- 在该页面构建测试数据。分别为表ods_huiyuan_t1(简称t1)、ods_huiyuan_t2(简称t2)、ods_huiyuan_t3(简称t3)、ods_huiyuan_t4(简称t4)和ods_huiyuan_fk。在SQL Console页面执行如下SQL: 
- T+1日后,在SQL Console页面查看增强E-R。查看的具体操作,请参见查看增强E-R。  
在此基础上,还具有列算子血缘解析、任务编排的能力,并且可以通过这三种能力实现DMS的增强E-R功能。如下介绍实现DMS增强E-R功能的三种方式及过程。
列算子血缘解析E-R
列算子血缘解析E-R是基于DMS自研的列算子血缘解析器能力构建,可以将字段之间的关联、依赖及影响关系纳入E-R图谱。如下操作步骤为您演示如何通过列算子血缘解析E-R能力实现增强E-R。
- 将表ods_huiyuan_t1与ods_huiyuan_t3的ID进行关联,生成一个宽表。在SQL Console页面执行如下SQL:  
- 对t4进行一次数据加工,生成一个新的表depend。在SQL Console页面执行如下SQL: 
- 对t2和t3进行数据加工,将加工后的数据进行关联,生成一张新的表influ。在SQL Console页面执行如下SQL: 
- T+1日后,在SQL Console页面查看增强E-R。查看的具体操作,请参见查看增强E-R。  
通过如下示例SQL及表格说明列算子血缘解析E-R的原理及能力,包含字段与字段之间的关联、影响和依赖关系。
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;| 关系类型 | 说明 | 示例 | 
| 字段之间的关联关系 | 表与表的关联条件中,存在字段的关联。 | 示例SQL中user表中的user_id字段与trade表中的user_id字段之间存在关联关系。 | 
| 字段之间的依赖关系 | 目标字段来源于哪张表的哪个字段。 | 示例SQL中user_trade表中的user_id字段来源于user表中的user_id字段。 | 
| 字段之间的影响关系 | 从表中WHERE字段对目标表字段的影响。 | 示例SQL中trade表的is_pay字段影响user_trade表中amt字段,影响条件为 | 
任务编排E-R
任务编排E-R是通过任务编排的调度血缘功能来构建资产图谱。如下操作步骤为您演示如何通过任务编排E-R能力实现增强E-R。
- 使用DMS的任务编排功能,创建一个单实例SQL节点,并且设置调度时间为每天0点。  
- 在任务节点的编写SQL区域,写入如下SQL: 
- T+1日后,在SQL Console页面查看增强E-R。查看的具体操作,请参见查看增强E-R。  
查看增强E-R
- 登录数据管理DMS 5.0。
- 单击首页左侧的数据库实例,在实例列表中选择目标实例。 
- 单击目标实例,左键双击目标数据库名称,进入SQL Console页面。 
- 单击页面右上方的  图标,进入E-R分析页面,查看增强E-R。 图标,进入E-R分析页面,查看增强E-R。- 在E-R分析页面,您可以进行如下操作: - 单击表,查看表详情。  
- 单击表区域的边,查看关系详情。 