2010-02-03 5 views
1

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

Спасибо,

Дэррил

+0

какая версия доступа? – jaywon

+0

Office 2007. Просто следующий вопрос. Мы получаем данные электронной почты от Alterian, которые мы импортируем в Communicator для обработки электронной почты и предоставления данных персонализации. Первоначальная идея состояла в том, чтобы автоматизировать процесс, импортировав данные в Access, а затем нарисуя код, чтобы манипулировать им. С тех пор главы и дамы, которые предоставляют данные по Alterian, изменили свои процессы, поэтому им не нужны такие манипуляции, как таковые, мы больше не пытаемся импортировать их. Спасибо за ваше время и комментарии всем. Как закрыть? Если администратор может предложить, пожалуйста? – DarrylGodden

ответ

1

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

Похоже, что некоторые версии доступа имеют жесткий 2GB-предел для файлов MDB, поэтому вы можете столкнуться с такими неприятностями.

Удачи.

+0

Yep - пошел вместо MS SQL - спасибо. – DarrylGodden

1

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

0

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

+0

Jet 4 и ACE ограничены 2 ГБ. Jet 3.x (Access97) был 1 ГБ. –

1

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

0

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

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

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

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

1

почему вы используете доступ для больших файлов? используйте sqlexpress или firebird вместо

+1

Хотя я большой промоутер Jet/ACE/Access, я должен сказать, что любой набор данных, который превышает 1 ГБ, заставляет меня нервничать. Накладные расходы на таблицу для 1,7 ГБ данных, скорее всего, приведут вас к жесткому ограничению размера жесткого диска 2 ГБ даже после компактности. –

Смежные вопросы