【prefect】python任务调度工具 Prefect | 可视化任务工具 | Python自动化的终极武器 | 高效数据管道管理

news2024/11/13 9:09:15

一、产品介绍

1、官方 Github

https://github.com/PrefectHQ/prefect

在这里插入图片描述

2、官方文档

https://docs.prefect.io/3.0/get-started/index

3、Pgsql说明

正确的python链接pgsql如下:

import psycopg2
from sqlalchemy import create_engine


def connect_with_psycopg2():
    try:
        conn = psycopg2.connect(
            dbname="prefect",
            user="prefect_user",
            password="123456-AbCd",
            host="127.0.0.1",
            port="5432"
        )
        print("Connection successful with psycopg2!")
    except Exception as e:
        print(f"Connection failed with psycopg2: {e}")
    finally:
        if conn:
            conn.close()

def connect_with_sqlalchemy():
    try:
        engine = create_engine("postgresql://prefect_user:123456-AbCd@127.0.0.1:5432/prefect")
        with engine.connect() as connection:
            print("Connection successful with SQLAlchemy!")
    except Exception as e:
        print(f"Connection failed with SQLAlchemy: {e}")

if __name__ == "__main__":
    connect_with_psycopg2()
    connect_with_sqlalchemy()


如何我们将密码设置为 123456-Ab@
整体字符串如下:postgresql://prefect_user:123456-Ab@@127.0.0.1:5432/prefect
链接失败!所以不要将密码设置为含有@的字符串

def connect_with_sqlalchemy():
    try:
        engine = create_engine("postgresql://prefect_user:123456-Ab@@127.0.0.1:5432/prefect")
        with engine.connect() as connection:
            print("Connection successful with SQLAlchemy!")
    except Exception as e:
        print(f"Connection failed with SQLAlchemy: {e}")

if __name__ == "__main__":
    connect_with_sqlalchemy()

二、搭建私有Prefect Server

私有化搭建,通过pgsql作为整个数据库

1、Docker搭建 PGsql

这里如果服务器拉不到最新版本的pgsql,可以通过科学上网做一份自己的pgsql镜像
这里我使用自己创建的镜像 :registry.cn-beijing.aliyuncs.com/dkzx_test/postgres

version: '3'

services:
  postgres:
    image: registry.cn-beijing.aliyuncs.com/dkzx_test/postgres:latest
    container_name: postgres
    environment:
      POSTGRES_DB: prefect
      POSTGRES_USER: prefect_user
      POSTGRES_PASSWORD: 123456-AbCd
    volumes:
      - /home/postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    restart: always

注意:
1、这里要给 /home/postgres_data 足够的权限

2、Docker搭建 Prefect

启动成功如下:
在这里插入图片描述

2.1、打Prefect镜像

因为 prefect没有最新的Docker Image 所以这里我们自己通过Dockerfile创建一个Prefect镜像
同样这里如果服务器拉不到最新版本的 Prefect,可以通过科学上网做一份自己的Prefect镜像
这里我使用自己创建的镜像 :registry.cn-beijing.aliyuncs.com/dkzx_test/python:3.9-slim

# unc_name)
#n 作为基础镜像
FROM registry.cn-beijing.aliyuncs.com/dkzx_test/python:3.9-slim

# 设置工作目录
WORKDIR /app

# 更新 pip 并安装 Prefect
RUN pip install --upgrade pip && \
    pip install -U prefect


# 运行 Prefect 以显示版本
CMD ["prefect", "--version"]

上面的 Dockerfile 通过打包程序打包成 Docker Image

docker build -t <docker-image-name> .

然后将image推送到私有镜像仓库,或者直接放本地直接启动
这里我们推送到私有镜像仓库registry.cn-beijing.aliyuncs.com/dkzx_test/prefect:customer-define-new

2.2、编写Prefect Docker-compose

在这里插入图片描述

下面注意几个点:
1、PREFECT_API_DATABASE_CONNECTION_URL :这个是连接pgsql的字符串信息,这里要使用前缀postgresql+asyncpg:,并且这里我们踩坑密码一定不能含@结尾数据
2、PREFECT_API_URL:这个对外开放API一定要用0.0.0.0的IP,不要用127.0.0.1
3、command:如果我们的Dashboard想被外网访问一定要指定host为0.0.0.0

version: "3"

services:
  prefect-server:
    image: registry.cn-beijing.aliyuncs.com/dkzx_test/prefect:customer-define-new
    container_name: prefect_server
    environment:
      PREFECT_API_DATABASE_CONNECTION_URL: postgresql+asyncpg://prefect_user:123456-AbCd@127.0.0.1:5432/prefect
      PREFECT_API_URL: http://0.0.0.0:4200/api
    ports:
      - "4200:4200"
    command: ["prefect", "server", "start","--host", "0.0.0.0"]
    restart: always

3、PGsql初始化

通过启动 prefect_server 会在指定的数据库自动创建如下所有的数据库表

在这里插入图片描述

4、公网可访问的裸奔服务

不得不吐槽一下,启动的私有部署Prefect是没有登录权限的
也没有token

5、Nginx 配置 Basic Auth

三、对比:Cloud & 私有部署

1、Cloud

cloud的功能更丰富,且可以创建Namespace

在这里插入图片描述

2、私有部署

私有部署的server相对比cloud要简单一些

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】经典数据集鸢尾花的分类识别

【机器学习】经典数据集鸢尾花的分类识别 1、数据集介绍1.1 数据集详情 2、实验内容2.1 准备数据集2.2 创建颜色映射对象2.3 绘制特征散点图2.4 数据的归一化2.5 数据的标准化 3、实验截图提取萼片长度与萼片宽度分类提取萼片长度与花瓣长度分类提取萼片长度与花瓣宽度分类提取…

Photoshop 2021安装教程

软件介绍 Adobe Photoshop&#xff0c;简称“PS”&#xff0c;是美国Adobe公司旗下最为出名的图像处理软件系列之一。ps 2021新增一键换天空&#xff0c;AI只能滤镜&#xff0c;新增内置的画笔工具极为丰富&#xff0c;成千上万的精致像素、动态和矢量画笔可以满足你的各种绘图…

谷歌深度学习研究揭示OpenAI O1模型优化策略:比规模更重要的计算效率

引言 近年来&#xff0c;大型语言模型&#xff08;LLMs&#xff09;如OpenAI的GPT-4和Google DeepMind的Palm 2已成为自然语言处理领域的佼佼者&#xff0c;它们通过生成类人文本、回答复杂问题、编写代码等能力&#xff0c;改变了许多行业的工作方式。然而&#xff0c;随着这…

2.4 数据库表字段约束

一、数据库三大范式 我们构造数据库的时候必须要遵守一定的原则&#xff0c;那这个规则就是范式关系型数据库&#xff0c;一共有六种范式&#xff0c;一般情况下只需要满足第三范式即可。 ​第一范式&#xff1a;原子性构造数据库必须遵循一定的规则&#xff0c;这种规则就是…

使用集成学习对不同的机器学习方法进行集成

数据入口&#xff1a;数据人才的现场调研 - Heywhale.com 本数据集中有 43 行&#xff0c;19 列&#xff0c;数据集包含如下字段&#xff1a; 首先读取数据&#xff1a; import pandas as pd# 读取Excel文件 data pd.read_excel(数据人才的现场调研.xls)可以输出每一列含有…

供方软件供应链安全保障要求及开源场景对照自评表(下)

国标《信息安全技术 软件供应链安全要求》确立了软件供应链安全目标&#xff0c;规定了软件供应链安全风险管理要求和供需双方的组织管理和供应活动管理安全要求。 开源软件供应链作为软件供应链的一种特殊形式&#xff0c;该国标亦适用于指导开源软件供应链中的供需双方开展组…

C HTML格式解析与生成之gumbo

测试 #include <fstream> #include <iostream> #include <stdlib.h> #include <string>#include "../src/gumbo.h"// 提取纯文本内容 static std::string cleantext(GumboNode* node) {if (node->type GUMBO_NODE_TEXT) {return std::st…

【TabBar嵌套Navigation案例-关于页面 Objective-C语言】

一、关于页面 1.首先,看一下我们的示例程序 点击关于以后,它实际上,跳到的也是SettingController,然后呢,传一个plist,但是,这个Controller里边,又多了一个header,所以,这个里边,我们也是用继承的方式去写,因为其他的页面没有这个header,不是所有的Setting都有he…

数据结构--结构体数组和结构体指针

1.定义结构体数组存储5个学生的信息&#xff1a;姓名&#xff0c;年龄&#xff0c;性别 定义函数实现输入&#xff0c;要求形参使用结构体指针接收 函数实现5个学生年龄排序(注意对年龄排序时&#xff0c;交换的是所有信息) 定义函数实现输出&#xff0c;要求形参使用结构体…

Innovus跑到中途想要更换library怎么办?

有的小伙伴在跑innovus时&#xff0c;可能会碰到library更新等问题。但此时&#xff0c;place已经跑完了&#xff0c;又不想重新跑&#xff0c;怎么办呢&#xff1f; 其实&#xff0c;每次保存的innovus database里面都有专门存放这些数据的文件。我们可以将其中一些setting文件…

VBA技术资料MF197:禁用复制的快捷键

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

Linux内核结构

Linux内核结构 文章目录 Linux内核结构一、Linux内核结构介绍1.1 总体结构&#xff1a;1.2 Linux内核结构框图&#xff1a; 二、图解Linux系统架构三、shell3.1 shell的含义&#xff1a;3.2 shell的作用&#xff1a;3.3 shell的类型&#xff1a;3.4 shell的使用&#xff1a;3.5…

Allow anonymous access to my Azure OpenAI chat bot

题意&#xff1a;允许匿名访问我的 Azure OpenAI 聊天机器人 问题背景&#xff1a; I have an Azure OpenAI chat bot using my own data (I configured an OpenAI resource and chose Deploy as Web App) . Members of my domain can access it by logging in. Now I want it…

2.5 数据库索引机制

我们往数据表里面保存数据记录越来越多&#xff0c;一旦达到上千万条&#xff0c;那怎么提高检索速度就需要认真考虑了。我们打开手机上的APP都希望能快些加载出内容&#xff0c;这里的因素有很多&#xff0c;但是如何减少数据查找的时间是其中的重要一环。索引机制就是提升数据…

【内网渗透】最保姆级的春秋云镜Privilege打靶笔记

目录 flag1 flag2 flag3 flag4 flag1 fscan扫外网 访问./www.zip拿到源码 tools/content-log.php存在任意文件读取 根据提示读到Jenkins初始管理员密码 ./tools/content-log.php?logfile../../../../../../../../../ProgramData/Jenkins/.jenkins/secrets/initialAdminP…

第十一章 【后端】商品分类管理微服务(11.5)——增强响应

11.5 增强响应 在前后端分离的开发模式下,我们一般会统一后端的响应格式,比如自定义 Response 结构,但每个开发者可能会封装各自的 Response 结构,造成不一致,因此我们需要将响应格式统一起来,定义一个统一的标准响应格式。 11.5.1 创建响应模块 新建 yumi-etms-respon…

AJAX Jquery $.get $.post $.getJSON

AJAX AJAX Asynchronous JavaScript and XML (异步的J avascript和XML)。 Ajax $.ajax <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

【Linux进程控制】进程程序替换

目录 进程程序替换 替换函数 看现象 替换原理 多进程替换 exec*函数使用&#xff08;部分&#xff09;&#xff0c;并且认识函数参数的含义 1.execl 2.execv 3.execvp 4.execvpe execlp 和execlpe 替换函数总结 进程程序替换 替换函数 有六种以exec开头的函数&am…

AI大语言模型的全面解读

大语言模型&#xff08;Large Language Models, LLMs&#xff09;无疑是近年来最耀眼的星辰之一。他们以惊人的语言生成能力、上下文理解能力以及对复杂任务的泛化能力&#xff0c;正在深刻改变着自然语言处理&#xff08;NLP&#xff09;乃至整个AI领域的格局。 本文将从专业角…

螺栓与散装物体检测系统源码分享

螺栓与散装物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…