概述
DataBuddy 数据目录使用 三级命名空间 来组织和定位所有数据资产。任意一张表、一个视图、一个卷或一个模型,都通过形如
catalog.schema.object 的三段式路径唯一标识。三级命名空间为跨工作空间共享、细粒度授权和资产检索提供统一的引用方式。本文介绍三级命名空间的层级关系、命名规则、引用方式以及在 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 权限。