跳转到主要内容

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

项目描述

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

Mettle是一个用于管理提取/转换/加载(ETL)作业的框架。ETL流程存在一些问题,Mettle旨在解决这些问题

描述

  • 作业需要在特定时间运行。有时它们需要由其他作业的完成来触发。Mettle支持基于时间和触发器的作业调度。

  • 组织中的不同人员需要能够看到作业计划和最近运行的状况。在大量服务器上分散运行的简单脚本,由于cron作业的可见性问题而造成严重问题。Mettle通过集中作业调度、状态报告和日志查看来解决这个问题。

  • 有时作业失败是因为某些地方出现了暂时性的问题(网络不稳定、磁盘空间不足)。Mettle将自动重试作业来处理这种情况。

  • 有时工作会失败,并且只有在工作被重新配置(例如数据库上的密码更改)后才能成功。Mettle使得在解决这些问题后手动重新启动工作变得容易。

  • 如果您尝试通过集中化所有ETL执行来解决上述问题,您很快会遇到依赖关系激增的问题。集中的ETL服务可能难以开发和部署,因为所有这些依赖关系(库、外部API、外部数据库)引入了更多的不稳定性。Mettle被设计为将那些依赖关系隔离成独立的ETL服务,因此一个ETL的不稳定性不会影响到其他任何服务。

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

  • 它包含字母E、T和L。

  • 它意味着“在困难中继续的能力”。

  • 它听起来像“金属”,这是坚固的。

Mettle由几个组件组成

  • Web UI。功能
    • 配置管道的调度。

    • 显示过去的工作,无论是成功的还是失败的。

    • 显示当前执行的工作,带有实时状态更新和流日志。

    • 手动启动工作。

  • 定时器:从数据库中读取管道调度,并在管道需要启动时发送RabbitMQ消息。

  • 调度器:记录哪些工作由哪些工作者执行,以及它们的最终成功或失败。

  • 记录器:接收ETL服务通过RabbitMQ发送的日志消息,并将它们保存到Postgres。

  • ETL服务:实现实际的业务逻辑和系统集成,以在系统之间移动数据。

Mettle使用Postgres存储状态,并使用RabbitMQ进行进程间通信。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

mettle-0.7.16.tar.gz (311.0 kB 查看散列)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面