通过JDBC在CSV文件上执行SQL

Mar*_*kis 13 java sql csv text jdbc

我需要将SQL查询应用于CSV文件(逗号分隔的文本文件).我的SQL是从其他工具预定义的,不符合更改条件.它可能包含FROM部分中的嵌入式选择和表别名.

对于我的任务,我发现了两个提供JDBC驱动程序的开源(这是项目需求)库:

  1. CsvJdbc
  2. XlSQL
  3. JBoss Teiid
  4. 创建Apache Derby DB,将所有CSV加载为表并执行查询.

这些是我遇到的问题:

  1. 它不接受SQL的语法(它使用内部选择和表别名).此外,它自2004年以来一直没有得到维护.
  2. 我无法让它工作,因为它具有SAX Parser的依赖性,在解析其他文档时会导致异常.同样,自2004年以来没有变化.
  3. 没有检查它是否支持语法,但似乎是一个开销.它需要几个实体定义(虚拟数据库,绑定).从邮件列表中,他们告诉我,上一版本支持运行时创建所需对象.有没有人用它来完成这么简单的任务(通常它可以连接到几种类型的数据,如CSV,XML或其他DBS,并创建一个虚拟的统一数据)?
  4. 这甚至可以轻松完成吗?

从我考虑/试过的4件事中,只有3件和4件对我来说是可行的.有关这些或任何其他方式我可以查询我的CSV文件的任何建议吗?

干杯

Vla*_*hev 9

我会将数据加载到HSQL(HypersonicSQL).纯Java,正确的SQL,经过充分验证.几乎任何其他东西都有更大的足迹.


Chs*_*y76 3

如果您的 SQL 是预定义的并且无法更改,您最好的选择是将 CSV 加载到数据库中并对其运行查询。

Apache Derby 是一个可行的选择, MySQL也是一个可行的选择,它甚至有CSV 存储引擎PostgreSQL

您的 SQL 是否使用任何专有函数/扩展?如果是这样,这可能会限制您的选择。