Size: a a a

ClickHouse не тормозит

2021 February 24

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Bral Bral
5-10 тысяч, партиционирования по месяцам. Поток 10-20 мб/с ( сотни тысяч строк) , но читается батчами по 5к, если не ошибаюсь.
5-10 тысяч в секунду, ..,  в год? Раз в 7 секунд flush в kafka-engine
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Mishanya
настройке в кафка-движке что бы батчи были по 64к
дефолтный сеттинг слишком маленький
дефолтный 1 млн. Там две настройки, сколько poll, и сколько флаш
источник

BB

Bral Bral in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
5-10 тысяч в секунду, ..,  в год? Раз в 7 секунд flush в kafka-engine
что? раз 1-3 минуты, наблюдается такая нагрузка ~40-50 секунд.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Bral Bral
что? раз 1-3 минуты, наблюдается такая нагрузка ~40-50 секунд.
надо лог смотреть.
источник

FN

Fred Navruzov in ClickHouse не тормозит
вопросы от новичка по (отсутствующим?) в КХ агрегационным функциям
есть таблица weather с погодными данными
- id гео-региона gid
- локальное время (с точностью до часа) time_local
- куча колонок с измерениями (например, кол-во осадков, температура, и т.д. простой вариант - все числовые)
таблица отсортирована по (gid, time_local asc), дубликатов по этому ключу нет, в рамках каждго gid не более 10000 записей (365 дня*24 часа измерений)

сами вопросы:
- как вычислить (и присоединить left join-ом к изначальной таблице weather в запросе) скользящую сумму по какой-нибудь числовой колонке в рамках группировки по gid (например, суммарное кол-во осадков за 5 часов)
- как вычислить (и присоединить left join-ом к изначальной таблице weather в  запросе) скользящее среднее по какой-нибудь числовой колонке в рамках группировки по gid (например, средняя скорость ветра за 5 часов)

я так понимаю, что нужно использовать что-то по типу groupArrayMovingSum / groupArrayMovingAvg ?
c указанием окна (допустим, 5 строк, что в идеальном сценарии = окно в 5 часов включая текущий ? )

например, как развернуть и "присоединить" к изначальной таблице weather результаты такого запроса
select gid, groupArrayMovingAvg(5)(windspeed) as rolling_ws,  groupArrayMovingSum(5)(precipitation) as rolling_precip_sum
from weather
group by gid
?
Заранее большое спасибо
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Fred Navruzov
вопросы от новичка по (отсутствующим?) в КХ агрегационным функциям
есть таблица weather с погодными данными
- id гео-региона gid
- локальное время (с точностью до часа) time_local
- куча колонок с измерениями (например, кол-во осадков, температура, и т.д. простой вариант - все числовые)
таблица отсортирована по (gid, time_local asc), дубликатов по этому ключу нет, в рамках каждго gid не более 10000 записей (365 дня*24 часа измерений)

сами вопросы:
- как вычислить (и присоединить left join-ом к изначальной таблице weather в запросе) скользящую сумму по какой-нибудь числовой колонке в рамках группировки по gid (например, суммарное кол-во осадков за 5 часов)
- как вычислить (и присоединить left join-ом к изначальной таблице weather в  запросе) скользящее среднее по какой-нибудь числовой колонке в рамках группировки по gid (например, средняя скорость ветра за 5 часов)

я так понимаю, что нужно использовать что-то по типу groupArrayMovingSum / groupArrayMovingAvg ?
c указанием окна (допустим, 5 строк, что в идеальном сценарии = окно в 5 часов включая текущий ? )

например, как развернуть и "присоединить" к изначальной таблице weather результаты такого запроса
select gid, groupArrayMovingAvg(5)(windspeed) as rolling_ws,  groupArrayMovingSum(5)(precipitation) as rolling_precip_sum
from weather
group by gid
?
Заранее большое спасибо
я бы на вашем месте поставил тестинг и писал
тупо

avg(quantity) over (partition by brand_id, rack_id order by dt, quantity
                      ROWS BETWEEN 3 PRECEDING AND CURRENT ROW ) avg_moving
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
я пытаюсь обложить тестами window functions и там что удивительно все работает
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
источник

FN

Fred Navruzov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
я бы на вашем месте поставил тестинг и писал
тупо

avg(quantity) over (partition by brand_id, rack_id order by dt, quantity
                      ROWS BETWEEN 3 PRECEDING AND CURRENT ROW ) avg_moving
а, круто!
сейчас попробую традиционный подход
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Fred Navruzov
а, круто!
сейчас попробую традиционный подход
apt-get install clickhouse-server=21.3.1.6054 clickhouse-client=21.3.1.6054  clickhouse-common-static=21.3.1.6054
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
кстати groupArrayMovingAvg удивительно нелогично считает края, среднее от 1, получается 0.25



SELECT groupArrayMovingAvg(4)(1)

┌─groupArrayMovingAvg(4)(1)─┐
│ [0.25]                    │
└───────────────────────────┘
источник

FN

Fred Navruzov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
кстати groupArrayMovingAvg удивительно нелогично считает края, среднее от 1, получается 0.25



SELECT groupArrayMovingAvg(4)(1)

┌─groupArrayMovingAvg(4)(1)─┐
│ [0.25]                    │
└───────────────────────────┘
👽
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT groupArrayMovingAvg(4)(arrayJoin([1, 1, 1, 1, 1, 1, 1, 1, 1])) AS x

┌─x───────────────────────────┐
│ [0.25,0.5,0.75,1,1,1,1,1,1] │
└─────────────────────────────┘
источник

DT

Dmitry Titov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
кстати groupArrayMovingAvg удивительно нелогично считает края, среднее от 1, получается 0.25



SELECT groupArrayMovingAvg(4)(1)

┌─groupArrayMovingAvg(4)(1)─┐
│ [0.25]                    │
└───────────────────────────┘
Ну логика впринципе понятна, другое дело, что наверное не все ее ожидают увидеть именно такой.
источник

FN

Fred Navruzov in ClickHouse не тормозит
по поводу агрегатных функций - на слайдах я находил, что поддерживаются с версии 21.1
https://presentations.clickhouse.tech/meetup50/new_features/#16
в версии ch-server 21.1.2.х они есть? или только в тех версиях 21.3.1+, что вы скидывали выше?
можно ли из клиента с правами админа запустить SET allow_experimental_window_functions = 1 на сервере (или как это работает ? как включить этот функционал)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Fred Navruzov
по поводу агрегатных функций - на слайдах я находил, что поддерживаются с версии 21.1
https://presentations.clickhouse.tech/meetup50/new_features/#16
в версии ch-server 21.1.2.х они есть? или только в тех версиях 21.3.1+, что вы скидывали выше?
можно ли из клиента с правами админа запустить SET allow_experimental_window_functions = 1 на сервере (или как это работает ? как включить этот функционал)
В 21.1 они совсем сырые были.

>  SET allow_experimental_window_functions = 1
Да
либо выставить такой сеттинг в profile секции пользователя
источник

FN

Fred Navruzov in ClickHouse не тормозит
Dmitry Titov
В 21.1 они совсем сырые были.

>  SET allow_experimental_window_functions = 1
Да
либо выставить такой сеттинг в profile секции пользователя
спасибо, постараемся накатить версии более новые
источник

AS

Alexandr Segedin in ClickHouse не тормозит
Добрый вечер. Недавно начал использовать clickhouse. Столкнулся с задачкой, хотел бы спросить совета.
Есть база events, необходимо создать аналог DUPLICATE KEY UPDATE изи mysql, а именно создать VIEW, в которой будут складываться значения param для случая дублирования по ключчам. Нашёл как пример ReplacingMergeTree, однако там идёт скорее не update, а удаление старых строк и создание новых при одинаковых ключах.
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
Alexandr Segedin
Добрый вечер. Недавно начал использовать clickhouse. Столкнулся с задачкой, хотел бы спросить совета.
Есть база events, необходимо создать аналог DUPLICATE KEY UPDATE изи mysql, а именно создать VIEW, в которой будут складываться значения param для случая дублирования по ключчам. Нашёл как пример ReplacingMergeTree, однако там идёт скорее не update, а удаление старых строк и создание новых при одинаковых ключах.
источник

AS

Alexandr Segedin in ClickHouse не тормозит
Большое спасибо
источник