Перегрузить данные из CSV в базу (парсинг CSV)
Есть большое количество (около 150 штук) больших файлов выгрузки товаров из магазинов (до 200 тыс записей каждый, до 70 метров весом) в формате CSV.
Файлы обновляются ежедневно. Пример файла прикреплён к заданию.
Необходимо:
1. Раз в сутки (или по мере обновления файлов поставщиками, такая информация будет доступна) забирать CSV, разбирать и складывать в базу. База MySQL, язык разработки PHP.
Обновление должно происходить по крону в автоматическом режиме без участия админа и незаметно для пользователей. То есть сносить старую базу и забивать новые данные, отключив при этом сайт на полчаса – не решение.
Данные во всех файлах представлены в одном и том же формате.
Данные необходимо сложить в таблицу базы со следующими полями:
id – auto_increment
shopname – название магазина в соответствии с нашим именованием (дам отдельно, для выгрузки с разных файлов одного магазина ставить одно имя).
ArtNumber
Title
Description_Short
DisplayPrice
Img_url
Deeplink1
ProductCategoryID
ProductCategoryName
ImgWidth
ImgHeight
Img180_url
Img180Width
Img180Height
Price
Price_old
Description
Brand
Manufacturer
BasePrice
Shipping
DisplayShipping
properties – сюда записать данные всех остальных полей через запятую
Обратить внимание, что тексты в файлах на немецком языке, всё должно храниться в базе в utf-8.
В поле ArtNumber символ / (слэш) необходимо заменить на _ (нижнее подчёркивание). Нелатинские символы с надстрочными знаками – заменить на латинские (не уверен, что такое будет, но чем чёрт не шутит).
Финальная страница со списком товаров на сайте будет выглядеть так: www.sale24.by/shop/mexx/
Страница с самим товаром так: www.sale24.by/shop/mexx/3062/, где 3062 – значение поля ArtNumber
Каждый товар будет запрашиваться из базы по двум параметрам: shopname и ArtNumber
При обновлении данных id можем изменяться, а shopname и ArtNumber для конкретного товара должен оставаться неизменным.
2. Для товаров каждого поставщика в соответствии с записями ProductCategoryName создать дерево категорий и записать в отдельную таблицу базы.
3. Заголовки товаров и названия категорий необходимо давать на русским языке (делать автоматический перевод с немецкого с помощь Яндекс- или Гуггл-переводчика).
Это три задачи, которые мне нужно решить. Первая наиболее приоритетная, ожидаю оценку по стоимости и срокам по каждому пункту.