火山引擎 DataLeap 一招教你避坑“数据开发”中的资源隔离问题
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
在离线数仓开发过程中,研发人员需要根据业务变化,在开发/生产环境中不断切换、解析、调试。以往,企业一般通过人工方式核验,但由于数据量大且类型不同,导致研发人员资源、精力投入大。
如何使同构代码在不同环境正确运行,避免因调试过程中的误操作,对生产环境直接造成数据负面风险,成为很多企业数仓研发团队的痛点之一。
近期,火山引擎 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 还具备数据集成、开发、运维、治理、资产、安全等数据中台建设能力,助力企业提升数据研发效率、降低管理成本,为数字化转型提供支撑。
点击跳转 大数据研发治理DataLeap 了解更多
版权声明: 本文为 InfoQ 作者【字节跳动数据平台】的原创文章。
原文链接:【http://xie.infoq.cn/article/38efc2be27db81ee6a974a253】。文章转载请联系作者。
评论