Size: a a a

ClickHouse не тормозит

2021 January 14

SB

Sergey Bubnov in ClickHouse не тормозит
Добрый день. А подскажите, на что надо ориентироваться при принятии решения, какой ключ партиционирования нужно указывать при создании таблицы
engine = MergeTree PARTITION BY date -- вот тут дата у меня по дням, но например result_type уникальных данных куда меньше. или например q_id уникальный данных тоже меньше чем уникальных date, однако result_type еще меньше.
       ORDER BY (date, result_type, q_id, f_id, r_id)


По документации пока трудновато понять, что именно надо использовать. Может как-то тут все проще можно объяснить?
источник

В

Влад in ClickHouse не тормозит
Tagir Gumerov
Так у вас не эвенты, а состояния
Мб сделать словарь или вообще делать не на ch, а на oltp?
UPD я имею в виду, что вы хотите состояние, но не передаете его в следующих сообщениях в Kafka
вот чтобы не делать предпроцессор, который заполняет предыдущие состояния, предположил, что можно сделать средствами ch
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
Влад
вот чтобы не делать предпроцессор, который заполняет предыдущие состояния, предположил, что можно сделать средствами ch
Ksql может поможет?
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
Раз уже кафка есть
источник

СК

Саша Козлов... in ClickHouse не тормозит
подскажите правильный путь решения
есть исходный постгрес , из которого нужно брать данные для агрегатов и справочники

как правильнее/производительнее/надежней ?

работать с ПГ к которому присоединены таблицы КХ
или
работать с КХ к которому присоединены таблицы ПГ
и каким образом?

из того что нашел это
clickhousedb_fdw и clickhouse-jdbc-bridge

но что-то оба варианта не впечатлили
источник

AM

Ada Min in ClickHouse не тормозит
Коллеги, подскажите, в чем разница при подсчтете уников в MV через

... uniqIfState
... uniqStateIf
какой из вариантов оптимальнее?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Ada Min
Коллеги, подскажите, в чем разница при подсчтете уников в MV через

... uniqIfState
... uniqStateIf
какой из вариантов оптимальнее?
uniqStateIf
Этот, сначала отфильтровываем и только потом считаем стейт
источник

D

Dj in ClickHouse не тормозит
Sergey Bubnov
Добрый день. А подскажите, на что надо ориентироваться при принятии решения, какой ключ партиционирования нужно указывать при создании таблицы
engine = MergeTree PARTITION BY date -- вот тут дата у меня по дням, но например result_type уникальных данных куда меньше. или например q_id уникальный данных тоже меньше чем уникальных date, однако result_type еще меньше.
       ORDER BY (date, result_type, q_id, f_id, r_id)


По документации пока трудновато понять, что именно надо использовать. Может как-то тут все проще можно объяснить?
если вам нужно будет удалять данные со временем по признаку времени, лучше partition by date.
если иначе - много всяких если, нужно больше информации
источник

SB

Sergey Bubnov in ClickHouse не тормозит
Dj
если вам нужно будет удалять данные со временем по признаку времени, лучше partition by date.
если иначе - много всяких если, нужно больше информации
Ну скажем так, основная задача этой таблицы, делать запросы в которых всегда будет такой селект Select ..., uniq(result_type), group by q_id
И данных может быть ну например 1ккк+
источник

D

Dj in ClickHouse не тормозит
Sergey Bubnov
Ну скажем так, основная задача этой таблицы, делать запросы в которых всегда будет такой селект Select ..., uniq(result_type), group by q_id
И данных может быть ну например 1ккк+
вообще не делайте партиции тогда
источник

SB

Sergey Bubnov in ClickHouse не тормозит
Dj
вообще не делайте партиции тогда
А ORDER BY  - это же посути индекс и его то уж точно надо и поидее в определенном порядке?
источник

D

Dj in ClickHouse не тормозит
Sergey Bubnov
А ORDER BY  - это же посути индекс и его то уж точно надо и поидее в определенном порядке?
да, в зависимости от запросов и данных (может хорошо влиять на сжатие)

если только груп бай без where - то он тоже не особо нужен, можно только сжатие улучшить используя хороший order by
источник

SB

Sergey Bubnov in ClickHouse не тормозит
Dj
да, в зависимости от запросов и данных (может хорошо влиять на сжатие)

если только груп бай без where - то он тоже не особо нужен, можно только сжатие улучшить используя хороший order by
Правильно ли я понимаю, что как раз эта таблица показывает как работает OrDER BY?
источник

D

Dj in ClickHouse не тормозит
Sergey Bubnov
Правильно ли я понимаю, что как раз эта таблица показывает как работает OrDER BY?
да
источник

SB

Sergey Bubnov in ClickHouse не тормозит
Dj
да
Спасибо, а нет ли способов понять, правильно ли я построил индекс для запроса? типа как в постгре explain какой-то сделать
источник

IL

Igor Levdansky in ClickHouse не тормозит
А никто не сталкивался со случаем работы с jdbc, что значения Tuple-а возвращается как строка?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Ada Min
Подскажите, это баг или фича:
Создаем таблицу Т SummingMergeTree, к ней MATERIALIZED VIEW с селектом из таблицы А.
Создаем таблицу Т2 SummingMergeTree с такимже МВ и селектом из А.

При обращении к таблицам Т и Т2 получаем разные результаты при использовании выборок.
Единственное отличие Т от Т2 — при создании Т  в  ORDER BY  были перечислены все столбцы. В Т2 только основные.
есть в OLAP понятия размерности(дименшины) и метрики, грубо говоря:

select sum() - метрика
          count() - метрика
          country - размерность
          city -  размерность
group by country, city


так вот, все что перечислено в summingMT в order by -- это размерности
все что не перечислено -- это метрики

если у метрики числовой тип, то summingMT их скалдывает
если у метрики нечисловой тип, то summingMT берет любое значение ANY()
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Munir
А где задаются значения по умолчанию на всю базу?
в профиле default
источник

DC

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

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Sergey Bubnov
Добрый день. А подскажите, на что надо ориентироваться при принятии решения, какой ключ партиционирования нужно указывать при создании таблицы
engine = MergeTree PARTITION BY date -- вот тут дата у меня по дням, но например result_type уникальных данных куда меньше. или например q_id уникальный данных тоже меньше чем уникальных date, однако result_type еще меньше.
       ORDER BY (date, result_type, q_id, f_id, r_id)


По документации пока трудновато понять, что именно надо использовать. Может как-то тут все проще можно объяснить?
если вы не знаете какой как партиционировать таблицу, партиционируйте по месяцам. toYYYYMM
источник