¿Alguien sabe de alguna herramienta para proporcionar consultas simples y rápidas de archivos planos utilizando un lenguaje de consulta declarativo similar a SQL? Prefiero no pagar los gastos generales de cargar el archivo en un DB, ya que los datos de entrada normalmente se descartan casi inmediatamente después de ejecutar la consulta.Consultas SQL simples y rápidas para archivos planos
considere el archivo de datos "animals.txt":
dog 15
cat 20
dog 10
cat 30
dog 5
cat 40
Supongamos que quiero extraer el valor más alto para cada animal único. Me gustaría escribir algo como:
cat animals.txt | foo "select $1, max(convert($2 using decimal)) group by $1"
puedo conseguir casi el mismo resultado utilizando sort
:
cat animals.txt | sort -t " " -k1,1 -k2,2nr
Y siempre puedo caer en awk
desde allí, pero todo esto se siente un poco awk
sala (no pude resistir) cuando un lenguaje similar a SQL parecería resolver el problema tan limpiamente.
He considerado escribir un contenedor para SQLite que crearía automáticamente una tabla basada en los datos de entrada, y he analizado el uso de Hive en modo de procesador único, pero no puedo evitar sentir que este problema sido resuelto antes ¿Me estoy perdiendo de algo? ¿Esta funcionalidad ya está implementada por otra herramienta estándar?
Halp!
que me gustaría ser capaz de hacer todo bien de la cáscara, lo que no parece que esta solución para soportar. – plinehan
¿Cuál? Powershell es bash en esteroides que te permite hacer todo desde el caparazón. En cuanto a OrmLite (que es lo que usaría), escribes un programa de algunas líneas que importa todos los datos a tu db de elección, entonces puedes usar el sqlite3.exe para consultar desde el símbolo del sistema. – mythz