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

时间:2015-10-31 09:59:11

标签: data-warehouse olap-cube opencsv

我从一个大的CSV文件中提取数据。它有很多与文章和出版商相关的数据。所以我想在Java中为它创建一个解析器来创建一个数据仓库并在OLAP中显示这些数据。 任何人都可以告诉我如何开始使用它?

1 个答案:

答案 0 :(得分:0)

首先看看你是否可以在没有编程的情况下做到这一点(优秀的程序员非常懒惰 - 为什么打破传统)。查看数据仓库的提供程序是否允许导入csv数据。例如,在Oracle中,您可以import csv files via sql developer

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

然后创建实现使用常见解决方案的读取接口的对象 - java split,opencsv,univelocity-parsers,apache commons csv,supercsv。并且获取超级对象列表并将内容(原始行然后解析的内容)写入文本文件的服务。

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

此时用写入数据库的对象替换write并修改读取,以便一次读取一条记录,这样在处理大文件时就不会耗尽内存并且完成了。

:)