< 返回版块

shencangsheng 发表于 2025-08-13 16:16

Tags:txt,csv,xlsx,json,query-editor,sql-assisant

EasyDB

Hi,各位大佬好。

平时在工作生活中,或多或少遇到需要对的 csv/xlsx/json 文件进行批量的数据导入或者进行一些数据清洗,尤其对于上百兆的大型文本文件,无论是打开还是操作都是非常头疼的;

我的工作有相当一部分是管理公司的数据中心,这样的工作让我非常头疼;所以我决定寻找或开发一款可以直接利用 SQL 查询文本并 API 友好的工具,在此期间我发现了 DataFusion 我惊喜的发现它完美符合我的想法,但是缺乏灵活性以及 UI 界面,所以我决定在此基础上进行扩展开发,项目的 UI 风格如果有使用过 CDH Hue 会感到无比熟悉。

通过 EasyDB,你可以将多个文本文件视为一个数据库,并使用 SQL 进行查询。它支持多种文件格式,包括 CSV、NdJson、JSON、xlsx、TSV 和 Parquet 文件,无需进行文件转换,开箱即用。

它可以轻松访问上百兆的文件,你可以使用 SQL 穿梭于多个文本文件中,在未来甚至可以与 MySQL、Postgresql 的数据表进行关联查询。

🚀 快速开始

git clone https://github.com/shencangsheng/easy_db.git
cd easy_db
docker compose up -d
# http://127.0.0.1:8088

📖 功能

  • 支持 CSV 文件
  • 支持 NdJson 文件
  • 支持 TSV 文件
  • beta)支持 xlsx 文件
  • 使用标准 SQL 语句对文件数据进行查询
  • 支持 select * from '/path/example.csv' 语法直接访问本地文件,不需要提前 create table
  • 优化异常提示
  • 支持 TSV 文件

🔮 路线

  • 根据路径自动识别表
  • 自动生成 table schema
  • 支持输出更多数据类型
  • 支持 s3 远程文件
  • 支持 JSON 文件
  • 支持多路径
  • 支持 MySQL 表
  • 支持 Parquet 文件
  • xlsx 文件性能优化(提高兼容性)
  • 增加 session 减少文件载入次数

示例

select *
from '/var/lib/easydb/example/order*.csv'
create table user
(
) location 'example/user.csv'
create table log
(
) location 'example/2025*.log'
select *
from user as t1
         inner join log as t2 on (t1.id = t2.user_id)

👍 依赖库

这些开源库用于创建本项目。


Ext Link: https://github.com/shencangsheng/easy_db

评论区

写评论

还没有评论

1 共 0 条评论, 1 页