我正在使用Java作为前端和Oracle将需要上传大型CSV文件(大约6 GB)的桌面应用程序(Extract Transform Load类型的应用程序)后端,但我也开放给其他数据库和工具(即SQLite,H2,HSQLDB,MySQL)。将CSV文件上传到数据库的Java桌面应用程序
我尝试使用开放源代码Java库,用于分析和上传CSV文件,如:
的问题,这些库是效率。他们需要太多时间上传。例如,上传4 Gb的CSV文件需要6小时。
有了这个经验,我决定尝试数据库实用程序来上传CSV文件。其中之一是Oracle SQL * Loader。它更快,并提供理想的结果。它可以消除空格,CSV文件加载到各种表格,使用Oracle函数suchs作为解码等
不过,我有以下问题:
我无法找到一个办法让SQL *加载程序的错误/ Java日志并显示给用户。
因为SQL * Loader是专有的,所以没有办法将它嵌入到我的应用程序安装中。例如,用户需要在安装我的应用程序之前单独下载并安装Oracle Client。另一件事是我需要检查在安装过程开始之前是否安装了Oracle Client。
我寻找其他可能的解决方案,并找到像SQLite和H2这样的无头数据库。
在SQLite上,我使用.import命令上传CSV文件。但是我无法用Java来称呼它。
我转向H2数据库,但由于不支持转义标题行,所以我很难上传。
请让我知道您的建议。
谢谢你。
你必须使用SQLite吗?你不能使用外部表来加载数据吗?使用外部表格很容易排除页眉和页脚。 – Ollie
没有。我正在创建一个* java *桌面应用程序,它可以尽可能快地将大型.csv *文件加载到本地数据库,而不管数据库如何。 – epsac