Size: a a a

ClickHouse не тормозит

2020 September 24

DC

Denny Crane [not a Y... in ClickHouse не тормозит
это не имеет отношения к собственно КХ кластеру
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
два КХ не запустятся на одном хосте если порт у обоих будет 9000
источник

T

T in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
два КХ не запустятся на одном хосте если порт у обоих будет 9000
аа, вот в чём дело, раннее пытался поднимать под различным ip(у каждого свой сетевой интерфейс) но всегда испытывал какие-то проблемы, спасибо
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
хотя может я и ошибаюсь и localhost:9000 не обязателен. Сейчас проверим.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
точно, я наврал, можно и без localhost, если ip-шников много, то каждый КХ поднять на отдельном ip и 9000
источник

CO

Chern Oleksander in ClickHouse не тормозит
а не подскажите, не могу найти, есть ли у 19 оконные функции?
Или как можно достать достать мин число для каждого user_id, за весь период, но группировка по дате
Например
источник

N

Nikolay in ClickHouse не тормозит
Как в КХ работает distinct? Через сортировку или хэш таблицу ? Илии он видит ,что если отсортировнно , то не строит хэш таблицу ?
источник

CO

Chern Oleksander in ClickHouse не тормозит
а вывести
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nikolay
Как в КХ работает distinct? Через сортировку или хэш таблицу ? Илии он видит ,что если отсортировнно , то не строит хэш таблицу ?
через хеш таблицу, в последних версиях появились оптимизации с использованием первичного индекса но они выключены по умолчанию
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Chern Oleksander
а не подскажите, не могу найти, есть ли у 19 оконные функции?
Или как можно достать достать мин число для каждого user_id, за весь период, но группировка по дате
Например
Дак нету оконных функций, тут три строки через массивы groupArray / arrayMin / array join
источник

CO

Chern Oleksander in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
Дак нету оконных функций, тут три строки через массивы groupArray / arrayMin / array join
ух, спасибо!
источник

CO

Chern Oleksander in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
Дак нету оконных функций, тут три строки через массивы groupArray / arrayMin / array join
вроде мысль уловил, только вот arraMin не могу найти
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Chern Oleksander
вроде мысль уловил, только вот arraMin не могу найти
может и нету, ну тогда arrayReduce('min')
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
SELECT arrayReduce('min', [1, 2, 4, 5, -6])

┌─arrayReduce('min', [1, 2, 4, 5, -6])─┐
│                                   -6 │
└──────────────────────────────────────┘
источник

CO

Chern Oleksander in ClickHouse не тормозит
ага, спасибо
источник

CO

Chern Oleksander in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
может и нету, ну тогда arrayReduce('min')
блин, а у меня получается группировка по дате и пользователю((
Это в отдельный подзапрос затаскивать и джойнить?
источник

CO

Chern Oleksander in ClickHouse не тормозит
итоговая задача, это посчитать колво минимальных платежей (
select tbl.user_id,
      tbl.types,
      count(tbl.amount)     count_dep,
      sum(tbl.amount) / 100 sum_dep,
      arrayReduce('min', groupArray(tbl.amount)) min_count,
      min(tbl.amount) / 100 min_dep,
      max(tbl.amount) / 100 max_dep,
      avg(tbl.amount) / 100 avg_dep
from (
        select
               user_payments.user_id,
               case
                   when today() - cast(user_payments.done_date as date) + 1 <= 7 then '7 Days'
                   when today() - cast(user_payments.done_date as date) + 1 between 8 and 14 then '8-14 Days'
                   when today() - cast(user_payments.done_date as date) + 1 between 15 and 30 then '15-30 Days'
                   when today() - cast(user_payments.done_date as date) + 1 >= 31 then '>31 Days'
                   end types,
               user_payments.amount
        from user_payments
        where user_payments.status = 'done'
          and user_payments.type = 'payin'
           and user_id = 1001544
        ) tbl
where user_id = 1001544
group by tbl.user_id, tbl.types
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Chern Oleksander
блин, а у меня получается группировка по дате и пользователю((
Это в отдельный подзапрос затаскивать и джойнить?
кстати тоже самое просто min(tbl.amount) min_count

groupArray(tbl.amount) ga

а во внешнем запросе arrayJoin(ga)
источник

CO

Chern Oleksander in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
кстати тоже самое просто min(tbl.amount) min_count

groupArray(tbl.amount) ga

а во внешнем запросе arrayJoin(ga)
не совсем понял, если в подзапрос сделать groupArray(tbl.amount) ga, нужно ж будет группировать
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Chern Oleksander
не совсем понял, если в подзапрос сделать groupArray(tbl.amount) ga, нужно ж будет группировать
вам надо собрать все price по date+user , конечно надо группировать по date,user
источник