Предположим, вы работаете в метеорологической службе и постоянно изучаете датасеты с погодными данными. Сбор данных о погоде автоматизирован: на территории области расположены несколько десятков пунктов наблюдения с датчиками. Информация о температуре, давлении, влажности и скорости ветра раз в полчаса передаётся с датчиков на центральный сервер. Приложение на сервере обрабатывает данные, переводит их в нужный формат и записывает в файл. Каждый файл содержит данные за три часа наблюдений. Для прогноза нужно учитывать всю историю наблюдений за последние несколько лет. То есть все файлы потребуется собрать в одну БД.Давайте потренируемся добавлять данные из файлов в БД ClickHouse.На предыдущих уроках мы создали кластер, на котором развёрнута БД, и научились подключаться к нему. Продолжим работать с этой БД, а в качестве добавляемого файла возьмем уже известный вам датасет с данными о погоде в Москве и Санкт-Петербурге.Сохраните файл на компьютере.Прежде чем добавлять файл в БД, создадим в ней таблицу, куда будут вставляться данные. Перейдите в SQL-консоль кластера и выполните команду:
Скопировать кодCREATE TABLE <имя вашей БД>.Weather
( LocalDateTime DateTime,
LocalDate Date,
Month Int8,
Day Int8,
TempC Float32,
Pressure Float32,
RelHumidity Int32,
WindSpeed10MinAvg Int32,
VisibilityKm Float32,
City String
) ENGINE=MergeTree
ORDER BY LocalDateTime;
В результате будет создана пустая таблица с полями и типами данных, соответствующими полям и типам данных в нашем файле (датасете).

Вставим данные в таблицу с помощью клиента командной строки clickhouse-client
. Команды для его установки (для Ubuntu):
Скопировать кодsudo apt-get install -y clickhouse-server clickhouse-client
sudo service clickhouse-server start
clickhouse-client
Подробности о том, как установить клиент и работать с ним, вы найдёте в документации ClickHouse.Подключитесь к кластеру. Пример строки подключения посмотрите в консоли управления.Добавим файл с данными в БД с помощью команды:
Скопировать кодcat weather_data.tsv | clickhouse-client \
--host <адрес вашей БД> \
--secure \
--user user1 \
--database db1 \
--port 9440 \
-q "INSERT INTO db1.Weather FORMAT TabSeparated" \
--ask-password
Переключившись в SQL-консоль, вы увидите, что данные появились в таблице.

Данные в БД можно загружать и другими способами: из приложений или клиентов с графическим интерфейсом (например, DBeaver). В этом случае подключение к БД и передача данных будут идти по HTTP-протоколу через порт 8443.Теперь вы можете анализировать 10-летний срез данных о погоде в Москве и Санкт-Петербурге непосредственно в ClickHouse, без обращений к внешним источникам. Попробуйте, например, выяснить, какой день был самым ветреным в этих городах.После практической работы остановите кластер, но не удаляйте его. Кластер ещё понадобится, когда мы будем рассматривать сервис визуализации и анализа данных Yandex DataLens.
Свежие комментарии