Qualcuno sa di strumenti per fornire query semplici e veloci di file flat utilizzando un linguaggio di query dichiarativo simile a SQL? Preferisco non pagare l'overhead del caricamento del file in un DB poiché i dati di input vengono generalmente eliminati quasi immediatamente dopo l'esecuzione della query.Query SQL semplici e veloci per file flat
consideri il file di dati, "animals.txt":
dog 15
cat 20
dog 10
cat 30
dog 5
cat 40
Supponiamo che io voglio per estrarre il valore più alto per ogni animale unico. Vorrei scrivere qualcosa di simile:
cat animals.txt | foo "select $1, max(convert($2 using decimal)) group by $1"
posso ottenere quasi lo stesso risultato utilizzando sort
:
cat animals.txt | sort -t " " -k1,1 -k2,2nr
E posso sempre cadere in awk
da lì, ma tutto questo si sente un po 'awk
corsia (non ha resistito) quando un linguaggio simile a SQL sembrerebbe risolvere il problema in modo così pulito.
Ho pensato di scrivere un wrapper per SQLite che creerebbe automaticamente una tabella in base ai dati di input e ho cercato di utilizzare Hive in modalità a processore singolo, ma non posso fare a meno di sentire che questo problema ha stato risolto prima. Mi sto perdendo qualcosa? Questa funzionalità è già implementata da un altro strumento standard?
Halp!
mi piacerebbe essere in grado di fare tutto bene dal guscio, che questa soluzione non sembra sostenere. – plinehan
Quale? Powershell è una miscela di steroidi che ti permette di fare tutto dalla shell. Per quanto riguarda OrmLite (che è quello che userei), scrivi un programma di poche righe che importa tutti i dati nel tuo db di scelta, quindi puoi usare sqlite3.exe per interrogare dal prompt dei comandi. – mythz