# 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?

    1. Версия трекера — последняя стабильная, версия трекера проверяется в профиле админ панели. Если трекер ранней версии, проведите апгрейд самостоятельно или обратитесь в поддержку.
    1. Рекомендовано остановить трафик в трекере перед конвертацией.
    1. Для осуществления перехода понадобится предоставить поддержке доступ на сервер по ssh.
Почему рекомендуем останавливать трафик?

Процесс конвертации отработан, но остается сложным и трудоемким. Обрабатываемый в трекере трафик влияет на скорость работы скрипта, настоятельно рекомендуется приостановить работу.

В момент конвертации Cron останавливается, а приходящий трафик добавится в очередь команд в трекер. Клики после окончания обработаются и сохранятся в трекере. Админ панель продолжит работать, страницы трекера откроются корректно, но новая статистика не добавится. Продолжается до включения Cron, после — очередь команд выполнится трекером.

Понимая важность безостановочной работы, разработчики постарались учесть возможные варианты. В 99% случаев, конвертация проходит безболезненно, поэтому техническая поддержка по желанию пользователя запустит переход без остановки трафика. Но практика показывает, что непредвиденные ситуации случаются, и возможно, что в момент конвертации что—то пойдет не по плану. Поэтому рекомендация по приостановке трафика сохраняется, это актуально в первую очередь для случаев, когда трекер работает с большими объемами трафика. Ошибки приводят к угрозе потери информации.

# От каких параметров зависит время конвертации?

  • Размер базы данных трекера.

В среднем база объемом в 1 миллион кликов обновляется за 10-30 минут.

  • Версии и состояния окружения на сервере и в трекере.

Если трекер требует дополнительной подготовки к конвертации, время ожидания увеличится. Присутствует вероятность возникновения ошибок на сервере во время конвертации, трафик и статистика при ошибках окажутся недоступными. Служба поддержки оперативно выявит и устранит проблемы, но на диагностику и устранение уйдет время.