2015-07-14 2 views
0

Мне нужно связать группу файлов csv в формате «YYYY-MM-DD hh: mm: ss.csv», которые присутствуют в той же папке с уникальной таблицей, содержащей все данные присутствуют во всех файлах.Прочтите несколько файлов csv с помощью CsvJdbc

Мне нужно прочитать данные из приложения Java EE, поэтому я хотел бы создать пул соединений внутри сервера приложений. Я нашел драйвер CsvJdbc, который позволяет считывать несколько файлов в виде единого объекта. Хорошая отправная точка была this страницы в разделе с этим пунктом:

Чтобы прочитать несколько файлов (например, ежедневно лог-файлы) в виде одной таблицы, установить соединение с базой данных indexedFiles собственности. Следующий пример демонстрирует, как это сделать.

Пример может быть хорошим для меня, но проблема в том, что у меня нет слова заголовка в строке имени файла. Таким образом, соответствующая таблица становится пустой строкой, которая явно не позволяет запросить таблицу.

Как я могу заставить драйвер отобразить шаблон в таблицу, в которой нет части заголовка?

P.S. Я уже пытался использовать hsqldb в качестве интерфейса к файлам csv, но он не поддерживает несколько файлов.

ответ

0

Установка CsvJdbc для чтения нескольких файлов, как описано в http://csvjdbc.sourceforge.net/doc.html, а затем использовать пустое имя таблицы в SQL-запросе, потому что ваши имена файлов CSV не имеют заголовка перед регулярным выражением fileTailPattern. Например:

props.put("fileTailPattern", "(\\d+)-(\\d+)-(\\d+) (\\d+):(\\d+):(\\d+)"); 
    props.put("fileTailParts", "Year,Month,Day,Hour,Minutes,Seconds"); 

    ... 

    ResultSet results = stmt.executeQuery("SELECT * FROM \"\" AS T1");