火山引擎 DataLeap:在数据研发中,如何提升效率?
Posted 字节跳动数据平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了火山引擎 DataLeap:在数据研发中,如何提升效率?相关的知识,希望对你有一定的参考价值。
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
在数仓及中台研发过程中,研发人员经常需要在不同任务中维护相同或类似代码,不仅费时费力,并且代码迭代后也面临不同业务单元逻辑性不一致的问题,对运维管理形成挑战。
一般来说,研发人员往往通过代码模板来解决这一问题。具体而言,在核心数据处理逻辑相同的情况下,研发人员通过代码模版传入不同的任务参数,解决核心数据处理逻辑复用的问题,使得后续任务可以批量化,满足实时调用需求。
目前,任务模板已是火山引擎 DataLeap 研发治理能力之一,主要用于管理常用的任务逻辑,以此降低常用代码的运维成本。在产品功能上,DataLeap 任务模板支持丰富的引擎能力,包括 LAS/EMR HSQL 、LAS/EMR Java Flink、LAS/EMR Flink SQL、shell 任务,满足离线实时任务的不同需求。
此外,DataLeap 还支持历史版本管理,即保存或更新模板后,记录各个版本更新情况,方便查看代码设置及参数。
在使用层面上,研发人员只需要三步骤即可完成任务模板创建,便捷复用核心数据处理逻辑。
第一步:选中支持的任务类型
-
在模板列表右侧的“+”(更多)按钮中,新建子目录或新建任务模板。
-
在新建任务模板窗口中,输入以下参数,并新建模板。
第二步:代码编写参数设置
-
在任务模板的代码开发编辑界面,通过 DDL 和 DML 编写通用 SQL。
-
表名、字段名分别可以用参数表示,以下以 LAS Flink SQL 的逻辑处理,保存为 test02 模板。
第三步:在任务开发中引用
研发人员可以通过以下 2 种方式引用 test02 模板:
-
方法 1:在模板列表中,选择模板并点击后即可快速引用。
-
方法 2:在代码编辑界面右上角选择任务模板,选择模板后,按需选择是否最新版本的模板,在对参数设置之后,预览代码最终生成效果(如图)。
火山引擎 DataLeap 任务模板能力可应用于以下场景:
-
场景 1:将预先设计好的离线、实时任务模板保存后,即可在多个任务中引用此类型模板,快速实现代码复用。
-
场景 2:将 shell 任务代码制作为前置判断条件,在数据分析前的触发检测运行条件是否满足。
除了任务模板之外,作为大数据研发治理套件,DataLeap 还可以提供数据集成、开发、运维、治理、资产、安全等能力,帮助用户提升数据研发效率、降低管理成本,加速推动企业的数字化转型。
点击跳转 火山引擎大数据研发治理DataLeap 了解更多
火山引擎 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 了解更多
以上是关于火山引擎 DataLeap:在数据研发中,如何提升效率?的主要内容,如果未能解决你的问题,请参考以下文章
直播预告 | 企业如何轻松完成数据治理?火山引擎 DataLeap 给你一份实战攻略!
数据丢失不用怕,火山引擎 DataLeap 提供排查解决方案
火山引擎DataLeap数据调度实例的 DAG 优化方案 :功能设计