数据管道的微服务框架,提供调度、重试和错误报告。
项目描述
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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5847a9166e432561fe7ae1a39300821d28c20bf5f9a1b0cf22753651f81163f9 |
|
MD5 | 13e81f80c8e347eba8f5f13c1bf0b5e4 |
|
BLAKE2b-256 | 614e72d11712098511f99a926bfd1cb205140e35d5356f77e711f07fbd84c522 |