向 HN 展示:Filament – Go 语言快速数据移动引擎

Hacker News Top 工具

摘要

Filament 是一个用 Go 编写的快速数据移动引擎,提供可插拔的数据复制功能,支持检查点、批处理和完整性事件,以实现可靠且持久的数据管道。

你好,我是 Galaxy 的联合创始人之一 Leon。我们刚刚开源了 Filament,我们的数据移动引擎。<p>它使用 Go 编写,采用 Apache 2.0 许可。目前我们支持一些 API 连接器,包括 Postgres、MySQL、ClickHouse、Iceberg 和 S3。<p>我们将 Filament 与其他多个开源数据移动工具进行了基准测试,结果和测试工具可在 <a href="https:&#x2F;&#x2F;github.com&#x2F;galaxy-io&#x2F;benchmarks" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;galaxy-io&#x2F;benchmarks</a> 获取。<p>这只是 Filament 的第一个小版本发布,还有很多内容需要构建。我们很期待根据您的反馈来塑造我们的路线图。如果您愿意尝试,任何反馈都将非常感激!<p>文档可在 <a href="https:&#x2F;&#x2F;filament.getgalaxy.io" rel="nofollow">https:&#x2F;&#x2F;filament.getgalaxy.io</a> 查看,关于我们为什么构建它的更长博客文章在 <a href="https:&#x2F;&#x2F;www.getgalaxy.io&#x2F;blog&#x2F;introducing-filament" rel="nofollow">https:&#x2F;&#x2F;www.getgalaxy.io&#x2F;blog&#x2F;introducing-filament</a>
查看原文
查看缓存全文

缓存时间: 2026/09/10 17:18

galaxy-io/filament

来源:https://github.com/galaxy-io/filament
发布版本 (https://github.com/galaxy-io/filament/releases)
测试 (https://github.com/galaxy-io/filament/actions/workflows/test.yaml)
许可证:Apache 2.0
DeepWiki (https://deepwiki.com/galaxy-io/filament)
Slack (https://join.slack.com/t/galaxy-filament/shared_invite/zt-486oaagls-WCKm605mP6NCmoB3E7frpQ)

Filament

Filament 是一个具备检查点、批处理和完整性事件的可插拔数据复制工具。它使用全量、增量或变更数据捕获复制方式,将数据从源移动到目标。Filament 在数据传输过程中持久化进度记录,对写入两侧的批次进行验证,并能安全地从检查点暂停或恢复运行。数据源、数据目的地、状态存储和事件传输均为可替换接口。

你可以通过其 API 和 Web UI 将 Filament 作为服务运行,部署到自有基础设施,或将引擎嵌入 Go 应用程序。

安装

curl -fsSL https://getgalaxy.io/filament/install | sh  

在 macOS 上通过 Homebrew 安装:

brew install galaxy-io/tap/filament  

Linux 和 macOS 的预编译二进制文件可在发布页面 (https://github.com/galaxy-io/filament/releases) 下载。

入门指南

要在本地运行 Filament,请安装 Go、Docker、just、Node.js 和 pnpm。
在 macOS 上,仓库的 Brewfile 会安装工具链:

brew bundle  

对于 Podman 用户,请设置 CONTAINER_ENGINE=podman 以在以下命令中使用 Podman。详情参见 引擎配置

启动 PostgreSQL 和 NATS,然后运行 Filament:

just infra  
just dev  

打开 http://localhost:3000 使用 Web UI。完成后,停止本地基础设施:

just infra down  

部署 Filament

推荐使用 Kubernetes 和 Helm 在生产环境中运行 Filament。安装说明请参见 Kubernetes 部署指南 (https://filament.getgalaxy.io/pages/guides/deployment/kubernetes),所有支持的配置项请查看 Helm Chart README

如需更简单的免 Kubernetes 托管部署,可一键部署:

请阅读 Railway (https://filament.getgalaxy.io/pages/guides/deployment/railway)、Render (https://filament.getgalaxy.io/pages/guides/deployment/render) 和 DigitalOcean (https://filament.getgalaxy.io/pages/guides/deployment/digitalocean) 指南,了解部署的资源、运行时行为和生产环境检查清单。

DigitalOcean 部署使用 filament/standalone (https://github.com/galaxy-io/filament/blob/main/cmd/standalone/main.go),这是一个包含控制平面、服务器和 SQLite 数据存储的一体化镜像。

工作原理

Filament 管道将数据源连接到数据目的地,并定义选定资源应如何复制。在运行过程中,Filament 将记录提取成有限批次,写入并验证每个批次,仅在成功完成后才推进持久化检查点。

运行时采用事件驱动架构:服务器接收管道和运行请求,控制平面调度和分配任务,工作节点执行单个运行任务。PostgreSQL 存储持久化状态,NATS JetStream 在各组件之间传输生命周期事件。

开发 Filament

Filament 使用 Go 编写,Web UI 基于 React 和 TypeScript。欢迎为引擎、连接器、UI、部署工具、测试和文档贡献代码。
请参阅 CONTRIBUTING.md 了解仓库设置、代码生成、测试和拉取请求指南。

社区

  • 阅读 Filament 文档 (https://filament.getgalaxy.io)。
  • 在 Filament Slack 社区 (https://join.slack.com/t/galaxy-filament/shared_invite/zt-486oaagls-WCKm605mP6NCmoB3E7frpQ) 提问并与其他用户交流。
  • 通过 GitHub Issues (https://github.com/galaxy-io/filament/issues) 报告错误或提出功能建议。

相似文章

Fileregister:基于纯文本的文件标签与引用层

Hacker News Top

Fileregister 是一款可移植的 Go CLI 工具,它通过永久 ID、JSONL 索引和 Markdown 伴生文件,为文件构建纯文本的标签与引用层,使链接和元数据在重命名和跨磁盘移动后依然得以保留。

HFlow

Product Hunt

HFlow 是一个可扩展的多模态数据管道工具,用于机器人应用,最近在 Product Hunt 上被推荐。

I want extern "fil-c"

Lobsters Hottest

作者主张一种讲 Fil-C ABI 的 Rust FFI,使其能够与重新编译的 C/C++ 库安全互操作,并呼吁 Rust、Fil-C、Zig 和 Nix/filnix 社区之间进行跨生态协作。