Repolode
monoscope-tech

monoscope-tech/timefusion

面向日志、链路追踪、指标和事件的时序数据库,数据以 Delta Lake 表存于 S3,并通过 PostgreSQL 协议查询。

Star
221
Fork
9
未关闭 Issue
7
最近提交
前天

这是什么?

TimeFusion 将日志、链路追踪、指标和事件等可观测性数据以 Delta Lake 表的形式存放在用户自有的 S3 兼容对象存储中,支持 S3、MinIO、R2 等。它提供 PostgreSQL 连接协议,使用 psql 或常见 Postgres 驱动即可写入和查询,无需额外客户端。查询由 Apache DataFusion 在 Parquet 文件上执行。

写入先经过预写日志(WAL)和内存缓冲区,再由后台刷新到 Delta,因此写入确认较快。查询会同时读取内存缓冲区和 S3 上的数据,刚写入的数据可立即查到。数据按 project_id 和日期分区,查询需带上 project_id 条件以实现租户隔离并利用分区裁剪。

项目目前处于 1.0 之前阶段,已在 APIToolkit 生产环境使用。同一 WAL 目录同一时间只能由一个进程占用,缓冲区大小、刷新间隔以及基于 Foyer 的内存与磁盘缓存均可配置。

核心功能

  • 01数据以 Parquet 格式存放在 S3 兼容存储上,并由 Delta Lake 事务日志管理。
  • 02可使用 psql 及任意 PostgreSQL 驱动连接。
  • 03基于 DataFusion 执行分析型 SQL,支持窗口函数和 PERCENTILE_CONT。
  • 04写入先经 WAL 和内存缓冲区,再后台刷新到 Delta。
  • 05按 project_id 分区并隔离多租户数据。
  • 06通过 Foyer 提供内存加磁盘的两级缓存。

适用场景

  • 将应用日志和 OpenTelemetry 链路数据存放在自有 S3 存储桶中。
  • 用标准 SQL 对各项目的事件数据进行延迟和错误率分析。
  • 让已有基于 Postgres 的 BI 或可观测性工具无需新客户端即可访问事件数据。

快速上手

  1. 1

    克隆仓库

    git clone https://github.com/monoscope-tech/timefusion.git
  2. 2

    启动内置的 Compose 环境(包含本地 MinIO,无需 AWS 账号)

    docker compose up
  3. 3

    使用 psql 连接 5432 端口

    psql "postgresql://postgres:postgres@localhost:5432/postgres"

使用前须知

  • 项目处于 1.0 之前的阶段,模式、协议行为和配置可能在版本之间发生变化。
  • 同一个 WAL 目录同一时间只能运行一个 TimeFusion 进程。
  • 查询应始终包含 project_id 过滤条件,否则会跨租户扫描,速度明显变慢。
  • 从源码构建需要 Rust 1.85 或更高版本。

收录于专题

标签

#timeseries#observability#delta-lake#postgresql#datafusion#parquet#s3#logs

常见问题

timefusion 是什么?
面向日志、链路追踪、指标和事件的时序数据库,数据以 Delta Lake 表存于 S3,并通过 PostgreSQL 协议查询。 TimeFusion 将日志、链路追踪、指标和事件等可观测性数据以 Delta Lake 表的形式存放在用户自有的 S3 兼容对象存储中,支持 S3、MinIO、R2 等。它提供 PostgreSQL 连接协议,使用 psql 或常见 Postgres 驱动即可写入和查询,无需额外客户端。查询由 Apache DataFusion 在 Parquet 文件上执行。
timefusion 可以免费使用吗?用的什么许可证?
timefusion 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
timefusion 还在维护吗?
活跃维护中。timefusion 最近一次提交是在 2026年11月5日。
timefusion 适合用来做什么?
将应用日志和 OpenTelemetry 链路数据存放在自有 S3 存储桶中。 用标准 SQL 对各项目的事件数据进行延迟和错误率分析。 让已有基于 Postgres 的 BI 或可观测性工具无需新客户端即可访问事件数据。
timefusion 怎么安装和运行?
克隆仓库: git clone https://github.com/monoscope-tech/timefusion.git 启动内置的 Compose 环境(包含本地 MinIO,无需 AWS 账号): docker compose up 使用 psql 连接 5432 端口: psql "postgresql://postgres:postgres@localhost:5432/postgres"
在哪里获取 timefusion?
源代码和安装说明在 GitHub 上:https://github.com/monoscope-tech/timefusion

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目