生产、测试划分最佳实践
更新时间:2026-08-31
在同一个工作空间内,通过项目、计算资源和数据目录三层划分,隔离生产与测试环境:测试项目中完成开发与验证,验证通过后将作业复制到生产项目,作业代码无需修改即可切换到生产数据。本文介绍该方案的规划思路、完整实施步骤和结果验证方法。
方案概览
方案由空间管理员统一规划,隔离对象分为三类:
- 项目:划分生产、测试两个项目,分别存放数据处理过程中的脚本作业、Notebook 和工作流等文件。测试到生产通过项目间复制完成。
- 计算资源:分别创建生产、测试计算资源实例,绑定到生产、测试资源组,再将资源组分配给对应项目,实现算力隔离。
- 数据:划分生产、测试数据目录(Catalog),并在项目上配置同名环境变量指向不同数据目录,保证测试、生产的作业迁移无需修改代码。

说明:作业中不写死数据目录名称,而是引用项目级环境变量。作业被复制到生产项目后,环境变量由生产项目的取值覆盖,因此无需修改代码。
前提条件
- 已创建工作空间并完成元存储配置。
- 当前用户为空间管理员,或具备以下权限:数据目录的创建及管理权限、计算资源的管理权限、项目的管理权限。仅具备项目管理权限的用户才能添加、编辑和删除项目环境变量。
- 已根据业务数据量评估生产、测试所需的计算资源规格。测试环境可参考试用场景的最小规格,生产环境需按实际数据量评估。
资源规划
实施前先确定命名规则,建议用统一前缀区分环境,便于识别和授权。下表为示例值,请替换为实际业务名称。
表1 生产、测试资源规划示例
| 资源类型 | 测试环境 | 生产环境 | 说明 |
|---|---|---|---|
| 数据目录 | dev_catalog |
pro_catalog |
存放测试、生产数据,在元数据中创建。 |
| 资源组 | dev_cluster |
pro_cluster |
分别绑定测试、生产的计算资源实例。 |
| 项目 | 测试项目 | 生产项目 | 存放脚本作业、Notebook等文件。 |
| 环境变量 | catalog = dev_catalog |
catalog = pro_catalog |
两个项目中变量名称必须一致,取值不同。 |
步骤一:划分生产、测试数据目录
数据目录是元数据的第一层,用于隔离生产与测试数据。
- 登录百度胜算控制台,在选中的工作空间操作列单击打开按钮,进入工作空间。
- 在侧边导航选择元数据,进入元数据页面。
- 单击数据目录树上的添加按钮,选择创建数据目录。

- 将目录类型选择为Datalake数据目录,输入数据目录名称(如
dev_catalog),填写描述后单击确定。 - 然后重复步骤3~4,创建生产数据目录(如
pro_catalog)。 - 创建完成的数据目录显示在数据目录树中。

步骤二:创建生产、测试计算资源并绑定资源组
计算资源实例创建完成后,必须绑定资源组,资源组分配给项目后实例才可被项目内的任务使用。
- 在侧边导航选中计算资源模块,平台默认生成一个资源组,单击右侧编辑按钮,修改资源组名称为测试资源组(如dev_cluster)。
- 然后单击列表右上角创建按钮,创建生产资源组(如
pro_cluster)。

- 通过标签页切换至各类计算实例页面(源连接与集成实例、数据处理实例、分析与AI搜索实例、通用常驻实例、通用资源队列),按业务需要分别创建生产、测试实例。建议在实例名称中带上环境前缀,例如
dev_spark、pro_spark。 - 实例创建完成后,通过标签页切换至资源组,将测试实例绑定到测试资源组,生产实例绑定到生产资源组。
说明:生产、测试资源组内需分别配置对应类型的实例。若实例未绑定资源组或资源组未分配给项目,项目内任务将无法获取计算资源。
步骤三:创建生产、测试项目
项目是基本协作单元,用于管理文件、关联计算资源并控制权限边界。
- 在侧边导航单击工作台,在左侧列表中选择项目分类。
- 单击项目列表右上角的创建按钮,创建测试项目,输入项目名称(如测试项目)和描述,单击确定。
- 重复步骤2,创建生产项目(如生产项目)。

- 为项目分配资源组:测试项目绑定测试资源组,生产项目绑定生产资源组。绑定结果可在项目操作列的详情中查看,计算资源区域展示该项目所绑定资源组的计算资源详情。
步骤四:配置项目环境变量
在两个项目中配置同名环境变量,分别指向测试和生产数据目录,作业代码通过变量引用数据目录,实现迁移时无需修改代码。
- 进入工作台项目页面,单击测试项目右侧的详情按钮,可配置当前项目的环境变量。
- 单击添加变量,输入参数名称(如
catalog)和参数值(如dev_catalog),单击保存。

- 进入生产项目,重复步骤1~2,添加同名参数
catalog,参数值填写生产数据目录名称(如pro_catalog)。

注意:
- 作业中的引用方式为
${param}。- 删除被引用的参数会导致引用该参数的作业执行出错。删除时系统会提示确认,请先确认无作业引用后再删除。
步骤五:在测试项目中开发作业并引用环境变量
在测试项目中开发作业时,将数据目录名称替换为环境变量。
- 进入测试项目,依次单击创建>数据处理>脚本作业。
- 将SQL中的数据目录名称替换为
${catalog},例如SparkSQL脚本:
SQL
1-- dev_table为default库中的表,本示例仅演示环境变量引用与SQL续写。
2SELECT * FROM ${catalog}.default.dev_table

- Notebook作业同样支持引用环境变量,依次单击创建>数据处理>Notebook,在SQL单元格中按相同方式书写。

- 运行作业,确认执行成功且读写的是测试数据目录中的数据。
步骤六:将测试作业复制到生产项目
测试验证通过后,通过复制把作业发布到生产项目。复制后的作业引用生产项目的环境变量取值,无需修改代码。
- 在测试项目的文件列表中勾选待发布的多个文件,单次最多100个。
- 单击批量复制,选择目标目录为生产项目路径,并选择新文件名称策略和同名文件处理策略。
- 单击确定,完成复制。

评价此篇文章
