You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake中导出Schema、表、列及其依赖为ER图?

在Snowflake生成ER图(含Schema、表、列及依赖)的实现方案

Snowflake本身没有内置的ER图生成功能,但不管是用第三方工具,还是通过DBT脚本,都能实现你要的效果:

一、快速方案:Snowflake元数据+第三方ER工具

直接查询Snowflake的INFORMATION_SCHEMA视图拿到所有元数据,导出后导入ER工具自动生成:

  • 提取表和列结构:从information_schema.columns获取schema名、表名、列名、数据类型、是否可为空等信息
  • 提取外键依赖:关联table_constraints、key_column_usage、constraint_column_usage视图,筛选FOREIGN KEY类型的约束
  • 将查询结果导出为CSV/JSON格式,导入DBeaver、ERStudio、Lucidchart这类工具,它们能自动识别依赖关系生成类似示例的ER图

二、用DBT脚本实现的步骤

如果你想用DBT来完成,核心思路是通过DBT提取元数据,再转换为ER图支持的格式:

  1. 编写DBT查询提取元数据
    在DBT中新建模型,通过SQL查询Snowflake系统视图收集所需信息:
-- 提取表与列的基础信息
SELECT 
  table_schema,
  table_name,
  column_name,
  data_type,
  is_nullable
FROM information_schema.columns
WHERE table_schema = '你的目标Schema名称'

-- 提取外键依赖关系
SELECT
  tc.table_schema,
  tc.table_name,
  kcu.column_name AS local_column,
  ccu.table_schema AS foreign_schema,
  ccu.table_name AS foreign_table,
  ccu.column_name AS foreign_column
FROM information_schema.table_constraints tc
JOIN information_schema.key_column_usage kcu
  ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage ccu
  ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
  AND tc.table_schema = '你的目标Schema名称'

执行dbt run后,可将结果导出为JSON/YAML文件或直接读取DBT目标目录中的数据。

  1. 转换为ER图可渲染格式
    编写简单的Python/Shell脚本,将DBT输出的结构化数据转换成Mermaid、PlantUML这类支持可视化的ER图语法。比如生成Mermaid代码示例:
erDiagram
  CUSTOMER ||--o{ ORDER : "下单"
  ORDER ||--|{ LINE_ITEM : "包含"
  CUSTOMER {
    string customer_id PK
    string 姓名
    string 邮箱
  }
  ORDER {
    string order_id PK
    string customer_id FK
    date 下单日期
  }
  1. 渲染生成可视化ER图
    将生成的代码导入Mermaid Live Editor、VS Code的Mermaid插件等工具,即可直接查看ER图,也可导出为图片文件。

注意事项

  • 确保DBT使用的Snowflake账号拥有INFORMATION_SCHEMA视图的访问权限
  • Snowflake的外键为可选约束,若未显式定义外键,系统视图将无法查询到依赖关系,需通过命名规范或其他方式手动补充
  • 若需包含视图、存储过程等对象的依赖,可扩展查询information_schema.views、information_schema.routines等视图

内容的提问来源于stack exchange,提问作者Iuri de Araújo Sampaio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:15:41