Добавление данных в ClickHouse
Кратко:
- Создание кластера ClickHouse с конфигурациями burstable, b3-c1-m4, 10 ГБ сетевого хранилища.
- Загрузка данных о погоде в Москве и Санкт-Петербурге с рабочей станции.
- Создание таблицы weather с полями LocalDateTime, LocalDate, Month, Day, TempC, Pressure, RelHumidity, WindSpeed10MinAvg, VisibilityKm, City.
- Загрузка данных из файла в БД.
- Запуск команды docker для проверки задания: docker run --rm cr.yandex/sol/edu-checker validate clickhouse.
- Ввод параметров: <TOKEN>, <CLUSTER_HOST>, <DB_NAME>, <DB_USERNAME>, <DB_PASSWORD>.
- Если проверка прошла успешно, скопировать ключ проверки и нажать кнопку Проверить.
-
-
Добавление данных в ClickHouse
- Создайте кластер управляемой базы данных ClickHouse следующей конфигурации: тип хоста
burstable
, классb3-c1-m4
и стандартное сетевое хранилище размером 10 ГБ. - Сохраните на своей рабочей станции этот файл. Это уже известный вам датасет с данными о погоде в Москве и Санкт-Петербурге.
- Создайте в БД таблицу с именем
weather
, в которой есть следующие поля (в скобках указан тип данных): LocalDateTime (DateTime), LocalDate (Date), Month (Int8), Day (Int8), TempC (Float32), Pressure (Float32), RelHumidity (Int32), WindSpeed10MinAvg (Int32), VisibilityKm (Float32), City (String). - Загрузите данные из файла в БД.
- Для проверки задания запустите команду :
docker run --rm cr.yandex/sol/edu-checker validate clickhouse --token <TOKEN> --host <CLUSTER_HOST> --database <DB_NAME> --username <DB_USERNAME> --password <DB_PASSWORD>
где<TOKEN>
— ваш IAM-токен,<CLUSTER_HOST>
— идентификатор хоста кластера,<DB_NAME>
— имя созданной БД,<DB_USERNAME>
— имя пользователя БД,<DB_PASSWORD>
— пароль пользователя. - Если проверка пройдена успешно, то скопируйте ключ проверки, вставьте его в поле ниже и нажмите кнопку Проверить.
- Создайте кластер управляемой базы данных ClickHouse следующей конфигурации: тип хоста
-
К ClickHouse можно подключаться только с машины находящейся в том же кластере следовательно и проверку можно запускать только с неё для этого:
Создать машину и подключиться к ней по ssh:
ssh -l admin 88.165.156.65
Установить Docker на Ubuntu 24.04
sudo apt update
sudo apt upgrade
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
sudo usermod -aG docker ${USER}
Перезапустить оболочку
id -nG
Подключиться к clickhouse
Установите сертификат:
sudo mkdir --parents /usr/local/share/ca-certificates/Yandex && \
sudo wget "https://storage.yandexcloud.net/cloud-certs/RootCA.pem" \
--output-document /usr/local/share/ca-certificates/Yandex/RootCA.crt && \
sudo wget "https://storage.yandexcloud.net/cloud-certs/IntermediateCA.pem" \
--output-document /usr/local/share/ca-certificates/Yandex/IntermediateCA.crt && \
sudo chmod 655 \
/usr/local/share/ca-certificates/Yandex/RootCA.crt \
/usr/local/share/ca-certificates/Yandex/IntermediateCA.crt && \
sudo update-ca-certificates
Подключите DEB-репозиторий ClickHouse:
sudo apt update && sudo apt install --yes apt-transport-https ca-certificates dirmngr && \
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 && \
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
/etc/apt/sources.list.d/clickhouse.list
Установите зависимости:
sudo apt update && sudo apt install --yes clickhouse-client
Загрузите файл конфигурации для clickhouse-client:
mkdir --parents ~/.clickhouse-client && \
wget "https://storage.yandexcloud.net/doc-files/clickhouse-client.conf.example" \
--output-document ~/.clickhouse-client/config.xml
Подключитесь к базе данных:
clickhouse-client --host rc1d-pt95llo56vdfpe56.mdb.yandexcloud.net \
--secure \
--user <username> \
--database <databasename> \
--port 9440 \
--ask-password
Для проверки успешности подключения выполните запрос:
SELECT version();
Перенесите скачанный файл на сетевую машину:
scp /home/administrator/weather_data.tsv Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. :/home/admin/
Получите IAM токен:
yc iam create-token
С сетевой машины заполните таблицу в ClickHouse:
cat /home/admin/weather_data.tsv | clickhouse-client \
--host rc1d-pt94llo55vqfge89.mdb.yandexcloud.net \
--secure \
--user admin \
--database db1 \
--port 9440 \
-q "INSERT INTO db1.weather FORMAT TabSeparated" \
--ask-password
На сетевой машине запустите проверку:
sudo docker run --rm cr.yandex/sol/edu-checker validate clickhouse \
--token t1.9euelZrJy87IzsiLnI6SyJrMzpeXme3rnp......................................A \
--host rc1d-pt56lsd34vqfge56.mdb.yandexcloud.net \
--port 9440 \
--database db1 \
--username admin \
--password admin