用于平面文件的简单,快速的SQL查询

有没有人知道使用类似sql的声明式查询语言提供简单,快速的平面文件查询的工具?因为输入数据通常在查询运行后立即被丢弃,所以我宁愿不支付将文件加载到DB中的开销.

考虑数据文件“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"

我可以使用排序得到几乎相同的结果:

cat animals.txt | sort -t " " -k1,1 -k2,2nr

而且我总是可以从那里掉入awk,但是当一个类似sql的语言似乎能够如此干净地解决问题时,这一切都有点尴尬(不能抵制).

我已经考虑编写一个sqlite的包装器,它将根据输入数据自动创建一个表,我已经在单处理器模式下研究了使用Hive,但我不禁感到这个问题已经解决了.我错过了什么吗?这个功能是否已经由另一个标准工具实现?

HALP!

解决方法

我写的 TxtSushi主要是在平面文件上做sql选择.这是您的示例的命令链(所有这些命令来自TxtSushi):
tabtocsv animals.txt | namecolumns - | tssql -table animals - \
'select col1,max(as_int(col2)) from animals group by col1'

只需要namecolumns,因为animals.txt没有标题行.您可以通过查看example scripts快速了解可能的内容.还有主页底部的类似工具的链接.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...