跳转到主要内容

未提供项目描述

项目描述

beakers

beakers 是一个用于Python的实验性轻量级声明式ETL框架

它仍然处于不断变化中,没有正确性或稳定性保证。

尚未有贡献,但请随意探索/提问。

功能

  • 由Python函数和Pydantic模型组成的声明式ETL图
  • 友好的CLI用于运行进程
  • 同步/异步任务执行
  • 数据检查点存储在本地数据库中,用于中间缓存和恢复中断的运行
  • 强大的错误处理,包括重试

指导原则

  • 轻量级 - 写一个Python文件应该足以开始。在这方面,它应该像脚本一样易于使用。
  • 数据中心 - 了解每个步骤添加的数据。
  • 现代Python - 充分利用Python的最新添加,包括类型提示、asyncio和像pydanticrich这样的库。
  • 开发者体验 - 专注于开发者体验:友好的CLI,有帮助的错误信息。

反原则

与这个领域的多数工具不同,这不仅仅是一个完整的“企业级”ETL解决方案。

这并不是一个完美的类比,但可以说databeakersluigi的关系就像flaskDjango的关系。如果您正在围绕ETL构建整个业务,投资基础设施和工具来使该工作变得合理是明智的。也许围绕beakers组织代码会使迁移到这些工具比编写定制脚本更容易。此外,beakers是Python,因此您始终可以从更大的框架中运行它。

概念

像大多数ETL工具一样,beakers是围绕有向无环图(DAG)构建的。

此图上的节点称为“beaker”,边通常称为“转换”。

(注意:这些名称不是最终的,欢迎提出建议。)

Beakers

图中的每个节点都称为“beaker”。beaker是一些数据的容器。

每个烧杯都有一个名称和类型。名称用于在图中其他地方引用烧杯。类型由一个pydantic模型表示,定义了数据的结构。通过利用pydantic,我们可以免费获得许多很棒的功能,例如验证和序列化。

转换

图中的边表示烧杯之间的数据流。每条边都有一个“源烧杯”和“目标烧杯”的概念。

主要有两种类型

  • 转换 - 转换根据源烧杯中已有的数据,在目标烧杯中放置新的数据。一个例子可能是一个转换,它接受一个URL列表并下载每个URL的HTML,将结果放置在新的烧杯中。

  • 过滤 - 过滤可以根据某些标准阻止数据从一个烧杯流向另一个烧杯。

种子

烧杯的一个独特概念是“种子”。种子是一个函数,它为烧杯返回初始数据。

这对于像用要抓取的URL列表或要处理的图像列表开始图的情况很有用。

一个烧杯可以有任意数量的种子,例如,一个可能有一个用于测试的短URL列表,另一个则从数据库中读取。

项目详情


下载文件

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

源分发

databeakers-0.3.9.tar.gz (33.9 kB 查看哈希值)

上传时间

构建分发

databeakers-0.3.9-py3-none-any.whl (36.3 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

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