我需要对 CSV 文件(以逗号分隔的文本文件)应用 SQL 查询。我的 SQL 是从另一个工具预定义的,不能更改。它可能在 FROM 部分包含嵌入式选择和表别名。
对于我的任务,我找到了两个提供 JDBC 驱动程序的开源(这是一个项目要求)库:
- CsvJdbc
- XlSQL
- JBoss Teiid
- 创建一个 Apache Derby 数据库,将所有 CSV 作为表加载并执行查询。
这些是我遇到的问题:
- 它不接受 SQL 的语法(它使用内部选择和表别名)。此外,自 2004 年以来就没有维护过。
- 我无法让它工作,因为它依赖于一个 SAX 解析器,在解析其他文档时会导致异常。同样,自 2004 年以来没有变化。
- 没有检查它是否支持语法,但似乎是一种开销。它需要几个实体定义(虚拟数据库、绑定(bind))。他们从邮件列表中告诉我,最新版本支持运行时创建所需的对象。有没有人用它来完成如此简单的任务(通常它可以连接到多种类型的数据,如 CSV、XML 或其他 DBS,并创建一个虚拟的、统一的数据)?
- 这甚至可以轻松完成吗?
在我考虑/尝试过的 4 件事中,我认为只有 3 和 4 是可行的。关于这些的任何建议,或者我可以查询我的 CSV 文件的任何其他方式?
干杯
最佳答案
我会将数据加载到 HSQL (HypersonicSQL) 中。纯 Java,正确的 SQL,久经考验。几乎所有其他事物的足迹都更大。
关于java - 通过 JDBC 对 CSV 文件执行 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1468998/