场景
作为数据开发,你在编写和测试计算任务时,总是小心翼翼在测试计算任务时对生产数据造成影响,小心翼翼地避免对生产数据造成任何影响。为此,在任务代码中,你特意将所有涉及的数据表以 [项目英文名_dev].[表名] 的形式引用,确保任务仅操作开发环境中的数据。
然而,这种方式也带来了新的问题:当任务需要发布到生产环境时,你不得不手动将代码中所有的表引用逐一去掉[_dev]的后缀,修改为 [项目英文名].[表名],否则任务运行时仍然会局限于开发环境的数据,无法正常产出生产数据。
这种重复且耗时的工作让你倍感困扰。那么,是否有一种方法,既可以保证开发与生产环境之间的数据隔离,又无需手动修改表的引用呢?
解决方案/功能
通过使用空间名称变量,你可以轻松解决上面的难题!
- 空间名称变量即
${项目英文名}
或${板块英文名}
。在计算任务中引用该变量系统会根据当前环境(开发或生产)自动替换变量值为对应的开发或生产项目名称。如图在开发环境中,点击运行开发任务,变量默认值填入了【test01_dev】,即开发项目的英文名称。
在运行日志中也可以看到运行的SQL代码。
- 任务提交发布后,我们可以在【运维】中查看生产任务实例的运行日志,可以看到空间名称变量的位置填入了生产项目的英文名【test01】,没有【_dev】的后缀。
- 这样,我们可以在大胆在开发环境测试代码,任务运行成功后直接将任务发布到生产环境,无需手动修改代码引用,是不是非常方便!