Цель q — привнести выразительные возможности SQL в командную строку Linux и обеспечить легкий доступ к тексту как к реальным данным.
q позволяет следующее:
В следующей таблице показано влияние использования кэширования:
Строки | Столбцы | Размер файла | Время запроса без кэширования | Время запроса с кэшированием | Улучшение скорости |
---|---|---|---|---|---|
5 000 000 | 100 | 4,8 ГБ | 4 минуты 47 секунд | 1,92 секунды | х149 |
1 000 000 | 100 | 983 МБ | 50,9 секунды | 0,461 секунды | х110 |
1 000 000 | 50 | 477 МБ | 27,1 секунды | 0,272 секунды | х99 |
100 000 | 100 | 99 МБ | 5,2 секунды | 0,141 секунды | х36 |
100 000 | 50 | 48 МБ | 2,7 секунды | 0,105 секунды | х25 |
Обратите внимание, что в текущей версии кэширование не включено по умолчанию, поскольку кэши занимают дисковое пространство. Используйте -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 — Все полученные деньги передаются в Центр по предотвращению и лечению домашнего насилия в моем родном городе — Рамле, Израиль.