写点什么

数据代码如何“产地直销”,做到持续集成持续发布?

作者:数造万象
  • 2022-12-28
    广东
  • 本文字数:2436 字

    阅读完需:约 8 分钟

数据代码如何“产地直销”,做到持续集成持续发布?

在生活中,吃货们总想吃到最新鲜的食材,所以越来越多的商家开始主打直销,并以“从田间地头直达餐桌”、“欢乐农场现摘现捕现做”、“养殖场直供”等作为噱头来吸引消费者的关注,从而达到提高销售额的目的。

在工作中,我们也常常运用这种模式。在数据开发过程中,数据代码等是否也能这样“产地直销”,尽可能缩短中间环节,实现持续的创新迭代,快速提供高质量数据支持或产品?

据界面 Vnews,英国埃塞克斯大学日前进行的一项研究发现,世界上最无聊的工作为数据分析师。谷歌数据分析师的另一项研究发现,对于大多数机器学习项目,程序员只有 5%的时间花在编写 ML 代码上。另外 95%的时间用于设置运行 ML 代码所需的基础设施。

无可置疑,在“数据准备环节”、“设置运行 ML 代码所需的基础设施”等环节和“开发、测试、生产”过程中联动占用了大量的时间,令整个项目的开发的战线拉长。因此,我们引入了 DataOps 理念。

在数据开发过程中,DataOps 更加关注数据的交付流程,满足持续数据集成、持续发布等能力。其核心是用于提高数据分析团队与数据工程团队所使用的数据质量并缩短数据分析的时间周期,使企业的数据团队能够更快速、更准确地提供分析解决方案。

一、创建项目空间

如何让所有数据需求者都能够轻松地获得、访问和使用数据?其管理的目标是:创建可预测的数据、模型、以及相关组件的交付和变更管理,以便在整个组织内和数据消费者中,更快地交付出有价值的信息。

在数据开发的前期准备工作,平台提供以项目空间为单元的开发协作模式,在项目空间内部,将存储资源、计算资源和数据库资源租户化,不同角色的用户(项目管理员、数据开发人员、测试人员、运维人员、数据分析人员等)可以使用不同的功能和权限,大家协同工作。

项目隶属于机构之下,同一机构下可以创建多个项目空间,各项目共享机构资源;同一个项目内可以添加多个用户,同一个用户可以加入多个项目。项目开发负责人可以通过平台对项目的开发资源一目了然,避免重复造轮子。

人员

对当前项目空间的成员进行管理和配置,只有项目的成员才能访问该项目。项目成员角色包括项目管理员、开发人员、测试人员和访客。

资源

项目资源管理,包括资源创建、资源变更、资源申请等操作,根据不同的底座和开发场景选择对应的资源。包括开发环境、测试环境、生产环境的资源。

数据

对当前项目中需要访问的数据来源进行管理,目前支持 MySQL、

Oracle、SqlServer、PostgreSQL、Greenplum、Gauss

Elasticsearch、Clickhouse、StarRocks、MongoDB、FTP、SFTP.

二、持续集成:数据的发现、集成和准备

在数据开发平台中,项目的基本设施已经搭建完毕,开发项目需要对数据的持续集成,包括数据发现、集成和准备。数据的持续集成主要是引入企业数据到底座中进行数据开发和治理,数据集成功能提供对业务方数据库进行分布式数据抽取、监控功能,能对数据源进行数据同步与批量集成。

(1)支持对 MySQL、Oracle、SqlServer、PostgreSQL、Greenplum、Gauss、MySQL 分库分表、PostgrSQL 分库分表、Elasticsearch、Clickhouse、StarRocks、MongoDB、FTP、SFTP 数据源进行数据集成,支持离线数据的全量、增量的同步

(2)支持输出数据源配置、输入目的地配置、字段映射配置、运行参数配置、版本管理、保存、运行、查看运行历史等功能

(3)支持预览来源表样例数据

(4)支持配置多并发读、写任务数量

(5)支持配置脏数据策略,能保存及下载脏数据文件

(6)支持可视化编辑和脚本编辑两种方式,能动态切换

三、持续发布:开发、测试、生产

在数据开发管控的任务过程中,敏捷的数据开发管道提供从数据集成、数据开发、持续集成、持续测试、持续部署、调度监控的敏捷数据开发管道。分布式任务调度,支持海量作业调度及可水平扩展能力。为企业提供了在开发状态、测试状态、生产状态的数据全生命周期的全流程服务,解决敏捷开发运用到数据工程管理等难题,提升数据价值变现效率。

(1)发布包管理

上线任务打包:实现对提交的表、任务、脚本进行打包,打包成发布包,并对发布包进行提测,按需打包发布,实现敏捷开发的任务发布过程。

下线任务打包:实现对提交下线申请的任务进行打包,打包成下线发布包,并对下线发布包的任务进行下线

(2)任务测试

任务测试实现了发布包提测后,自动部署表、脚本到测试环境。平台采集测试实例运行情况及测试意见,生成测试报告。

(3)发布上线

测试通过的发布包可提交上线申请,通过申请后,系统会自动部署发布包内的表和脚本至生产环境,并注册任务到调度平台周期运行。

四、数据质量:把控数据开发项目质量

在完成数据开发后,为了对数据开发项目质量进行验证,将进入测试验证环节包括冒烟测试、填写测试意见和测试报告反馈,确保提供满足项目需求的数据质量。

冒烟测试:任务测试提供对发布包任务的测试功能,实现了发布包提测后,自动部署表、脚本到测试环境。测试人员对提测发布包的作业进行冒烟测试。

(1)支持以 DAG 方式运行整个工作流

(2)针对单个任务,选择执行业务日期,对测试环境任务进行单次执行,并收集任务执行情况

(3)支持将工作流注册到测试态调度监控平台进行周期调度

测试意见:支持在测试过程中添加测试意见

测试报告:平台采集冒烟测试运行情况、日志、测试环境调度实例运行情况及测试意见,生成测试报告。

五、持续部署:用户都能用上最新的数据

在这一阶段,您可以为业务部门的自助服务赋能,并使企业内的各类用户都能用上可信的数据。通过这种实践,贯穿数据管道开发过程所有阶段的每一个变化,都会被分发给分析人员和业务用户所使用的各种数据消费应用。对许多业务工作来说,数据驱动型应用已变得十分重要,这些业务工作包括如:客户服务、营销、电子商务、欺诈检测、供应链管理等。这些都意味着,业务专家可以更快地访问到最新的数据。

DataBuilder 一站式数据开发管控平台打通了所有数据开发过程中的所有环节,真正做到“自产自销”,让数据开发项目能够实现持续集成持续发布的灵活快速处理状态,对于数据驱动的企业而言,有助于提高数据分析的质量和速度,提升数据项目的“时间的价值”!

用户头像

数造万象

关注

还未添加个人签名 2022-02-22 加入

还未添加个人简介

评论

发布
暂无评论
数据代码如何“产地直销”,做到持续集成持续发布?_数造万象_InfoQ写作社区