Skip to content

EasyDB 是一个由 Rust 编写的 SQL 助手,旨在增强文本文件查询能力。通过 EasyDB,你可以将多个文本文件视为一个数据库,并使用 SQL 进行查询。它支持多种文件格式,包括 CSV、NdJson、JSON、xlsx 和 Parquet 文件,无需进行文件转换,开箱即用。

License

Notifications You must be signed in to change notification settings

shencangsheng/easy_db

Repository files navigation

EasyDB

Docker Pulls

简体中文 | English

EasyDB 是一个由 Rust 编写的 SQL 助手,旨在简化文本文件查询过程。通过 EasyDB,你可以将多个文本文件视为一个数据库,并使用 SQL 进行查询。它支持多种文件格式,包括 CSV、NdJson、JSON、xlsx 和 Parquet 文件,无需进行文件转换,开箱即用。

底层采用了由 Rust 编写的高性能可扩展查询引擎 DataFusion

📖 功能

  • 支持 CSV 文件
  • 支持 NdJson 文件
  • 支持 TSV 文件
  • 支持 xlsx 文件 - beta
  • 使用标准 SQL 语句对文件数据进行查询

🔮 路线

  • 优化异常提示
  • 根据路径自动识别表
  • 自动生成 table schema
  • 支持输出更多数据类型
  • 支持 select * from '/path/example.csv' 直接访问本地文件,不需要提前 create table
  • 支持 s3 远程文件
  • 支持 JSON 文件
  • 支持多路径
  • 支持 MySQL 表
  • 支持 Parquet 文件
  • 支持 Tsv 文件
  • 支持 xlsx 文件
  • xlsx 文件性能优化(提高兼容性)
  • 增加 session 减少文件载入次数

🚀 快速开始

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

demo.gif

示例

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)

👍 依赖库

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

📝 许可证

A short snippet describing the license (MIT)

MIT © Cangsheng Shen

About

EasyDB 是一个由 Rust 编写的 SQL 助手,旨在增强文本文件查询能力。通过 EasyDB,你可以将多个文本文件视为一个数据库,并使用 SQL 进行查询。它支持多种文件格式,包括 CSV、NdJson、JSON、xlsx 和 Parquet 文件,无需进行文件转换,开箱即用。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published