# ClickHouse
# О системе ClickHouse
ClickHouse — столбцовая система управления базами данных (СУБД) для онлайн—обработки аналитических запросов (OLAP). В обычной, «строковой» СУБД данные, относящиеся к одной строке, физически хранятся рядом. В столбцовой, значения из разных столбцов хранятся отдельно, а данные одного столбца — в одном месте.
Разный порядок хранения данных подходит для разных сценариев работы. При возрастающей нагрузке на систему важно перейти на оптимизированную под задачи трекера структуру. В контексте Keitaro — новый тип организации базы данных, который позволит увеличить быстродействие процессов, участвующих в выборке и скорости генерации отчетов. Тестирование показало, что после перехода отчеты строятся в 14 раз быстрее.
# Преимущества перехода на ClickHouse
- Увеличено количество свободных sub_id_1-30.
- На СlickHouse в свободных sub_id_1-30 записывается больше 255 символов.
- Поддержка IPv6 во всех отчетах.
- Увеличена скорость построения отчетов.
- Меньше потребления пространства на диске.
# Изменения в API
- Колонка
ip
содержит IPv4 и IPv6 значения. - Колонки
click_id
иconversion_id
содержат UUID, вместо числа (integer). - Колонка
visitor_id
не существует, но остаетсяvisitor_code
.
# Что необходимо учитывать перед переходом на СlickHouse?
- Версия трекера — последняя стабильная, версия трекера проверяется в профиле админ панели. Если трекер ранней версии, проведите апгрейд самостоятельно или обратитесь в поддержку.
- Рекомендовано остановить трафик в трекере перед конвертацией.
- Для осуществления перехода понадобится предоставить поддержке доступ на сервер по ssh.
Почему рекомендуем останавливать трафик?
Процесс конвертации отработан, но остается сложным и трудоемким. Обрабатываемый в трекере трафик влияет на скорость работы скрипта, настоятельно рекомендуется приостановить работу.
В момент конвертации Cron останавливается, а приходящий трафик добавится в очередь команд в трекер. Клики после окончания обработаются и сохранятся в трекере. Админ панель продолжит работать, страницы трекера откроются корректно, но новая статистика не добавится. Продолжается до включения Cron, после — очередь команд выполнится трекером.
Понимая важность безостановочной работы, разработчики постарались учесть возможные варианты. В 99% случаев, конвертация проходит безболезненно, поэтому техническая поддержка по желанию пользователя запустит переход без остановки трафика. Но практика показывает, что непредвиденные ситуации случаются, и возможно, что в момент конвертации что—то пойдет не по плану. Поэтому рекомендация по приостановке трафика сохраняется, это актуально в первую очередь для случаев, когда трекер работает с большими объемами трафика. Ошибки приводят к угрозе потери информации.
# От каких параметров зависит время конвертации?
- Размер базы данных трекера.
В среднем база объемом в 1 миллион кликов обновляется за 10-30 минут.
- Версии и состояния окружения на сервере и в трекере.
Если трекер требует дополнительной подготовки к конвертации, время ожидания увеличится. Присутствует вероятность возникновения ошибок на сервере во время конвертации, трафик и статистика при ошибках окажутся недоступными. Служба поддержки оперативно выявит и устранит проблемы, но на диагностику и устранение уйдет время.