加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:36:06 所属栏目:MsSql教程 来源:网络整理
导读:有没有人知道使用类似SQL的声明式查询语言提供简单,快速的平面文件查询的工具?因为输入数据通常在查询运行后立即被丢弃,所以我宁愿不支付将文件加载到DB中的开销. 考虑数据文件“animals.txt”: dog 15cat 20dog 10cat 30dog 5cat 40 假设我想提取每个独特
有没有人知道使用类似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快速了解可能的内容.还有主页底部的类似工具的链接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读