C++ zero cost abstractions на примере хеш таблиц в ClickHouse – Максим Кита
Сказ о том, как я 11 таблиц в ClickHouse джойнил
Сразу разочарую тех, кто пришел посмотреть, как ClickHouse "магически" разруливает распределенные таблицы, борется с огромными объемами данных и за миллисекунды выдает ответ. Да и таблиц будет не 11, а всего 2 (просто join'ов - 11). К сожалению (к счастью), у меня размер данных небольшой, кликхаус всего один и он в докере. Так что здесь я просто буду писать обычный SQL-запрос, просто большой. Задача Опишу, что я хотел сделать. У меня pet-проект alltid-like, собирающий статистку для Hattrick (футбольный менеджер)...
Создание таблицы календаря в ClickHouse
В таблице будут содержаться поля: -- DROP TABLE default.calendar;
CREATE TABLE default.calendar(
`date` Date NOT NULL
, `year` UInt32 NOT NULL
, `quarter` UInt8 NOT NULL
, `month` UInt8 NOT NULL
, year_day UInt16 NOT NULL
, month_day UInt8 NOT NULL
, week_day UInt8 NOT NULL
, month_name String NOT NULL
, week_day_name String NOT NULL
)
ENGINE = MergeTree()
ORDER BY `date`; INSERT INTO default.calendar
WITH
toStartOfDay(toDate('2020-01-01')) AS start,
toStartOfDay(toDate('2031-01-01'))...