Перейти к содержимому


Импорт большого CSV файла


  • Вы не можете ответить в тему
Сообщений в теме: 10

#1 B@gs

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 04 November 2014 - 12:12 AM

Добрый день, долго уже мучаюсь с проблемой импорта сил нету, суть проблемы в следующем, есть готовый CSV файл весом примерно в 100 мб. и на 60 тыс. строк, тоисть 60 тыс. товара, целиком он не импортируется вообще зависает при отправке файла, поделил его на 3 части примерно ровные(по 30 мб), импорт начинается н некоторое количество товара импортируется но не все, делить файл на 30 кусков и импортировать это думаю не лучший вариант, сделал отдельно файл где только код товара и склад,(что бы просто обновить наличие товара) файл получился примерно в 1 мб и 60 тыс. строк, он тоже не пошел до конца. Суть вопроса какие есть методы для импорта больших файлов CSV. На сервере все ограничения сняты
  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 November 2014 - 12:40 AM

Суть вопроса какие есть методы для импорта больших файлов CSV.

В случае CSV-файла на 100Мб в ShopCMS метод один - заказывать доработку (переделку штатного имспорта), которой будет по барабану объем файла и количество строк в нем. Проблема есть, с готовыми решениями лично я не встречался, хотя проблема вполне решаема. Просто штатный способ импорта в ShopCMS, мягко говоря, оставляет желать лучшего. Не думал автор о том, что процесс импорта запросто может не укладываться в разрешенное для выполнения скрипта время, а хостеры могут и не разрешать отменять это временное ограничение.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 bum

    Пользователь

  • Пользователи
  • PipPip
  • 12 сообщений
Репутация: 2
Начинающий

Отправлено 04 November 2014 - 02:06 AM

Приличный VPS с связкой nginx, fast-cgi позволял загружать один csv этак в 15-30 мб и до 28 тыс позиций, загружал правда до часа. Больших объемов просто небыло в моих делах.
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 November 2014 - 12:39 PM

1. Если вы сами управляете PHP-настройками (судя по тому, что у Вас скрипт час работает, а не дефолтовые 30сек), то, возможно, поможет http://php.net/manua...i.post-max-size
2. Заливать не упакованный файл, это уменьшит расход памяти
3. Дать не меньше гигабайта памяти этой VPS
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 B@gs

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 04 November 2014 - 07:57 PM

Когда база товара полностью очищена, то товар с файла 30 мб. загружается весь нормально правда очень долго, а когда эта база товара обновляется с аналогичного файла CSV 30мб то уже не хочет обновлятся до конца, Тоисть с нуля залить базу с файла 30 мб. можно, а обновить уже не получается
  • 0

#6 B@gs

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 05 November 2014 - 08:30 PM

http://vsupport.club...импорт-товаров/
этот новый импорт так же плохо обновляет базу или баги с большими файлами устранены ?
  • 0

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 05 November 2014 - 08:54 PM

этот новый импорт так же плохо обновляет базу или баги с большими файлами устранены ?

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

Я уже писал что для файлов большого размера надо ПОЛНОСТЬЮ переписывать процедуру импорта. Насколько я знаю, никто этого еще не делал в силу отсутствия реальной надобности (коммерческого спроса).

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

Ну а штатно, когда в памяти строится двумерный массив (одно измерение - строки CSV-файла, второе - элементы по строке) по всему CSV-файлу вне зависимости от объема, а только затем этот массив обрабатывается и сохраняется в разные SQL-таблицы врядли стоит ожидать, что CSV-файл в десятки мегабайт без проблем импортируется. Даже на VPS со своими настройками.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 B@gs

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 06 November 2014 - 08:19 PM

ясно, спасибо что разъяснили, буду менять всю политику роботы сайта, попробую работать с поставщиком по API
  • 0

#9 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 November 2014 - 08:30 PM

буду менять всю политику роботы сайта, попробую работать с поставщиком по API

Не проще ли КОММЕРЧЕСКИ решить эту проблему? Т.е. заказать написание модуля импорта, которому плевать на объем CSV-файла.

Мне думается, что если объем товаров в 100Мб CSV-файла не хвастовство, а сайт не является бессмысленным и не приносящим денег, то стоимость модуля будет смешной на фоне остальных постоянных затрат на такой сайт.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#10 B@gs

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий

Отправлено 11 November 2014 - 10:37 PM

просто кроме этой проблемы есть ечо много проблем связаных с такой роботой сайта, а робота через API все эти проблемы должна решить, а 100 мб это не хвастовство, это всего 60 тыс. товара с полным описанием характеристик. Если б проблема была только в заливке на сайт то конечно же заказал бы такой модуль.
  • 0

#11 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 November 2014 - 11:19 PM

просто кроме этой проблемы есть ечо много проблем связаных с такой роботой сайта

С какой "такой"? Я пока прочитал только про проблему импорта. Это штатная проблема этой старинной CMS и никак не связана с какими-либо другими проблемами.

а робота через API все эти проблемы должна решить

Ну, почему бы и нет. Ведь API - это такая волшебная аббревиатура, используя которую возможно все :).

а 100 мб это не хвастовство, это всего 60 тыс. товара с полным описанием характеристик

Файл данных размером всего 100Мб не сильно удивителен. Тут и гигабайты были. Как будто Вы первый или десятый с этой проблемой.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)