用于数据管道、提供调度、重试和错误报告的微服务框架。

mettle的Python项目详细描述


https://img.shields.io/pypi/v/mettle.svghttps://img.shields.io/pypi/pyversions/mettle.svghttps://img.shields.io/travis/yougov/mettle/master.svg

Mettle是一个用于管理提取/转换/加载(ETL)作业的框架。ETL公司 流程提出了许多Mettle旨在解决的问题:

说明

  • 作业需要在特定时间运行。有时它们需要由 完成其他工作。Mettle支持基于时间的调度 以及基于触发器的作业。
  • 一个组织中的不同人员需要能够看到工作安排和 最近运行的状态。运行在cron作业上的简单脚本,分散 在大量的服务器中,会产生严重的可见性问题。 Mettle通过集中作业调度、状态报告和 日志查看。
  • 有时工作失败是因为某个地方的临时问题(一个不稳定的网络, 磁盘太满)。Mettle将自动重试作业来处理此问题。
  • 有时工作会失败,直到工作完成后才能成功。 重新配置(例如,更改了数据库上的密码)。勇气造就了它 在解决此类问题后,可以轻松手动重新启动作业。
  • 如果您试图通过集中所有etl执行来解决上述问题, 您很快就会遇到依赖关系激增的问题。集中的 etl服务很难开发和部署,因为 依赖项(库、外部api、外部数据库)引入了更多 不稳定。Mettle旨在将这些依赖项分离为 etl服务,因此一个etl中的不稳定性不会影响任何其他etl。

我们选择“Mettle”这个名字是因为:

  • 里面有字母E,T和L。
  • 它的意思是“有能力在困难中继续前进”。
  • 听起来像“金属”,是固体。

Mettle由几个组件组成:

  • 网络用户界面。功能:
    • 为管道配置计划。
    • 显示过去的作业,包括成功的作业和失败的作业。
    • 显示当前正在执行的作业,包括实时状态更新和流式处理 原木。
    • 手动启动作业。
  • 计时器:从数据库中读取管道计划并发送rabbitmq消息 当需要启动管道时。
  • Dispatcher:记录哪些工人正在执行哪些作业,以及他们 最终的成功或失败。
  • logger:通过rabbitmq接收etl服务发送的日志消息,并保存 寄到邮局。
  • etl服务:实现实际的业务逻辑和系统集成 在系统之间移动数据。

mettle使用postgres存储状态,rabbitmq用于进程间 沟通。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
socketJava加密聊天客户端未通过关联   java保存JFileChooser的状态   java如何让代码等待GUI完成?   java可序列化和接口:Parcelable在写入可序列化对象时遇到IOException   java Jersey客户端将覆盖ROBOTS响应   java空指针异常&如何克服   java如何使用JAXR设置字符集?   JavaSpring自定义转换器被覆盖   java将泛型类型的值设置为DTO字段   使用netty的java音频流服务器   java滚动条添加到面板时不显示在滚动窗格中   java windows通过IIS Url重写单点登录tomcat   Web应用程序的java容器管理安全性   java使用mybatis将POJO项数组传递到存储过程?