【发布时间】:2020-12-08 13:11:49
【问题描述】:
我正在移交一个拥有大量视图的 Redshift 数据库。我想可视化它们的依赖关系。
我在下面进行了选择,收到了大约 500 行,前两列显示了两个相关实体的名称。
SELECT
dependent_view.relname as dependent_entity_name
, source_table.relname as entity_name
, source_table.relkind as entity_type
, count(distinct pg_attribute.attname) as joined_column_count
FROM pg_depend
JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid
JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid
JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid
JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid
AND pg_depend.refobjsubid = pg_attribute.attnum
JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace
JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace
WHERE
source_ns.nspname = 'public'
AND pg_attribute.attnum > 0
GROUP BY 1,2,3
ORDER BY 1,2;
我想要
- 图表与
- 每个唯一实体名称 1 个节点
- 1 行,每行连接两个相关节点。
- 在 Draw.io 或类似文件中处理结果
我不想
- 手动绘制
我试过了
- 使用 Smartdraw - 绘制没有连接的实体
- 使用 VisualParadigm - 崩溃
- ModelXtractor - pg_class_info 的权限被拒绝
有什么方法可以实现吗?现有的软件工具或脚本?
【问题讨论】:
-
你的问题到底是什么?
-
@bruno 有什么办法可以做到这一点吗?现有的软件工具或脚本? - 编辑它。
-
好的,你要一个工具,这是我的问题,但很抱歉我无法为你提供帮助
-
当您实际寻找 ERD 时,为什么要用 UML 标记它?
-
@qwerty_so 没有意识到第一个标签变成了标题标签。婴儿步...
标签: amazon-redshift documentation modeling erd draw.io