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 - 收到的所有款項均捐贈給我家鄉以色列拉姆拉的家庭暴力預防和治療中心。