使用嵌入式 Java 数据库处理来自 Web 的 CSV 文件
简短版本:假设我不想长时间保留数据,如何在 HSQLDB 中以编程方式创建数据库并将一些 CSV 数据加载到其中? 我的架构将与文件完全匹配,并且文件确实有足够的列名称。
这是一个无人值守的过程。
详细信息:
我需要对通过网络下载的三个 CSV 文件应用一些简单的 SQL 技术,然后创建一些 DTO,然后我可以将它们与一些现有代码一起使用来进一步处理它们,并通过 REST 保存它们。 我真的不想搞乱数据库,但 CSV 文件是通过外键链接的,所以我正在考虑使用内存嵌入式数据库来完成这项工作,然后扔掉所有这些。
我想到了一个像这样工作的命令行应用程序:
- 在 HSQLDB 中创建一个新的数据库。
- 三分之三启动三个 HTTP GET 使用 Apache HttpClient 的线程。
- 将 CSV 导入三个 HSQLDB 内存表。
- 运行一些 SQL。
- 将结果解析到我现有的 DTO。
- 等等...
我可以使用对第 1 项和第 3 项有帮助的代码和实用程序的指针。我还应该考虑 HSQLDB 的替代方案吗?
Short version: assuming I don't want to keep the data for long, how do I create a database programmaticly in HSQLDB and load some CSV data into it to? My schema will match the files exactly and the files do have adequate column names.
This is an unattended process.
Details:
I need to apply some simple SQL techniques to three CSV files downloaded via the web, then create some DTOs which I can then use with some existing code to process them some more, and save them via REST. I don't really want to mess around with databases but the CSV files are linked by foreign keys, so I was thinking of using an in-memory embedded database to do the work, then throw the whole lot away.
I had in mind a command line app working like this:
- Create a fresh database in HSQLDB.
- Start three HTTP GETs in three
threads using Apache HttpClient. - Import the CSVs into three HSQLDB
MEMORY tables. - Run some SQL.
- Parse the results into my existing
DTOs. - Etc...
I could use pointers to code and utilities helpful for items 1, and 3. Also is there an alternative to HSQLDB I should consider?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要使用的命令行应用程序是 HSQLDB 附带的 SqlTool 实用程序 jar。 您的过程可以按如下方式完成:
当提出问题时,不可能在纯内存表中创建 TEXT 表。 现在 HSQLDB 2.x 版本完全支持它。
The command line app to use is the SqlTool utility jar that is supplied with HSQLDB. Your procedure can be completed as follows:
Creating TEXT tables in pure in-memory tables was not possible when the question was asked. It is now fully supported in HSQLDB 2.x versions.
检查opencvs。 它可以帮助您解析 CSV 文件。
Check opencvs. It helps you to parse CSV files.