在离线数仓开发过程中,研发人员需要根据业务变化,在开发/生产环境中不断切换、解析、调试。以往,企业一般通过人工方式核验,但由于数据量大且类型不同,导致研发人员资源、精力投入大。
如何使同构代码在不同环境正确运行,避免因调试过程中的误操作,对生产环境直接造成数据负面风险,成为很多企业数仓研发团队的痛点之一。
近期,火山引擎DataLeap推出“项目参数管理”能力,即通过自定义项目参数分别设置开发、生产环境参数值,参数支持配置多种类型,包括Region、DB、shecma、table、date以及自定义等,且支持任务级别引用,快速帮助研发团队实现资源隔离。
火山引擎DataLeap“项目参数管理”能力
以湖仓一体分析服务(LAS)引擎为例,介绍如何利用“项目参数管理”区分不同环境库和时间格式的查询。
在使用之前,由于1个业务需求常常涉及10+任务、30+参数,且不同环境DB中、table基本一致,需要管理2套代码。数仓研发人员难以避免出现测试代码在生产环境执行、表误删、数据误删等问题。
在使用之后,只需要3个步骤即可解决生产、测试环境数据隔离问题:
· 步骤一:LAS有2套环境,包括测试环境库test_dev、生产环境库test_prod 。2套环境都有相同表名LAS_table01、分区字段名datetimes。开发环境分区字段为yyyymmdd,生产环境分区格式为YYYY-MM-DD。在DataLeap中设置日期参数arg,开发环境参数值=\${date}、生产环境参数值=\${DATE}。设置库参数env,开发环境=test_dev、生产环境=test_prod。
·步骤二:对于离线数据开发任务,研发人员可以直接在代码中使用项目参数,点击“解析”“调试”,系统会自动替换为相应的开发环境参数值,并进行语法解析、权限检查等。
·步骤三:点击“提交上线”、“任务例行执行”时,对于项目参数,系统会自动替换为相应的生产环境参数值,然后进行相应的语法解析以及权限检查。从而有效提升环境代码管理效率。
据介绍,企业可以在以下场景使用火山引擎DataLeap“项目参数管理”能力:
【场景1】开发生产环境隔离
·以HSQL任务为例,为避免在开发测试阶段,因误操作影响生产库表的数据,研发人员可以在HSQL代码中使用项目参数。调试时,系统会自动替换为开发环境参数值;上线后的任务例行执行,系统将自动替换为生产环境参数值。同时,DataLeap也支持代码一致,无需在上线前批量将开发环境的库表名称替换为生产环境的库表名称。
【场景2】跨区域/项目代码同构
·一般来说,不同Region下的库、表名不同。为了实现不同Region、项目下代码同构,研发人员可以在HSQL代码中使用项目参数,来实现不同环境下,同一个任务的代码同构,有效提升环境代码管理效率。
火山引擎DataLeap让研发人员不再需要通过”调度设置-任务输入参数”的方式添加项目参数,只需定义一次参数即可轻松构建,并且实现生产、测试环境下的数据自动隔离,代码同构。除此之外,DataLeap还具备数据集成、开发、运维、治理、资产、安全等数据中台建设能力,助力企业提升数据研发效率、降低管理成本,为数字化转型提供支撑。(作者:杨文文)