Prefect适配GaussDB验证任务心得

举报
xiaojiawei 发表于 2024/12/06 16:12:32 2024/12/06
【摘要】 Prefect 是一款开源的工作流编排和任务调度工具,主要用 Python 开发,能帮助用户构建、运行和监控工作流,在数据工程和数据科学等领域应用广泛,可有效提高工作效率。

背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/)  通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

1 软件介绍

Prefect 是一款开源的工作流编排和任务调度工具,主要用 Python 开发,能帮助用户构建、运行和监控工作流,在数据工程和数据科学等领域应用广泛,可有效提高工作效率。

核心功能

  • 工作流编排:Prefect 是一个用于构建、运行和监控工作流的开源工具。它允许用户定义复杂的工作流,将任务(Task)组合在一起,这些任务可以是数据处理、机器学习模型训练、ETL(Extract,Transform,Load)操作等各种类型的计算任务。工作流可以是简单的线性序列,也可以是具有复杂依赖关系的有向无环图(DAG)。例如,在一个数据处理工作流中,可以有数据提取任务、数据清洗任务、特征工程任务和数据加载任务,它们按照特定的顺序和依赖关系执行。
  • 任务调度:提供了灵活的任务调度功能。用户可以根据时间间隔(如每小时、每天等)、特定的时间点(如每天凌晨 2 点)或者基于事件来触发任务。这对于周期性的数据更新和处理非常有用,比如每天定时从数据库中提取新的数据进行分析。
  • 状态跟踪和监控:能够跟踪工作流和任务的状态。它可以记录任务是处于等待、运行、成功还是失败状态。通过 Prefect 的监控界面(如 Prefect Cloud 或 Prefect Server),用户可以实时查看工作流的执行进度,及时发现问题。例如,如果一个数据加载任务失败,用户可以在监控界面中快速定位并查看详细的错误信息。
  • 容错性和重试机制:具有强大的容错能力。当任务失败时,它可以根据用户定义的重试策略自动重试任务。例如,对于可能因为网络波动导致失败的网络请求任务,可以设置重试次数为 3 次,每次重试之间间隔一定的时间,这样可以提高工作流整体的稳定性和可靠性。
  • 动态工作流:支持动态生成工作流。这意味着工作流的结构和任务可以根据运行时的条件进行动态调整。例如,根据数据源中的数据量或者数据类型,动态决定需要执行哪些数据处理任务。

架构图

图片4.png

适配思路

  1. 使用Window环境的ECS连接ECS上的openGauss,测试是否连通;
  2. 使用Window环境的ECS连接云数据库GaussDB,测试是否连通;
  3. 使用 鲲鹏EulerOS环境的ECS连接云数据库GaussDB,测试是否连通。

适配准备

准备三个弹性云服务器ECS,一个用于代码编写以及适配测试,另外一个用于部署openGauss用于本地测试,最后一个用于鲲鹏EulerOS环境适配GaussDB测试。

3.1 ECS配置

openGauss:

  • 计费模式选择:按需计费
  • 区域:华北-北京四
  • CPU架构:鲲鹏计算
  • CPU规格:large.2
  • CPU规格:2vCPUs&&4GiB
  • 镜像类型:公共镜像
  • 镜像:openEuler 20.03 64bit with ARM40GiB

适配测试:

  • 计费模式选择:按需计费
  • 区域:中国-香港
  • CPU架构:x86计算
  • CPU规格:xlarge.4
  • CPU规格:4vCPUs&&16GiB
  • 镜像类型:公共镜像
  • 镜像:Windows Server 2016 标准版 64位简体中文_40GB_香港

鲲鹏:

  • 计费模式选择:按需计费
  • 区域:华北-北京四
  • CPU架构:鲲鹏计算
  • CPU规格:xlarge.4
  • CPU规格:4vCPUs&&16GiB
  • 镜像类型:公共镜像
  • 镜像:Huawei Cloud EulerOS 2.0 标准版 64 ARM

3.2 openGauss安装、Windows系统的开发环境配置及软件安装

openGauss安装:参考https://blog.csdn.net/m0_56123985/article/details/123555605

软件安装以及环境配置:使用电脑管家或者网上查询安装

3.3 ECS安全组配置

配置规则 → 入方向规则 → 一键放通常用端口

添加常用端口以及openGauss设置的端口,目的:在适配测试的ECS可以pingopenGaussIP以及可以使用数据库管理工具连接到openGauss

3.4 下载GaussDB官网发布的商业驱动

安装路径:https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1836.html

部署参考:https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0176.html

4 Demo开发

  1. 安装依赖(需要安装python环境,最好是8或者3.9版本)pip install prefect psycopg2
  2. 根据官网参考文档,完成demo代码的编写(包括建表、表数据的增删改查)
  3. 更换成华为的Gauss数据库配置
  4. 更换成华为发表的商业驱动psycopg2

参考:

软件官网:https://www.prefect.io/

源码地址:https://github.com/PrefectHQ/prefect

demo地址:https://gitcode.com/xiaojiawei/opensource-demo-prefect-241206/overview

5 适配过程中的问题

  • 安装好openGauss后发现无法ping通另外一个ECSIP

         解决方法:修改ECS安全组配置

  • 使用数据库管理工具无法连接到openGauss

         解决方法:在服务器上修改openGauss的配置文件

         参考:https://blog.csdn.net/weixin_39976528/article/details/132765806

  • Window环境安装psycopg2依赖时报错

         解决方法:安装psycopg2-binary依赖代替

  • 使用华为的驱动后运行报错,发现是环境与驱动的版本不一致

         解决方法:uname -a查看运行环境,选择对应的驱动重新部署

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。