一、概述
这篇说说三级命名空间的层级关系、命名规则、引用方式以及在 SQL 与 Notebook 中的使用方法。
二、命名空间结构
MetaLake(地域 + 租户级,元数据湖)
└── Catalog(顶层命名空间,类型决定可承载资产)
└── Schema(中层命名空间,类似 Database) └── 资产对象(Table / View / Volume / Model ) └── 字段 / 文件(仅特定资产类型有四级层次)
三、各层级职责
| 层级 | 类比 | 职责 |
| Catalog | 数据库实例 / 数据仓库 | 顶层命名空间,决定底层存储位置与资产类型 |
| Schema | 数据库(Database) | 按业务主题、项目或环境划分对象;相当于 SQL 中的 DATABASE |
| 对象 | 表、视图、卷、模型 | 实际承载数据或元数据的资产 |
四、SQL 中的三段式引用
在 Studio 中的 SQL 文件、Notebook 的 Spark SQL 单元格、Workflow SQL 任务中,你可以使用三段式路径引用任意 Catalog 下的对象:
五、卷(Volume)路径引用
卷(Volume)是非结构化数据的容器,对其下文件的访问采用以 /Volumes/ 为前缀的路径:
/Volumes/<catalog>/<schema>/<volume>/<directory>/<file>
例如:
/Volumes/ops_catalog/raw_logs/access_log/2026-06-06/access.log
六、模型 URI 引用
模型在三级命名空间之上还有版本与别名两层标识。完整的模型 URI 形如:
models:/<catalog>.<schema>.<model_name>/<version>models:/<catalog>.<schema>.<model_name>@<alias>
例如:
models:/ml_catalog.recsys.deepfm_model/3models:/ml_catalog.recsys.deepfm_model@champion
七、命名约束
| 元素 | 规则 |
| Catalog 名称 | 在同一 MetaLake 内全局唯一;default 为系统保留名,不可创建或修改 |
| Schema 名称 | 在同一 Catalog 内唯一;information_schema 与 default 为系统在创建 Catalog 时自动创建的 Schema |
| 对象名称(表 / 视图 / 卷 / 模型) | 在同一 Schema 内唯一 |
| 字符集 | 详细命名约束(长度、合法字符、大小写敏感性)由底层引擎决定 |
注意:default 是系统保留 Catalog 名,你无法创建同名 Catalog;information_schema 与 default 是 Catalog 创建后自动生成的 Schema 名,你也无法手工创建或重命名。
八、自动初始化的对象
·首次进入数据目录 :系统自动创建 default 和 system 两个内置 Catalog。
·创建 Catalog 后 :系统自动创建 information_schema 与 default 两个 Schema。default Schema 的内容初始为空。
九、在 Studio 中浏览三级命名空间
DataBuddy Studio 在左侧导航中提供「数据目录」入口,你可以以树形结构逐层展开 Catalog → Schema → 对象 → 字段:
1. 进入 Studio,在左侧导航选择 数据目录 。
2. 在树中点击 Catalog 或 Schema 即可向下展开;hover 字段或表名时,可使用插入按钮把名称插入到右侧 IDE 编辑器。
3. 通过顶部搜索框可全域模糊搜索 Catalog / Schema / 资产名称(最多返回 200 条),匹配命中后目录树自动展开到对应节点。
4. 通过筛选器可仅展示指定类型(数据表、模型 / Volume / 全部)的资产。
详细操作请参考 数据目录导航。
十、全名与跨工作空间引用
每个对象都拥有一个 全名 (Fully Qualified Name),格式为 catalog.schema.object。全名是跨工作空间引用对象的标准形式:
| 引用场景 | 推荐写法 |
| 跨工作空间查询 | <catalog>.<schema>.<table> |
| 单工作空间且指定了上下文 | <table> 或 <schema>.<table> |
| 在告警 / 文档中描述资产位置 | 使用三段式全名,便于检索 |
| API / SDK 调用 | 使用三段式全名作为标识参数 |
十一、使用限制
| 限制项 | 说明 |
| 系统保留名 | information_schema / default 不可作为 Schema 名 |
| 跨 Catalog 联表 | 跨 Catalog 联表查询能力依赖底层计算引擎;DLC Spark 已支持基础的跨 Catalog 联表查询 |
| 模型对象层级 | 模型在三级命名空间之上还有版本与别名两层,详见 模型 Catalog |
十二、常见问题
Q:为什么需要三级命名空间?两层(Schema.Table)不够吗?
A:三级命名空间为多业务线、多项目场景下的资产隔离与跨空间共享提供了顶层划分。例如可以为不同业务线创建独立的 Catalog(marketing_catalog、finance_catalog),每条业务线内部再按主题划分 Schema,避免命名冲突;同时便于按 Catalog 维度做权限批量授权。
Q:同名 Catalog 在不同工作空间是同一个吗?
A:是。Catalog 注册在 MetaLake 上,跨工作空间可见 。在工作空间 A 创建的 Catalog,在同一地域的其他工作空间中能看到同名 Catalog(实际是同一对象)。具体能否访问其内部数据,取决于权限策略与工作空间访问范围。
Q:跨 Catalog 引用的语法在 Spark 和 SQL 任务中表现一致吗?
A:基本一致。catalog.schema.object 三段式语法在 DLC Spark SQL 中已支持;执行前请确认当前计算资源对目标 Catalog 拥有 use catalog 与 use schema 权限。
十三、相关文档
·统一元数据管理架构
·结构化数据 Catalog
·非结构化数据 Catalog
·模型 Catalog
·数据目录导航