Чтобы залить данные в КХ в общем случае нужно переместить файл с данными на сервер, создать таблицу в кх и показать что куда мы заливаем
1. Перемещаем файл.
Тут всё просто, открываем filezilla, подключаемся к нашему серверу и перетаскиваем файл
В моём случае файл называется download.txt. А полный путь на сервере /root/download.txt

2. Создаём таблицу под наши данные
В файле данные логов Метрики по полям ym:s:date, ym:s:clientID, ym:s:visitID, ym:s:bounce, ym:s:lastTrafficSource, ym:s:startURL, ym:s:pageViews.
Мне не нравятся смеси больших и маленьких букв и я поменял названия полей.
Получился вот такой скрипт (про типы полей и движки таблиц я расскажу позже).

create table visits ( date Date, client_id UInt64, visit_id UInt64, bounce UInt8, last_traffic_source String, start_url String, pageviews Int32) engine = Log
Заходим в Табикс и выполняем.
Если всё хорошо - получаем в ответ "ОК".
3. Заливаем данные из файла в созданную таблицу.
Тут придётся опять обратиться к терминалу.
Выполнить нужно только 1 команду.
cat /root/download.txt | clickhouse-client --query 'insert into visits format TSVWithNames'
Тут по сути мы читаем файл и вместо того, чтобы выводить результат на экран передаём его программке clickhouse-client с запросом в параметре.

4. Проверяем что ничего не потерялось.
Простой селект, показывающий количество строк в таблице.
Кстати в синтаксисе КХ можно писать просто count(), вместо count(*). Парни заморочились, чтобы лишний раз звёздочку не писать :)
Синтаксис очень удобен, можно например алиасы использовать в group by и order by

А ещё можно посмотреть, например, распределение частоты визитов по юзерам. Сколько людей пришло только 1 раз за период, только 2 раза итд. Такого веб-интерфейс Метрики не выдаёт.

Comments