3.7k star!据说是万能的 SQL 分析工具,真牛逼!

文摘   教育   2024-12-06 21:02   江西  

* 戳上方蓝字“开源先锋”关注我



推荐阅读:

《12.6K star!Shell命令即搞定可视化监控,超级6~~


《5.6K star!再见了DocSend,这款开源项目更不错!


《2.9K star!微软Office的开源免费平替,多平台支持,牛逼!》


《4.1K star!跨屏操作的神器,流畅丝滑!》


《9.1K star!国外大神1:1复刻Win11系统,开源牛逼!》




大家好,我是开源君!

众所周知,SQL是数据分析领域的利器,但它通常只能用于分析数据库中的数据。而现实生活中,我们经常会遇到各种各样的本地文件,比如Excel、JSON、CSV等。如果要分析这些文件,就需要借助专门的工具。

今天开源君介绍一个超级棒的开源项目 - dsq可以让你用熟悉的SQL语法,轻松分析各种本地文件。

简介

dsq一款支持本地文件的SQL命令行分析工具,可以对数据文件进行 SQL 查询,让我们轻松对各种文件进行查询、分析和处理。

支持多种数据格式,包括 JSON、CSV、Excel、Parquet 等,

市面上类似的工具其实也有不少,作者也做了很细致的研究和分析,得出比较结论:dsq 目前是功能最为全面的,性能最极致的。

下面这张图是市面上各种数据处理工具的对比,相比较而言,dsq还是很有优势的。

目前项目在 github 上面收获了 3.7k 的 star。

性能特色

  • 支持多种文件格式,包括 Excel、JSON、CSV、XML、YAML、Markdown 和 Text
  • 使用标准的 SQL 语句进行操作,无需学习新的语法
  • 支持多种高级功能,包括正则表达式、缓存、函数和脚本
  • 性能优异,采用高效的底层库,分析速度快
  • 开源免费,代码开源,可自由使用和修改

安装

项目安装很简单,win系统的话,直接到项目 releases 页面下载,然后解压即可使用。

macOS的话,执行下面的安装命令

brew install dsq

Linux系统则可以用下面的安装:

VERSION="v0.23.0"
FILE="dsq-$(uname -s | awk '{ print tolower($0) }')-x64-$VERSION.zip"
curl -LO "https://github.com/multiprocessio/dsq/releases/download/$VERSION/$FILE"
unzip $FILE
sudo mv ./dsq /usr/local/bin/dsq

使用方法

最基本的使用就是, dsq filename 或者 dsq filename "SELECT * FROM {}

比如:

dsq testdata.json "SELECT * FROM {} WHERE x > 10"

有时候直接读取的话,样式会比较难看。

可以用-p 或者 --pretty参数,对内容进行美化。

如果要读取多个文件,可以用如下的方法:

dsq a.csv b.json "select {0}.name, {1}.age from {0} join {1} on {0}.id = {1}.id"

a.csv b.json代表要查询的两个文件,在上述 select 语句中分别用 {0}、{1}代表。

另外,dsq还支持读取excel所有sheets的内容的。

比如说c.xlsx这个文件有两个 sheets,可以使用如下的方法来查询 sheet2 里面的内容。

dsq c.xlsx "SELECT COUNT() FROM {'Sheet2'} where Country='China'"

关于管道传递数据,直接使用管道符| 来传递数据,要加-s参数来指明传递的文件类型。如:

cat testdata.csv | dsq -s csv "SELECT * FROM {} LIMIT 1"

以上只是dsq 的一些基本功能实用,另外还有更加高级复杂的操作,如正则、缓存等等,详细可以去官方页面进行查看。

更多细节功能,感兴趣的可以到项目地址查看:

项目地址:
https://github.com/multiprocessio/dsq

开源先锋
分享Github上最有趣的开源项目
 最新文章