Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

Большой csv   Найти похожие ветки 

 
Dennis I. Komarov ©   (2014-12-16 17:13) [0]

Всем привет!
Есть большой (1Gb) файл csv порядка 89 млн записей.
(Недействительные паспорта РФ с сайта ФМС)
Как данные запихать в какую-нить БД?

Встроенный импорт на MS SQL отваливает на 5млн+ записи
Access файл распух на 2Gb, но данные импортировать на смог


 
Дмитрий С ©   (2014-12-16 17:28) [1]

Может сделать конвертор CSV -> SQL и выполнить?


 
кгшзх ©   (2014-12-16 17:31) [2]

и это капец.
для обработки каждого гига нужно уже не менее доктора технических.

порезай файл, "программист".


 
Dennis I. Komarov ©   (2014-12-16 17:33) [3]

Не самый красивый вариант резать файл...


 
DVM ©   (2014-12-16 17:37) [4]

в чем проблема читать порциями, парсить и вставлять в базу?


 
Dennis I. Komarov ©   (2014-12-16 17:40) [5]

Дим, да не проблема... Вопрос в оптимальности процесса. Встроенные средства вот пошли лесом...


 
brother ©   (2014-12-16 17:42) [6]

[4] самое оно...


 
brother ©   (2014-12-16 17:43) [7]

там и с кодировкой проблемм быть не должно...


 
VICTOR_ ©   (2014-12-16 17:58) [8]

BULK INSERT - не работает?
Bulk-Logged Recovery model - пробовал устанавливать?


 
Dennis I. Komarov ©   (2014-12-16 18:05) [9]

Нет, о таком не слышал еще...


 
Rouse_ ©   (2014-12-16 18:07) [10]


> Dennis I. Komarov ©   (16.12.14 17:40) [5]
> Дим, да не проблема... Вопрос в оптимальности процесса.
> Встроенные средства вот пошли лесом...

Это разовая операция как я понял? Тогда зачем нужна оптимальность и красота подхода? Разбей файл один раз на куски и вбей в базу, делов-то :)


 
VICTOR_ ©   (2014-12-16 18:09) [11]

Почитай и попробуй для MS SQL Server. В бесплатной версии Express - база до 10ГБ


 
Dennis I. Komarov ©   (2014-12-16 18:11) [12]

Файлы с разделителями-запятыми (CSV) не поддерживаются в операциях массового импорта SQL Server.  Однако в некоторых случаях CSV-файл можно использовать в качестве файла данных для массового импорта данных в SQL Server. Обратите внимание, что признаком конца поля CSV-файла не обязательно должна быть запятая. CSV-файл, который можно использовать в качестве файла данных для массового импорта, должен соответствовать следующим условиям.

◦ Поля данных не должны содержать признак конца поля.  

◦ Или никакие, или все значения в полях данных должны заключаться в кавычки ("").


 
кгшзх ©   (2014-12-16 18:12) [13]

Не самый красивый вариант резать файл...

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


 
Dennis I. Komarov ©   (2014-12-16 18:15) [14]


> Это разовая операция как я понял? Тогда зачем нужна оптимальность
> и красота подхода? Разбей файл один раз на куски и вбей
> в базу, делов-то :)

Саш, почему разовая? база должна обновляться, но ФМС не делают куски. У них файл целиком валяется... Хоть dbf-ку бы держали.

Может есть варианты?)))


 
Dennis I. Komarov ©   (2014-12-16 18:16) [15]

Удалено модератором


 
VICTOR_ ©   (2014-12-16 18:16) [16]

Почитай http://technet.microsoft.com/ru-ru/library/ms187042%28v=sql.105%29.aspx


 
Dennis I. Komarov ©   (2014-12-16 18:20) [17]


> VICTOR_ ©   (16.12.14 18:16) [16]

Читаю, спасибо!


 
Rouse_ ©   (2014-12-16 19:02) [18]


> Dennis I. Komarov ©   (16.12.14 18:15) [14]
> Может есть варианты?)))

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


 
megavoid ©   (2014-12-16 19:06) [19]

В MySQL так:

LOAD DATA LOCAL INFILE "D:\\***\export.csv" INTO TABLE `dbname`.`dbtable` FIELDS TERMINATED BY ";" ENCLOSED BY """ ESCAPED BY """ LINES TERMINATED BY "\r\n" (`PropertyNumber`, `PropertyName`, `zzz`, `DeepLink`);


 
Dennis I. Komarov ©   (2014-12-16 19:17) [20]


Rouse_ ©   (16.12.14 19:02) [18]

> Ну тогда я бы ручками маааахонькую программку написал, которая
> парсит файлик и транзакционно по пару десятков тыщ кидает
> парсенные данные куда надо. Работы на 10 минут с перекуром.
>

Ну да, сервер освободится - так и сделаю скорее всего. Но вариант с BPC очень интересен и универсален (Правда сервер обновлять надо будет).


 
Dennis I. Komarov ©   (2014-12-16 19:18) [21]


> megavoid ©   (16.12.14 19:06) [19]
> В MySQL так:

А мульенов сто рекордов скушает?)


 
Rouse_ ©   (2014-12-16 19:38) [22]


> Dennis I. Komarov ©   (16.12.14 19:17) [20]
> Ну да, сервер освободится - так и сделаю скорее всего. Но
> вариант с BPC очень интересен и универсален

Заметь - ты больше тратишь времени на поиск решения, чем не его реализацию "в лоб" ;)
Был бы я твоим "ночальнегом" - поругал бы, как минимум ;)


 
Dennis I. Komarov ©   (2014-12-16 19:42) [23]


> Rouse_ ©   (16.12.14 19:38) [22]

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

З.Ы. Ну сейчас еще могу конечно на access потестить, но лучше пойду ужинать)


 
Rouse_ ©   (2014-12-16 19:44) [24]

Приятного апетита :)
Даже чем-то завидую, я вечерами наоборот по ухи в коде сижу :)


 
megavoid ©   (2014-12-16 19:55) [25]

А мульенов сто рекордов скушает?)
Грузится файл 20 Гб раз в неделю, 4.7 млрд записей, база исам, в инно дольше процессит


 
megavoid ©   (2014-12-16 19:59) [26]

Наврал, глянул в базу, 4.1 ярд
20 гб csv разъедаются в 78 в файле базы


 
Кщд ©   (2014-12-16 21:13) [27]

>megavoid ©   (16.12.14 19:59) [26]
причём здесь MySQL?


 
megavoid ©   (2014-12-16 21:21) [28]

причём здесь MySQL?
Вероятно, google: "mssql load data infile"?


 
Jeer ©   (2014-12-16 22:09) [29]

Недавно 2 млн записей из тучи файлов Excel перевел в MS SQL 2008 след образом (разовая операция):

- js-script конвертирования в "старый" формат Excel;
- delphi-консоль решения задачи ETL в промежуточную базу;
- delphi-gui для импорта в MSSQL.


 
Dennis I. Komarov ©   (2014-12-17 23:20) [30]

Больше потратил времени на вылавливание глюков в самом csv

Теперь думаю, поиск по файлу ~ 10 сек., а нужен ли геморрой с БД???


 
картман ©   (2014-12-18 03:16) [31]

Удалено модератором
Примечание: Нарушение правил форума


 
Jeer ©   (2014-12-18 08:36) [32]

Удалено модератором
Примечание: Нарушение правил форума


 
картман ©   (2014-12-18 13:53) [33]

Удалено модератором


 
Кщд ©   (2014-12-18 15:10) [34]

>megavoid ©   (16.12.14 21:21) [28]
у автора MS SQL
ещё раз: причём здесь MySQL?


 
KSergey ©   (2014-12-21 16:43) [35]

> Dennis I. Komarov ©   (17.12.14 23:20) [30]
> Больше потратил времени на вылавливание глюков в самом csv

Это, кстати, к вопросу о поиске "стандартных средств".
Сказки всё это "стандартные средства". Тупые маркетинговые сказки.
В любом спаривании уже с ежом - только интеллектуальная смазка помогает. Так что только собственноручно написанная программа, учитывающая как особенности ежа с одной стороны, так и ужа - с другой.



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.055 c
2-1394436419
alexdn
2014-03-10 11:26
2015.09.10
Закрытие формы


15-1412763614
alexdn
2014-10-08 14:20
2015.09.10
Php и пдф отчет


3-1304879439
AndreyRus
2011-05-08 22:30
2015.09.10
Тип поля Bit в агрегатных функциях.


1-1331451118
renok
2012-03-11 11:31
2015.09.10
Сериализация PageControl а


15-1413997019
Jeer
2014-10-22 20:56
2015.09.10
А мне, что-то вспомнилось..