+7 495 152-72-55 info@internet-expert.ru
  • Автоматическая загрузка данных в Clickhouse

Разработка функционала загрузки данных для аналитики в кластер Clickhouse из разнородных источников с фоновой дедупликацией данных для одного из крупнейших медиаагентств, входящее в ТОП-10 рейтинга АКАР.

Загрузка данных для аналитики

В процессе реализации было решено переводить файлы в формат csv, для пакетной загрузки однородных файлов в таблицы Clickhouse.

Данные для загрузки должны попадать в Clickhouse из 3-х источников:

  • Csv файлы, выгружаемые на FTP из 1С;
  • Xlsx файлы, получаемые из отчетов DCM/DFA Google;
  • Xlsx/csv файлы, экспортируемые аналитиками на ftp.

Так как данные различных источников могут дублировать друг друга, реализовали дедупликацию данных через движок ReplacingMergeTree с определением ключевых полей для каждой таблицы.

Аналитика Дедупликация Docker-контейнеры YMS Terraform Ansible Clickhouse

Загрузка данных в таблицы происходит по следующему алгоритму:

1. Файлы xlsx преобразуются в формат csv:

  • Нестандартные xlsx контейнеры обрабатываются напрямую из xml файлов zip;
  • Стандартные xlsx преобразуются в стандартный csv через xlsx2csv.

2. Обработчик csv файлов определяет по метаданным файла необходимый класс импортер и ставит задачу на загрузку файла.

3. Класс импортер:

  • Находит обязательные поля в колонках и реализует синхронизацию колонок таблиц и файла;
  • Производит модификацию данных к необходимому формату;
  • Добавляет служебные поля;
  • Производит пакетный импорт полученного csv файла в кластер Clickhouse.

Для реализации конвейерной обработки файлов шаги импорта разбиты на независимые микросервисы, работающие в Docker контейнерах. На каждом шаге алгоритма проводятся проверки данных, форматов, ошибок обработки. Данные о сбоях отправляются в каналы Telegram админам/логи для проверки и принятия оперативных мер по исправлению ошибок.

Инфраструктура для эксплуатации коннекторов запущена в Yandex Cloud. Для исполнения задач по расписанию и логирования результатов используется автоматизация в Jenkins. В качестве базы данных применяется решение Yandex Cloud - Yandex Managed Service for ClickHouse. Для работы с сетевой инфраструктурой, виртуальными машинами и управляемыми базами данных реализованы скрипты автоматизации Terraform и Ansible.

По результатам кейса компания получила удобный инструментарий и значительное ускорение обработки данных для аналитического отдела.

Накопленный опыт компании Интернет-Эксперт позволяет реализовывать эффективный функционал Data processing для Вашего проекта.

Другие разработки
Разработка модуля загрузки номенклатуры из разнородных прайс-листов

Бизнес-модель магазина основана на торговле со складов поставщиков. Нами был разработан модуль загрузки номенклатуры из разнородных прайс-листов поставщиков.