Size: a a a

ClickHouse не тормозит

2016 November 15

VS

Vladislav 👻 Shishkov in ClickHouse не тормозит
Kirill B
Допустим у нас есть таблица со столбцами: key version value
key + version = уникальный ключ
key = индексный столбец
version = версия данных
value = сами данные

Как делать запрос с WHERE ... GROUP BY key, но чтобы в результатах учавствовали только строки с максимальными значениями поля version в пределах ключа key с учетом WHERE?

Например, если взять вот такие данные для примера:
1 1 10
1 2 20
1 3 30  #строка с максимальной версией для key=1
2 1 100
2 2 200 #строка с максимальной версией для key=2

то такой запрос должен выдать:
1 30
2 200
Group by не используют при таких раскладах, т.к. производительность будет в Ж...
Делают оконными функциями или подзапросами в WHERE
источник

RL

Roman Lomonosov in ClickHouse не тормозит
replacingmergetree смотрел? или materialized view на основе replacingmergetree?
источник

KB

Kirill B in ClickHouse не тормозит
Vladislav 👻 Shishkov
Group by не используют при таких раскладах, т.к. производительность будет в Ж...
Делают оконными функциями или подзапросами в WHERE
Я GROP BY привел, т.к. эти SELECTы подразумевают SUM,AVG.
источник

E

Etki in ClickHouse не тормозит
Kirill B
Допустим у нас есть таблица со столбцами: key version value
key + version = уникальный ключ
key = индексный столбец
version = версия данных
value = сами данные

Как делать запрос с WHERE ... GROUP BY key, но чтобы в результатах учавствовали только строки с максимальными значениями поля version в пределах ключа key с учетом WHERE?

Например, если взять вот такие данные для примера:
1 1 10
1 2 20
1 3 30  #строка с максимальной версией для key=1
2 1 100
2 2 200 #строка с максимальной версией для key=2

то такой запрос должен выдать:
1 30
2 200
я бы просто уникальный ключ даунгрейднул до просто key и обновлял по мере обновления самих данных
источник

KB

Kirill B in ClickHouse не тормозит
Roman Lomonosov
replacingmergetree смотрел? или materialized view на основе replacingmergetree?
Читал, но поверхностно - еще почитаю.
источник

KB

Kirill B in ClickHouse не тормозит
Etki
я бы просто уникальный ключ даунгрейднул до просто key и обновлял по мере обновления самих данных
Да, согласен - если мы выбираем максимальную версию, то version в уникальном ключе нам вообще не нужен.
источник

VS

Vladislav 👻 Shishkov in ClickHouse не тормозит
Kirill B
Я GROP BY привел, т.к. эти SELECTы подразумевают SUM,AVG.
Оконные функции
источник

pk

papa karlo in ClickHouse не тормозит
Kirill B
Допустим у нас есть таблица со столбцами: key version value
key + version = уникальный ключ
key = индексный столбец
version = версия данных
value = сами данные

Как делать запрос с WHERE ... GROUP BY key, но чтобы в результатах учавствовали только строки с максимальными значениями поля version в пределах ключа key с учетом WHERE?

Например, если взять вот такие данные для примера:
1 1 10
1 2 20
1 3 30  #строка с максимальной версией для key=1
2 1 100
2 2 200 #строка с максимальной версией для key=2

то такой запрос должен выдать:
1 30
2 200
select key,argMax(value, version) from (select 1 as key, 1 as version, 10 as value union all select 1 ,2,20 union all select 1, 3, 30 union all select 2,1,100 union all select 2,1,200) group by key
источник

RL

Roman Lomonosov in ClickHouse не тормозит
Kirill B
Читал, но поверхностно - еще почитаю.
документации к  replacing нет. вот тут пара строк в комментах https://github.com/yandex/ClickHouse/blob/master/dbms/src/Storages/StorageFactory.cpp#L524
источник

KB

Kirill B in ClickHouse не тормозит
Ого
источник

pk

papa karlo in ClickHouse не тормозит
в последней строке опечатка, должно быть 2,2,200, тогда отдается 2 200.
источник

KB

Kirill B in ClickHouse не тормозит
Всем огромное спасибо, поизучаю!
источник

f

f1yegor in ClickHouse не тормозит
по ReplacingMergeTree просто посмотри тесты в репозитории
источник

KB

Kirill B in ClickHouse не тормозит
f1yegor
по ReplacingMergeTree просто посмотри тесты в репозитории
Угу, понял.
источник
2016 November 16

e

er@essbase.ru in ClickHouse не тормозит
источник

VZ

Vladimir Zagranovsky in ClickHouse не тормозит
джва года ждал (с)
источник

VS

Vladislav 👻 Shishkov in ClickHouse не тормозит
еще бы адаптировать CH под Anchor model и цены ему не будет...
источник

ES

Evgeniy Shishkin in ClickHouse не тормозит
что за модель
источник

DK

Dmitrii Kuznetsov in ClickHouse не тормозит
Да-да, мы когда на кликхаус пересели, я долго не мог поверить, что это не закешированные данные, а посчитанные на лету.
источник

VS

Vladislav 👻 Shishkov in ClickHouse не тормозит
Evgeniy Shishkin
что за модель
источник