1 минута чтения
21 августа 2021 г.
Тренинг по Clickhouse от Altinity
Буквально на днях закончил обучение Clickhouse от Altinity (101 Series Training). Для тех, кто только знакомится с Clickhouse Altinity предлагает базовый бесплатный тренинг: Data Warehouse Basics. Рекомендую начать с него, если планируете погружаться в обучение.
Сертификация от Altinity
Хочу поделиться своими впечатлениями об обучении и поделиться своим конспектом с тренинга.
Обучение стоит $500 и длится четыре дня по два часа, проводится в наше вечернее время (начиная с 19:00 GMT+3).
Сессия №1
Первый день в бОльшей степени повторяет пройденное в Data Warehouse Basics, однако в нем есть несколько новых идей, например о том, как можно получить полезную информацию о запросах из системных таблиц.
Например, такой query выдаст какие команды запущены и в каком они статусе:
SELECT command, is_done
FROM system.mutations
WHERE table = ‘ontime’
Помимо этого, для меня было очень полезно узнать про компрессию колонок с использованием кодеков:
ALTER TABLE ontime
MODIFY COLUMN TailNum LowCardinality(String) CODEC(ZSTD(1))
Для тех, кто начинает погружение в Clickhouse первый день будет супер-полезным в том, чтобы разобраться с движками таблиц и синатксисом их создания, партициями, вставкой данных (к примеру, напрямую из S3).
INSERT INTO sdata
SELECT * FROM s3(
‘https://s3.us-east-1.amazonaws.com/d1-altinity/data/sdata*.csv.gz’,
‘aws_access_key_id’,
‘aws_secret_access_key’,
‘Parquet’,
‘DevId Int32, Type String, MDate Date, MDatetime
DateTime, Value Float64’)
Сессия №2
Второй день мне представляется максимально насыщенным и полезным, потому что в рамках него Robert из Altinity подробно рассказывает про агрегирующие функции в Clickhouse и про создание материализованных представлений (подробно по шагам разбирается схема создания материализованного представления).
Отдельное внимание устройству джойнов в Clickhouse
Мне было супер-полезно узнать про типы индексов в CH
Сессия №3
В рамках третьего дня коллеги делятся знаниями о том как работать с Kafka, JSON-объектами, которые хранятся в таблицах.
Интересно было узнать, что работа с типами данных массив в Clickhouse очень похоже на работу с массивами в Python:
WITH [1, 2, 4] AS array
SELECT
array[1] AS First,
array[2] AS Second,
array[3] AS Third,
array[-1] AS Last,
length(array) AS Length
И при работе с массивами крутая фича это ARRAY JOIN, который «разворачивает» массив в плоскую реляционную таблицу:
Clickhouse позволяет эффективно взаимодействовать с JSON-объектами, которые хранятся в таблице:
— Get a JSON string value
SELECT JSONExtractString(row, ‘request’) AS request
FROM log_row LIMIT 3
— Get a JSON numeric value
SELECT JSONExtractInt(row, ‘status’) AS status
FROM log_row LIMIT 3
На примере этого кусочка кода отдельно извлекаются элементы JSON-массива ‘request’ и ‘status’.
Их можно сложить в ту же таблицу:
ALTER TABLE log_row
ADD COLUMN
status Int16 DEFAULT
JSONExtractInt(row, ‘status’)
ALTER TABLE log_row
UPDATE status = status WHERE 1 = 1
Сессия №4
А на заключительный четвертый день оставлена самая трудная тема с моей точки зрения: построение шардированных и реплицированных кластеров, построение запросов на распределенных серверах Clickhouse.
Отдельный респект Altinity за отличную подборку лабораторных заданий в ходе обучения.
[ Рекомендации ]
Читайте также
[ Связаться ]
Давайте раскроем потенциал вашего бизнеса вместе
Заполните форму на бесплатную консультацию