Автор Тема: Импорт большого CSV файла(~100000 товаров)  (Прочитано 90 раз)

21 Сентября 2016, 12:06:27
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Имеется файл CSV на 96 тысяч позиций. При попытке импорта броузер через какое-то время показывает "Request timeout". При этом само импортирование продолжается и после этой ошибки. Останавливается при около 5000 загруженных товаров. Увеличение различных параметров в php.ini рузультатов не дало. Кто-нибудь сталкивался с импортом файлов такого размера? Есть мысли, как загрузить файл целиком без его дробления на части?
21 Сентября 2016, 12:11:47
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Через адмику импорт ограничен, нужно разбивать на куски.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Сентября 2016, 12:16:04
Ответ #2
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Через адмику импорт ограничен, нужно разбивать на куски.
Ограничен самим движком? Эти ограничения неснимаемы?
Чтобы загрузить товар на трёх языках мне нужно будет создать и импортировать около 70 CSV файлов. Неужели кроме загрузки напрямую в БД через PHPMyadmin нет никаких вариантов?
21 Сентября 2016, 12:22:15
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Не движком, ограничен ресурсами сервера. Время работы php скриптов, размер памяти и т.д.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Сентября 2016, 12:25:43
Ответ #4
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Варианты есть, через webservice можно загружать товары, можно парсер csv сделать. Можно переделать csv в sql и в терминале загрузить товары.
Стандарным имортом через админку нельзя такой объем загрузить.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Сентября 2016, 12:32:22
Ответ #5
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не движком, ограничен ресурсами сервера. Время работы php скриптов, размер памяти и т.д.
Тогда вопрос: какие именно ресурсы нужно увеличить?
Может что-то в php.ini ещё можно подкорректировать? В данный момент:
max_execution_time    300
max_input_time    6000
max_input_vars    10000
memory_limit    128M
output_buffering    4096
post_max_size    50M
upload_max_filesize    40M
21 Сентября 2016, 12:34:06
Ответ #6
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Варианты есть, через webservice можно загружать товары, можно парсер csv сделать. Можно переделать csv в sql и в терминале загрузить товары.
Стандарным имортом через админку нельзя такой объем загрузить.

ну может не такой объём, но не на 25 частей же делить. Может хоть на 5.
Парсер CSV на 1 одну загрузку не хочется делать...
21 Сентября 2016, 12:40:07
Ответ #7
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
max_execution_time  - минимум 600 если опять будет Request timeout, то увеличить.
memory_limit  - миниммум 256M
post_max_size - миниммум 256M
upload_max_filesize - миниммум 256M
Многое зависит от настроек mysql, тестировать нужно и от результатов менять значения.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Сентября 2016, 12:46:42
Ответ #8
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
max_execution_time  - минимум 600 если опять будет Request timeout, то увеличить.
memory_limit  - миниммум 256M
post_max_size - миниммум 256M
upload_max_filesize - миниммум 256M
Многое зависит от настроек mysql, тестировать нужно и от результатов менять значения.

Попробую поменять по вашему совету. В любом случае Спасибо! Разжевали тему хорошо. Отпишусь по результатам. Может кому пригодится.
И да, ошибка правильно звучала: Gateway timeout. Но не думаю, что это меняет сути.
22 Сентября 2016, 09:08:09
Ответ #9
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
max_execution_time  - минимум 600 если опять будет Request timeout, то увеличить.
memory_limit  - миниммум 256M
post_max_size - миниммум 256M
upload_max_filesize - миниммум 256M
Многое зависит от настроек mysql, тестировать нужно и от результатов менять значения.

Попробую поменять по вашему совету. В любом случае Спасибо! Разжевали тему хорошо. Отпишусь по результатам. Может кому пригодится.
И да, ошибка правильно звучала: Gateway timeout. Но не думаю, что это меняет сути.

Изменения этих параметров ни к чему не привело. Но думаю, что совет был правильным. В моём случае всему виной хостинг. Сейчас сайт крутится на общих ресурсах за минимальные деньги. Но, как я понял из разных истоников в сети, импорт такого количества теоретически возможен, если сайт работает на отдельном VPS и есть возможность менять различные настройки. Например, добавление строки увеличивающей время ожидания ответа от apache для сервиса nginx.

proxy_read_timeout 120;
Добавлять эту строку необходимо в файл /etc/nginx/nginx.conf после секции: location / {
Это увеличит время ожидания ответа от apache и тем самым даст больше времени на импорт вашего файла с базой товаров, продуктов или других материалов на сайт.

Но доступа к этим настройкам у меня, к сожалению, нет.

Спасибо за помощь!
22 Сентября 2016, 11:49:20
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 2163
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
proxy_read_timeout 120;Только когда на севере apache+nginx.
Когда один из них, то это правило ненужно.
22 Сентября 2016, 16:05:10
Ответ #11
  • Новичок
  • *
  • Сообщений: 19
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
proxy_read_timeout 120;Только когда на севере apache+nginx.
Когда один из них, то это правило ненужно.
Да, наверно, вы правы. Но для хостинга на общих ресурсах это всё равно не актуально. С таким количеством товара надо выделенный виртуальный сервер использовать. Это в теории. А на практике... тем более. :))) Ибо после импорта 96к товаров (только на одном языке), сайт тормозит страшно. Перехожу на VPS. Кстати, загружать приходилось по 4к, чтобы не отваливался. А в конце уже по 2к.