【问题标题】:SQL queries over DSV files?对 DSV 文件的 SQL 查询?
【发布时间】:2011-07-27 14:29:45
【问题描述】:

很简单的事情。

有一个 DSV 文件,比如 data.txt

name;surname;age;money
Joe;Dun;13;4
Don;Dapper;44;100
Freddie;Mercury;45;888

我希望有一个程序可以在此基础上创建 Sqlquereis。喜欢,

dsvsql -d\; -q "select sum(money) from data.txt where surname like 'D%'" data.txt

我希望它输出什么:

sum(money)
104

现在,我发现 this old question 没有一个令人满意的答案......而且在那里,他们提到了 CsvJdbc 这似乎很接近,但它并不完全正确。我想要的是完全基于终端的东西,我不需要为了运行而编写代码。

我一直在处理大量具有不同字段的 DSV 文件并对其进行分析。这会非常方便......

有什么想法吗?

干杯!

【问题讨论】:

  • 是否无法使用现有的 CSV 数据库驱动程序(如 CSVJDBC 或 DBD::CSV)构建您自己的终端应用程序?
  • 是的..恐怕是这样。我确实认为这个选项是可行的,但 csvjdbc 似乎很简单。谢谢。

标签: sql text csv


【解决方案1】:

CsvJdbc 似乎只支持最基本的 SQL 查询(甚至不支持 sum()

您可以改用 HSQLDB (2.2)。它可以直接读取 CSV 文件,并为您提供它所具有的全部 SQL 功能。唯一的缺点是您需要手动创建表。仅将文件放入目录是不够的(与 CsvJdbc 一样)

详情:http://hsqldb.org/doc/2.0/guide/texttables-chapt.html

要查询表,您可以使用可以在命令行上运行的基于 JDBC 的查询工具。

我认识其中两个:

  1. 母鸡加-http://henplus.sourceforge.net/
  2. SQL Workbench/J - http://www.sql-workbench.net(批处理、命令行或 GUI 模式)

【讨论】:

  • HSQL + SqlWorkbench 做到了这一点。不过,可能会更容易(我真的认为这应该只是我说的命令)。我猜一分钟后我会执行该命令。无论如何,谢谢。
【解决方案2】:

微软有一个freely downloadable program called Log Parser。它为您提供了一个类似于 SQL 的 CSV 文件接口,等等。当然,仅限 Windows。但也许你应该在谷歌上搜索“日志解析实用程序”或类似的东西。

日志解析器是一个功能强大的多功能工具,可提供通用查询 访问基于文本的数据,例如日志文件、XML 文件和 CSV 文件, 以及 Windows® 操作系统上的关键数据源,例如 事件日志、注册表、文件系统和 Active Directory®。 你告诉 Log Parser 你需要什么信息以及你想要它的方式 处理。您的查询结果可以自定义格式的文本 基于输出,或者它们可以坚持到更专业的目标,比如 SQL、SYSLOG 或图表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多