数据工程中的 CI/CD:无缝部署指南

TG Data Set: A collection for training AI models.
Post Reply
mostakimvip06
Posts: 317
Joined: Mon Dec 23, 2024 5:02 am

数据工程中的 CI/CD:无缝部署指南

Post by mostakimvip06 »

开始数据工程并不容易。在课堂上,甚至是在线课程中,你掌握了编写Python和SQL的基础知识。你甚至可能会学到一些框架和工具,如 Airflow、Databricks 和 Snowflake。

编写有效的代码是一回事。为这些代码编写测试并将其投入生产并在企业环境中运行又是另一回事。幸运的是,软件工程已经解决了这个问题,数据工程也开始迎头赶上。

你可能会问他们是如何做到的?CI/CD。我们怎么知道代码会在“野外”运行?我们怎么知道它没有损坏?一旦签署,我们如何将最终代码交付到生产环境中运行?在本文中,我们探讨了数据工程中的 CI/CD。我们还有一篇关于机器学习中 CI/CD 的单独指南。

什么是 CI/CD?
CI/CD 代表持续集成、持续交付/部署。现在,这对你来说可能意义不大;让我们进一步分析一下。

持续集成
持续集成是定期将代码更改合并到中央存储库的过程。例如,假设您 匈牙利赌博数据 已成功更改了工程团队数据管道代码库中的 Python 函数。持续集成表示应将此代码带回中央存储库。

但事情远不止眼前所见。每次进行新的更改时,应使用某种版本控制工具(如git )跟踪此代码,并使用单元测试和集成测试进行测试。这可以实现两点:首先,确保所有其他用户都可以使用代码库的最新更改;其次,验证代码更改确实按预期工作。

持续交付
将代码合并回中央代码库并进行测试后,如何将其投入生产?这就是 CD 的作用所在。CD 代表持续交付/部署(我们将坚持使用持续交付),是一种以自动化方式部署代码更改的实践。

有些人可能会认为单元测试和集成测试是持续部署的一部分,但无论如何,只有经过验证的代码才会投入生产



使用 Napkin.AI 创建

因此,总而言之,CI/CD 是一个端到端流程,确保代码在以自动化方式交付生产(持续交付)之前能够正常工作(持续集成)。要实现 CI/CD,我们需要使用 CI/CD 管道,接下来我们将对此进行详细介绍。

数据工程中的 CI/CD
数据工程最佳实践正越来越接近软件工程制定的指导方针。开发和运行单元测试以及维护专用测试/QA 环境等任务不再是软件工程朋友的专属任务。这包括 CI/CD。

您无需费尽心思就能在数据工程堆栈中找到 CI/CD 的用例。以下是一些常见用例:

使用“Asset Bundles”打包Databricks作业
将对Airflow DAG所做的更改运送到生产环境
发布 REST API 的新端点,向内部和外部数据消费者公开数据
更新用于准备每日报告数据的dbt作业
将 CI/CD 添加到“数据工程”开发生命周期有很多好处,包括管理投入生产的代码质量,以及减少发布这些更改的手动工作量。

CI/CD 还提供了对每个版本步骤的可见性,并可以将某些操作的访问权限限制在特定个体范围内。

CI/CD 管道
要执行 CI/CD,您需要使用 CI/CD 管道。CI /CD 管道是一系列步骤,用于在代码被签回中央存储库后测试 (CI) 和部署 (CD) 代码到生产环境。下面简要介绍一下 CI/CD 管道可能是什么样子。

显示示例 CI/CD 工作流程的图形。

CI/CD 管道通常由三个步骤组成:配置构建/部署环境、运行测试以及将代码运送到生产环境。

通常,CI/CD 管道中有三种类型的操作。首先,必须在运行管道的地方配置测试和部署代码所需的环境。这可能包括安装 CLI、获取机密以及最重要的拉取新更新的代码库等任务。

设置环境后,必须测试发布的代码。这是针对新更新的代码库运行单元测试和集成测试的地方。通过每个测试用例后,更新的代码就可以部署到生产中。
Post Reply