使用 DuckDB 构建本地优先数据探索工具

发布: (2026年1月4日 GMT+8 14:48)
6 min read
原文: Dev.to

Source: Dev.to

whtsht

什么

我正在构建 streaksight,一款基于 GUI 的数据分析工具,可在本地机器上运行。

该项目是开源的,代码托管在 GitHub 上。

目标是尽量缩短将数据转化为洞见所需的时间。streaksight 让你能够在单一的本地应用中加载、分析和可视化数据。

注意: streaksight 仍在开发中,尚未正式发布。

您可以做什么

数据导入

数据导入截图

只需选择文件,streaksight 即可自动检测模式并将数据导入其嵌入式数据库。目前支持 CSVJSON 格式。未来计划支持以下数据来源:

  • AWS S3 的对象存储
  • MySQL 的数据库
  • Google Analytics 的 SaaS 平台

使用节点进行查询构建和可视化

查询构建截图

图表截图

查询可以通过连接节点来构建。执行结果实时显示,使您能够迭代探索数据、交互式获取洞察,并在此过程中不断优化查询。

Who

streaksight 最适合处理相对较小的数据集。

  • 独立开发者和运营自有产品的小团队
  • 想在本地分析小到中等规模日志或事件数据的人
  • 想在构建全规模数据平台之前验证其数据价值的团队

为什么

我第一次在工作中调查日志时遇到了 DuckDB。它的执行速度出乎意料地快,给我留下了深刻的印象。

在那次经历之后,我开始更密切地关注 DuckDB 生态系统,特别留意 MotherDuckDuckLake 等项目。

与此同时,我负责运营 BigQuery,包括成本优化工作。通过这项工作,我对构建和运营数据平台背后的技术产生了浓厚兴趣。在探索与数据基础设施相关的各种 SaaS 和 OSS 项目时,我注意到几个反复出现的问题。

问题 1:设置复杂性

大多数数据基础设施 OSS 项目专注于单一职责,并设计为可以相互组合。

  • ETL:Airbyte、Apache NiFi、…
  • 查询引擎:DuckDB、ClickHouse、…
  • 可视化:Redash、Metabase、Apache Superset、…

这种分离提升了可扩展性和稳定性,但也增加了设置和维护成本。选择合适的工具并将它们串联起来会带来显著的额外开销,尤其是对于小规模的数据分析而言。

问题 2:构建正确查询的难度

随着 AI 的兴起,编写 SQL 查询变得更加容易。然而,调试这些查询并验证它们是否真正产生预期结果仍然困难重重。

查询是一系列集合操作和连接的组合。为了快速验证 AI 生成的查询,我觉得迫切需要一种界面,让用户能够检查中间结果,例如子查询和连接输出。

streaksight 通过在本地环境中实现快速、迭代的查询实验和结果检查,解决了这些问题,而无需组合多个工具。

技术栈

设计原则: 在单机上高效运行

  • DuckDB – 一个面向 OLAP 的数据库,在单机上提供卓越性能。
  • Tauri – 支持构建跨平台桌面应用;生成轻量级二进制文件,并允许前端使用网页技术构建。
  • Deno.js – 一个与 Rust 项目良好集成的 JavaScript 运行时;用于让用户在无需重新构建应用的情况下添加自定义 JavaScript 插件。
  • Singer.io – 在设计 ETL 插件接口时作为参考。

路线图

由于数据源差异巨大,连接器的灵活性是关键关注点。接下来的步骤是增加支持的连接器数量并完成插件接口的制定。最终目标是让用户能够使用 JavaScript 编写自定义连接器,从而直接连接各种数据源。

此外,正在探索以下功能:

  • 共享洞察
    • 仪表盘
  • AI 集成
    • 模型上下文协议
  • 云集成

这些功能的范围和方向将根据实际使用案例进行细化。

结束语

如果您觉得这个项目有趣,恳请您在 GitHub 上给它点个星星,我将不胜感激。

如果您对该项目有任何疑问或反馈,请随时在此发起讨论:
https://github.com/whtsht/streaksight/discussions

Back to Blog

相关文章

阅读更多 »