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 页
评论区
写评论还没有评论