quokka

让数据湖高效处理时序数据,写入查询都快

quokka 是一个面向数据湖的时序数据管理框架,旨在让数据湖原生支持时间序列工作负载。它解决了传统数据湖(如 Iceberg、Hudi)在时序数据场景下写入吞吐低、查询延迟高、存储成本大的问题,通过统一的表格式抽象、自动分区策略、列式压缩与索引优化,使用户能以标准 SQL 或 DataFrame API 高效读写海量时序数据。核心能力包括:自动感知时间列并优化文件布局、支持乱序数据写入与合并、与 Spark/Presto 等引擎无缝集成,以及提供轻量级元数据管理。项目当前处于快速迭代阶段,适合需要低成本、大规模存储时序数据的平台团队。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1193
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类基础设施
开发团队marsupialtail
所属国家
定价模式free
价格说明开源项目,Apache-2.0许可证,可免费使用和部署。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型data-lake-analytics,distributed,etl-framework,mlops,sql
GitHub 星标★ 1193
30天Star增速
HF 下载量
上线时间2021-11-19 00:00:00
最近更新2026-09-12 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 4 步

环境要求

  • Redis 版本需大于 6.2(Quokka 强依赖)
  • Python 环境,可使用 pip3 安装包
  • Debian/Ubuntu 系系统可使用 apt 安装 Redis(README 给出的命令基于此)
  • 能访问 PyPI 下载 pyquokka

安装与启动步骤

  1. 1安装最新 Redis

    README 强调系统默认 apt 源里的 Redis 版本很可能不满足要求,需先添加 Redis 官方 APT 仓库再安装。

    curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
    sudo apt-get update
    sudo apt-get install redis
  2. 2确认 Redis 版本

    安装完成后必须执行版本检查,确保 Redis Server 版本大于 6.2,否则 Quokka 无法正常工作。

    redis-server -v
  3. 3安装 pyquokka

    通过 PyPI 安装 Quokka 的 Python 包 pyquokka,README 未指定额外参数,直接安装即可。

    pip3 install pyquokka
  4. 4本地验证 DataStream

    用 Polars DataFrame 创建本地 DataStream 做冒烟测试,能打印出 DataStream 即说明依赖链路正常。

    from pyquokka import QuokkaContext
    import polars
    
    qc = QuokkaContext()
    a = polars.from_dict({"a":[1,1,2,2], "b":['{"my_field": "quack"}','{"my_field": "quack"}','{"my_field": "quack"}','{"my_field": "quack"}']})
    b = qc.from_polars(a)
    print(b)

如何确认成功

在 Python 中执行 from pyquokka import QuokkaContext 并打印 qc.from_polars(a) 的结果,输出类似 DataStream[a,b] 即成功。

常见问题

Q:用 apt-get install redis 装的 Redis 可以吗?

A:README 明确提示默认 apt-get install 的版本很可能不对,务必用官方仓库安装后再用 redis-server -v 确认版本大于 6.2。

Q:Redis 版本低于 6.2 会怎样?

A:Quokka 要求 Redis > 6.2,版本不满足时无法正常使用,需要先按 README 的官方源方式升级 Redis。

Q:安装后如何快速自检?

A:先 redis-server -v 看版本,再在 Python 里导入 QuokkaContext 并用 Polars DataFrame 创建 DataStream,两步都通过说明环境可用。

Q:除了 Redis 还要装别的东西吗?

A:README 只要求 Redis > 6.2 并 pip3 install pyquokka,其余依赖(DuckDB、Polars、Ray、Arrow 等)由 pip 安装包时自动处理。

注意事项

  • README 只给出 Debian/Ubuntu 的 Redis 安装命令,其他系统需自行准备符合版本的 Redis。
  • Quokka 依赖 Redis 运行,使用前需保证 Redis 服务处于启动状态。
  • README 未列出具体配置项与端口参数,如需进阶配置请查阅官方文档 https://marsupialtail.github.io/quokka/。
  • 项目迭代较快,安装前可先浏览官方文档确认最新用法。

核心亮点

  • 自动按时间分区和文件裁剪,查询性能接近专用时序库
  • 原生支持乱序写入和实时合并,避免小文件问题
  • 基于 Python 实现,易于二次开发和集成现有数据栈

不足之处

  • 项目仍处于早期,生产环境稳定性待验证
  • 文档和社区生态相对薄弱

适用场景

  • 物联网设备数据长期归档与查询
  • 金融交易或监控指标的大规模存储分析
  • 数据湖平台统一时序与关系型数据管理

替代项目

Apache IoTDB、InfluxDB、TimescaleDB

项目介绍

quokka 是基础设施领域的开源项目,由 marsupialtail 开发,2021 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,193)位列前 30%,在基础设施分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-12。Apache-2.0许可证,可免费使用和部署。

它主要面向的使用场景是:物联网设备数据长期归档与查询。同类可对比的替代方案包括 Apache IoTDB、InfluxDB、TimescaleDB。

上一篇:distributed-inference

下一篇:MLOpsTemplate

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09