top of page

Заливаем данные в Clickhouse

Чтобы залить данные в КХ в общем случае нужно переместить файл с данными на сервер, создать таблицу в кх и показать что куда мы заливаем

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


bottom of page