q の目的は、Linux コマンド ラインに SQL の表現力をもたらし、実際のデータとしてテキストに簡単にアクセスできるようにすることです。
q では次のことが可能になります。
次の表は、キャッシュを使用した場合の影響を示しています。
行 | コラム | ファイルサイズ | キャッシュなしのクエリ時間 | キャッシュを使用した場合のクエリ時間 | 速度の向上 |
---|---|---|---|---|---|
5,000,000 | 100 | 4.8GB | 4分47秒 | 1.92秒 | ×149 |
1,000,000 | 100 | 983MB | 50.9秒 | 0.461秒 | ×110 |
1,000,000 | 50 | 477MB | 27.1秒 | 0.272秒 | x99 |
100,000 | 100 | 99MB | 5.2秒 | 0.141秒 | ×36 |
100,000 | 50 | 48MB | 2.7秒 | 0.105秒 | ×25 |
現在のバージョンでは、キャッシュはディスク領域を占有するため、デフォルトではキャッシュが有効になっていないことに注意してください。 -C readwrite
または-C read
を使用してクエリに対して有効にするか、 caching_mode
.qrc
に追加して新しいデフォルトを設定します。
q の Web サイトは https://harelba.github.io/q/ または https://q.textasdata.wiki です。そこには、q をダウンロードしてすぐに使用するために必要なものがすべて含まれています。
q は通常のファイルをデータベース テーブルとして扱い、 WHERE
、 GROUP BY
、 JOIN
などのすべての SQL 構造をサポートします。自動列名と型検出をサポートし、複数の文字エンコーディングを完全にサポートします。
アイデアを得るためにコマンドの例をいくつか示します。
$ 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
リリースされ、多くの重要な追加機能が追加されました。
すべての OS の手順はここにあります。
以前のバージョン2.0.19
はまだここからダウンロードできます
このツールに関するフィードバック/提案/苦情は大歓迎です。もちろん、貢献も大歓迎です。
Linkedin: ハレル・ベン・アティア
ツイッター @harelba
電子メール [email protected]
ツイッターのq: #qtextasdata
Patreon: harelba - 受け取ったお金はすべて、私の故郷であるイスラエルのラムラにある家庭内暴力の予防と治療センターに寄付されます。