前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >万能 SQL 分析工具,太强了!

万能 SQL 分析工具,太强了!

作者头像
永恒君
发布2023-02-20 12:01:52
1.3K0
发布2023-02-20 12:01:52
举报
文章被收录于专栏:开源小分队
将开源小分队设为星标 精品文章第一时间读

大家好,我是美丽又可爱的开源小妹!

天气突然一下就冷下来了,大家记得保暖哈,尤其是晚上看球的小伙伴们,不要冷了另外一半哈~~

我们知道,SQL 简单好学,使用也很方便。其实无论是技术还是非技术的工作,都需要对数据进行处理和分析,像是我们常用的 SQL 查询,以及更普遍的 Excel、JSON、CSV 等。

如果是稍微复杂一些的分析,因为各种原因,经常会遇到要打开的文件太大,影响工作进程和效率。

今天小妹来推荐一个小巧但是很强大的 SQL 工具 - dsq,使用它再结合其他工具,完全可以做更多的自动化的分析和处理,非常的棒!

简介

dsq是一个命令行工具,可对数据文件进行 SQL 查询,支持 JSON、CSV、Excel、Parquet 等等数据文件,以下是官方展示的支持的部分文件类型:

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

项目开源以来,已经在 github 上面获得了接近 3k 的 star。

功能展示

下面小妹来展示一下dsq都有哪些基本的功能。

1、读取单个文件

直接使用 dsq filename 或者 dsq filename "SELECT * FROM {}即可读取。

如小妹电脑中已经准备了一个testdata.json文件,大致内容如下:

代码语言:javascript
复制
dsq testdata.json"
代码语言:javascript
复制
dsq testdata.json "SELECT * FROM {}"

当然这样直接读取会比较难看,dsq提供了-p 或者 --pretty的参数,来美化成表格内容,这样就可以直观的看了。

喏,这样是不是好看多了!

2、读取处理多个文件

dsq支持同时读取多个文件,只要是支持的文件类型都可以。可以使用 SQL 语句以表格的方式来同时查询各个文件的数据内容,如下:

代码语言:javascript
复制
dsq users.csv ages.json "select {0}.name, {1}.age from {0} join {1} on {0}.id = {1}.id"

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

3、读取 Excel 多个 sheets

Excel 的文件有时候会又多个 sheets,dsq也是支持读取所有sheets的内容的。

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

代码语言:javascript
复制
dsq multiple-sheets.xlsx "SELECT COUNT() FROM {'Sheet2'} where Country='Canada' and Product='Amarilla'"

4、使用管道传递数据

这个是linux独有的功能,可以直接使用管道符| 来传递数据,相信使用 linux 的同学应该再熟悉不过了,但是这里需要加-s参数来指明传递的文件类型。如:

代码语言:javascript
复制
cat testdata.csv | dsq -s csv "SELECT * FROM {} LIMIT 1"
代码语言:javascript
复制
cat testdata.parquet | dsq -s parquet "SELECT COUNT(1) FROM {}"

5、文件转换

dsq 支持将 CSV 文件转成 JSON 文件,直接使用下面的命令即可:

代码语言:javascript
复制
dsq testdata.csv > testdata.json

除以上的这些基本功能之外,dsq 还支持不少更为复杂的操作,比如正则、缓存等等,可以去官方地址查看更多详细用法。

安装

win系统的话,直接 releases 页面下载即可。

Linux, macOS则按照官方给出的方法,同样很简单的。

关于项目的更多细节、功能,感兴趣的小伙伴可以去项目地址探索~~~

代码语言:javascript
复制
github地址:https://github.com/multiprocessio/dsq

写在最后

问君能有几多愁,开源项目解千愁,我们下期再见!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源小分队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 功能展示
    • 1、读取单个文件
      • 2、读取处理多个文件
        • 3、读取 Excel 多个 sheets
          • 4、使用管道传递数据
            • 5、文件转换
            • 安装
              • 写在最后
              相关产品与服务
              文件存储
              文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档