Meltano:数据集成这件事,声明式全包了

meltano 在 GitHub 上已经拿到 2500 Star 了。

这个开源项目做一件事:用声明式配置文件管理数据管道。对接 600 多个 API 和数据库,写好 YAML 就能跑,告别自己写和维护 API 集成代码的日子。

正文顶部截图

1、 这玩意儿解决什么问题

做过数据集成的都懂一种痛苦:对接一个 API 得写一堆胶水代码;换一个数据源,认证方式变了、分页逻辑变了、字段映射变了,又得重写。数据源十个以上的时候,光维护这些连接器代码就是一份全职工作。

Meltano 的思路是把管道定义从代码里抽出来。数据源是什么、要拉哪些表、怎么映射到目标库,全写成 YAML。底层怎么发请求、怎么处理限流、怎么重试、怎么记日志,框架帮你包了。

2、 它是怎么跑的

核心三样东西:

项目:一个 Meltano 项目就是一个 Git 仓库。里面三块内容:YAML 配置、插件声明、管道调度脚本。管道的定义和业务代码放在一起,版本管理走 Git。

插件:Meltano Hub 上挂了 600 多个连接器。读取数据的叫 extractor,写入数据的叫 loader,中间转换的叫 mapper。社区可以往 Hub 上加新的,加完别人马上能用。

管道:一条管道就是 extractor 串 loader,中间可以插 mapper。用 meltano run 一行命令跑完。

meltano add extractor tap-github
meltano add loader target-postgres
meltano config tap-github set repository "..."
meltano run tap-github target-postgres

四行命令,GitHub 数据进了 Postgres。不用写一句 HTTP 请求代码。

README区域截图

3、 声明式好在哪

声明式的意思是:你描述要什么,不描述怎么做。你把精力放在业务问题上:要同步几个数据源、字段怎么映射、跑多频繁。API 限流怎么绕、数据库连接池怎么管、失败怎么重试,Meltano 自己处理。

另一个好处是团队协作。配置文件替代了文档。新人接手项目,读 YAML 就知道管道在同步什么,不用翻代码。CI/CD 里跑管道测试,一个命令的事。

4、 装起来怎么玩

Meltano 本身是一个 Python 包:

pip install meltano

也提供了 Docker 镜像。Slim 版体积小,推荐生产环境用;Full 版带了所有数据库驱动和编译工具:

docker run --rm meltano/meltano:latest-slim --version

管道跑起来之后,可以在 Meltano UI 上看到运行日志、跑过的历史、失败在哪一步。定时调度也是内置功能,配个 cron 就行。

5、 哪些人适合用它

  • 数据团队里负责 ETL 管道的工程师,手里的连接器脚本已经多到不想数了
  • 初创公司在搭数据栈,需要快速接上一堆 SaaS 平台,没精力从零写集成
  • 做分析或 ML 产品的团队,数据源 10 个以上,管道维护的时间已经超过了分析的时间

Meltano 社区 Slack 有 2500 多个数据工程师,文档在持续更新。MIT 协议,随便用。

经超过了分析的时间

Meltano 社区 Slack 有 2500 多个数据工程师,文档在持续更新。MIT 协议,随便用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐