q
v3.1.6
q 的目的是将 SQL 表达能力引入 Linux 命令行,并提供对文本作为实际数据的轻松访问。
q 允许以下内容:
下表显示了使用缓存的影响:
行数 | 专栏 | 文件大小 | 没有缓存的查询时间 | 带缓存的查询时间 | 速度提升 |
---|---|---|---|---|---|
5,000,000 | 100 | 4.8GB | 4分47秒 | 1.92秒 | x149 |
1,000,000 | 100 | 983MB | 50.9秒 | 0.461秒 | x110 |
1,000,000 | 50 | 477MB | 27.1秒 | 0.272秒 | x99 |
100,000 | 100 | 99MB | 5.2秒 | 0.141秒 | x36 |
100,000 | 50 | 48MB | 2.7秒 | 0.105秒 | x25 |
请注意,对于当前版本,默认情况下不启用缓存,因为缓存会占用磁盘空间。使用-C readwrite
或-C read
为查询启用它,或将caching_mode
添加到.qrc
以设置新的默认值。
q 的网站是 https://harelba.github.io/q/ 或 https://q.textasdata.wiki 它包含您立即下载和使用 q 所需的所有内容。
q 将普通文件视为数据库表,并支持所有 SQL 构造,例如WHERE
、 GROUP BY
、 JOIN
等。它支持自动列名和类型检测,并提供对多种字符编码的全面支持。
以下是一些示例命令,可以帮助您了解这个想法:
$ q " SELECT COUNT(*) FROM ./clicks_file.csv WHERE c3 > 32.3 "
$ ps -ef | q -H " SELECT UID, COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC LIMIT 3 "
$ q " select count(*) from some_db.sqlite3:::albums a left join another_db.sqlite3:::tracks t on (a.album_id = t.album_id) "
详细的例子在这里
新的主要版本3.1.6
已发布,其中添加了许多重要内容。
所有操作系统的说明都在这里。
之前的版本2.0.19
仍然可以从这里下载
任何有关此工具的反馈/建议/投诉将不胜感激。当然,我们也非常欢迎您的贡献。
Linkedin:哈雷尔·本·阿提亚
推特@harelba
电子邮件 [email protected]
推特上的 q:#qtextasdata
Patreon:harelba - 收到的所有款项均捐赠给我家乡以色列拉姆拉的家庭暴力预防和治疗中心。