Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Большой 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.06 c
15-1415815791
alexdn
2014-11-12 21:09
2015.09.10
Вопрос по wordpress


15-1410753233
oldman
2014-09-15 07:53
2015.09.10
Нужна помощь. Мне.


1-1332498939
EgorovAlex
2012-03-23 14:35
2015.09.10
Как быстро заполнить TBitmap


15-1412857366
Jeer
2014-10-09 16:22
2015.09.10
TIniFile in memory


2-1395675878
SKIPtr
2014-03-24 19:44
2015.09.10
как получить формат DateTime из двух DateTimePicker





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский