为CSV文件制作解析器以获取大量数据



我做了一些工作,从一个大的CSV文件中提取数据。它有很多与文章和出版商有关的数据。所以我想用Java为它做一个解析器,以创建一个数据仓库,并在OLAP中显示这些数据。有人能告诉我该怎么开始吗?

首先看看你是否可以在不编程的情况下做到这一点(好的程序员是出了名的懒惰——为什么要打破传统)。查看数据仓库的提供商是否允许导入csv数据。例如,在Oracle中,您可以通过sql developer导入csv文件。

如果这是不可能的(比如说一行csv将在多个表中结束),那么我将从一个测试程序开始。为csv文件(文章、杂志、出版商、作者等)和uber对象填充的所有数据编写对象,uber对象包含每一个(如果单行有多个,则为多个)和csv行本身的实例。有一个用于读取文件并返回uber对象列表的接口,以及一个用于编写列表的接口。

然后创建实现读取接口的对象,该接口使用通用解决方案-java split、opencsv、univelocity解析器、apache commons csv、supercsv。还有一个服务,它获取uber对象的列表,并将内容(原始行,然后解析内容)写入文本文件。

然后编写一个主java应用程序,它将读取您的一个csv文件,对于每个读取方法,读取该文件并将其输出到每种类型的不同平面文件中。如果一个失败了,看看你是否可以将其配置为工作,或者它是否变得太烦人,将其从列表中删除。在某个时刻,你会看到一个你喜欢的解析器的简短列表,它们的所有输出文件都是相同的(所以它们都能工作,或者都失败了)。在这一点上,选择一个你最喜欢的。

此时,将write替换为一个向数据库写入的对象,并修改read,使其一次读取一条记录,这样在处理大文件时就不会耗尽内存。

:)

相关内容

  • 没有找到相关文章

最新更新