TextQL SQL-интерфейс для CSV, который сэкономит вам часы работы
Репозиторий давно не обновлялся
Последнее обновление было 2 года назад.
Знакомая ситуация? Получаете CSV-файл с данными, которые нужно быстро обработать — отфильтровать, сгруппировать или объединить с другой таблицей. Традиционные варианты: мучиться с Excel, писать скрипт на Python или загружать в базу данных. Но есть способ проще — TextQL.
Что такое TextQL и кому он пригодится
TextQL — это консольная утилита, которая превращает ваши CSV и TSV файлы во временную SQL-базу данных. Разработчики, аналитики и devops-инженеры оценят его за:
- Мгновенный SQL-доступ к структурированным текстовым данным
- Работу прямо в терминале без лишних конвертаций
- Поддержку пайпов и потоковой обработки
Проще говоря, это как SQLite для CSV-файлов, но без необходимости предварительного импорта.
5 причин попробовать TextQL прямо сейчас
1. Знакомый SQL-синтаксис для CSV
textql -sql "SELECT name, COUNT(*) FROM data GROUP BY name" sales.csv
Никакого нового языка запросов — используете стандартный SQL. Причем с поддержкой JOIN между несколькими файлами!
2. Автоматическое определение типов данных
TextQL сам распознает:
- Числа (включая разные форматы)
- Даты и время (поддерживает множество форматов)
- Строки
Больше не нужно вручную указывать типы колонок.
3. Работа с потоками данных
cat access.log | textql -dlm=' ' -header -sql "SELECT COUNT(*) FROM tbl WHERE status = '404'"
Можно обрабатывать данные прямо из пайпов — идеально для анализа логов.
4. Дополнительные статистические функции
После простой установки расширения получаете:
- Статистику: stdev, variance, median
- Математические функции: power, sqrt, log
- Строковые операции: trim, replace, reverse
5. Гибкость вывода
Результаты можно:
- Вывести в консоль с красивым форматированием (
-pretty) - Сохранить в файл (
-output-file result.csv) - Изменить разделитель (
-output-dlm=tab)
Как это работает под капотом
TextQL написан на Go и использует SQLite в памяти для обработки данных. Вот его ключевые особенности:
- Загружает данные в оперативную память (если не указано иное)
- Автоматически создает таблицы на основе имен файлов
- Поддерживает кавычки в полях — в отличие от стандартного импорта SQLite
- Работает без сохранения временных файлов
Когда TextQL особенно полезен
- Быстрый анализ логов: фильтрация, агрегация по времени, поиск аномалий
- Преобразование данных: объединение нескольких CSV, фильтрация строк
- Прототипирование: проверка идей перед написанием полноценного скрипта
- Автоматизация: встраивание в bash-скрипты для обработки данных
Установка за минуту
Для macOS:
brew install textql
Или через Docker:
docker run --rm -it -v $(pwd):/tmp textql -sql "SELECT * FROM data" data.csv
Вывод: стоит ли пробовать?
TextQL — это один из тех инструментов, который кажется простым, но экономит часы рутинной работы. Особенно рекомендую:
- Разработчикам, работающим с логами
- Аналитикам без доступа к полноценным BI-инструментам
- Всем, кто устал от ручного редактирования CSV в Excel
Попробуйте на своем следующем CSV-файле — возможно, вы удивитесь, насколько это удобно.

