Тренинг по Clickhouse от Altinity - LEFT JOIN

Свяжитесь с нами в любой удобной для вас форме

Менеджер

Написать в телеграмм

Онлайн
Телеграмм
или
Заполните форму

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 за отличную подборку лабораторных заданий в ходе обучения.

Ссылки:
Конспект в Notion
ClickHouse 101 Training от Altinity

770 просмотров

Добавить комментарий

[ Рекомендации ]

Читайте также

1 минута чтения

*

10 июля 2020

Устанавливаем Clickhouse на AWS

1 минута чтения

*

9 марта 2021

Бот для преобразования данных из Coinkeeper

3 минут чтения

*

22 мая 2023

Привет, Hydra!

[ Дальше ]