В процессе реализации было решено переводить файлы в формат csv, для пакетной загрузки однородных файлов в таблицы Clickhouse.
Данные для загрузки должны попадать в Clickhouse из 3-х источников:
Так как данные различных источников могут дублировать друг друга, реализовали дедупликацию данных через движок ReplacingMergeTree с определением ключевых полей для каждой таблицы.
Загрузка данных в таблицы происходит по следующему алгоритму:
1. Файлы xlsx преобразуются в формат csv:
2. Обработчик csv файлов определяет по метаданным файла необходимый класс импортер и ставит задачу на загрузку файла.
3. Класс импортер:
Для реализации конвейерной обработки файлов шаги импорта разбиты на независимые микросервисы, работающие в Docker контейнерах. На каждом шаге алгоритма проводятся проверки данных, форматов, ошибок обработки. Данные о сбоях отправляются в каналы Telegram админам/логи для проверки и принятия оперативных мер по исправлению ошибок.
Инфраструктура для эксплуатации коннекторов запущена в Yandex Cloud. Для исполнения задач по расписанию и логирования результатов используется автоматизация в Jenkins. В качестве базы данных применяется решение Yandex Cloud - Yandex Managed Service for ClickHouse. Для работы с сетевой инфраструктурой, виртуальными машинами и управляемыми базами данных реализованы скрипты автоматизации Terraform и Ansible.
По результатам кейса компания получила удобный инструментарий и значительное ускорение обработки данных для аналитического отдела.
Накопленный опыт компании Интернет-Эксперт позволяет реализовывать эффективный функционал Data processing для Вашего проекта.
Бизнес-модель магазина основана на торговле со складов поставщиков. Нами был разработан модуль загрузки номенклатуры из разнородных прайс-листов поставщиков.