Кто-нибудь знает какие-либо инструменты для обеспечения простых быстрых запросов плоских файлов с использованием SQL-декларативного языка запросов? Я бы предпочел не оплачивать накладные расходы на загрузку файла в БД, поскольку входные данные обычно выбрасываются почти сразу после выполнения запроса.
Рассмотрим файл данных "animals.txt":
dog 15
cat 20
dog 10
cat 30
dog 5
cat 40
Предположим, что я хочу извлечь максимальное значение для каждого уникального животного. Я хотел бы написать что-то вроде:
cat animals.txt | foo "select $1, max(convert($2 using decimal)) group by $1"
Я получаю почти тот же результат, используя sort
:
cat animals.txt | sort -t " " -k1,1 -k2,2nr
И я всегда могу зайти в awk
оттуда, но это все немного напоминает awk
ward (не может устоять), когда SQL-подобный язык, похоже, решит проблему так чисто.
Я рассмотрел возможность написания оболочки для SQLite, которая автоматически создала таблицу на основе входных данных, и я изучил использование Hive в однопроцессорном режиме, но я не могу не чувствовать, что эта проблема была решено раньше. Я что-то упускаю? Эта функциональность уже реализована другим стандартным инструментом?
Halp!