Импортируйте огромный CSV-файл 550000+ строк в Access - PullRequest
1 голос
/ 03 февраля 2010

У меня есть файл CSV с 550000+ строками, мне нужно импортировать эти данные в Access, но при попытке выдает ошибку, что файл слишком велик (1,7 ГБ), вы можете порекомендовать способ получить этот файл в доступ?

Спасибо

Дэррил

Ответы [ 6 ]

1 голос
/ 03 февраля 2010

почему вы используете доступ к огромным файлам? используйте вместо этого sqlexpress или firebird

1 голос
/ 03 февраля 2010

Вы также можете использовать инструмент ETL. Kettle является открытым исходным кодом (http://kettle.pentaho.org/) и действительно довольно прост в использовании. Для импорта файла в базу данных требуется одно преобразование с 2 шагами: ввод текста в формате CSV и вывод таблицы.

1 голос
/ 03 февраля 2010

Я бы либо попробовал соединитель ODBC CSV, либо сначала импортировал бы его в менее ограниченную базу данных (MySQL, SQL Server) и импортировал бы оттуда.

Кажется, что некоторые версии доступа имеютжесткий лимит 2 ГБ для файлов MDB, так что в любом случае у вас могут возникнуть проблемы.

Удачи.

1 голос
/ 03 февраля 2010

Попробуйте импортировать ссылки вместо импорта («получить внешние данные» -> «таблица ссылок» в 2003 году), который оставляет данные в CSV-файле и считывает данные из файла напрямую и на месте. Это не ограничивает размер (по крайней мере, где-то около 1,7 ГБ). Это может ограничить некоторые операции чтения / обновления, но, по крайней мере, поможет вам начать работу.

0 голосов
/ 03 февраля 2010

Другой вариант - отказаться от стандартных функций импорта и написать свои собственные. Я сделал это однажды, когда перед импортом нужно было применить какую-то определенную логику к данным. Базовая структура ……

Открыть, затем файл Получить первую строку Цикл до конца строки Если мы найдем запятую, перейдите к следующему полю Поместить запись в базу данных Получите повтор следующей строки и т. Д.

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

Однако я бы сказал, что связывание данных, как говорили другие, является лучшим решением, это просто вариант, если вам абсолютно необходимы данные в доступе

0 голосов
/ 03 февраля 2010

Я помню, что в Access есть ограничение на размер около 2 Go. Переход на бесплатный SQLExpress (ограниченный до 4 Go) или бесплатный MySQL (без ограничений по размеру) может быть проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...