Size: a a a

ClickHouse не тормозит

2021 January 13

DT

Dmitry Titov in ClickHouse не тормозит
Скорее всего придется на коленке построить воронку на массивах и ручками сделать

https://altinity.com/blog/harnessing-the-power-of-clickhouse-arrays-part-2

Тк вам нужна именно последовательная комбинация из двух (?1)(?2) событий без каких либо событий между ними.
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
Dmitry Titov
Скорее всего придется на коленке построить воронку на массивах и ручками сделать

https://altinity.com/blog/harnessing-the-power-of-clickhouse-arrays-part-2

Тк вам нужна именно последовательная комбинация из двух (?1)(?2) событий без каких либо событий между ними.
никак не могу уяснить, как high order functions пользоваться в ch, тоже уже смотрю этот подход. есть какая-то дока для тупых, где разжёвано как с array* функциями жить?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Oleg Gavrilov
никак не могу уяснить, как high order functions пользоваться в ch, тоже уже смотрю этот подход. есть какая-то дока для тупых, где разжёвано как с array* функциями жить?
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
спасибо, буду пытаться
источник

DT

Dmitry Titov in ClickHouse не тормозит
Oleg Gavrilov
спасибо, буду пытаться
WITH
   groupArray(eventType) AS event_arr,
   groupArray(EventTime) AS time_arr
SELECT
   userID,
   arrayFirst((x, y, z) -> ((y = 'A') AND (z = 'B')), time_arr, event_arr, arrayPushBack(arrayPopFront(event_arr), cast('A', 'Enum8(\'A\' = 1, \'B\' = 2)'))) AS x
FROM
(
   SELECT
       userID,
       eventType,
       EventTime
   FROM test.funnel
   WHERE (Age > 30) AND (eventType IN ('A', 'B'))
   ORDER BY
       userID ASC,
       EventTime ASC
)
GROUP BY userID


Я бы что то такое написал, там правда нужно отфильтровать нули
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
Что за магия в arrayFirst?) но спасибо, проверю
источник

R

Roman in ClickHouse не тормозит
Если есть вот такой запрос:
SELECT
id,
sumIf(1, event_type="event_1") AS event_1,
sumIf(1, event_type="event_2") AS event_2,
sumIf(1, event_type="event_3") AS event_3,
и т.д.

Это же можно переделать через groupArray?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Беру три массива
массив таймстампов
массив евентов
массив эвентов с сдвигом на 1 элемент вперед
И достаю первый таймстап который отвечает буквально последовательности из эвентов A и B
источник

DT

Dmitry Titov in ClickHouse не тормозит
SELECT id, sumForEach([event_type="event_1", event_type="event_2", event_type="event_3"]) в целом можно так

Либо можно через sumMap([event_type],[1]);
Но вообще с -If были небольшие проблемы с перфомансом по сравнению с sum(If)
https://github.com/ClickHouse/ClickHouse/pull/17041
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
Dmitry Titov
Беру три массива
массив таймстампов
массив евентов
массив эвентов с сдвигом на 1 элемент вперед
И достаю первый таймстап который отвечает буквально последовательности из эвентов A и B
результат странный,
+------+----------+
|userID|x         |
+------+----------+
|4     |1970-01-01|
|2     |1970-01-01|
|1     |2001-01-01|
+------+----------+
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
а, нули
источник

OG

Oleg Gavrilov in ClickHouse не тормозит
понял
источник

DT

Dmitry Titov in ClickHouse не тормозит
Oleg Gavrilov
а, нули
Они самые, ага
источник

OF

Oleg Fil in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
Раньше задавал этот вопрос, но решение не нашел.
КХ версии 20.4 (и сервер и клиент)
Через SQL сделал несколько юзеров.
Теперь хочу посмотреть их список. Деалю SHOW USERS и получаю ошибку:
Syntax error: failed at position 6:
show users
Expected one of: TABLES, GRANTS, CREATE, QUOTA USAGE, POLICIES, ROW POLICIES, PROCESSLIST, CREATE, QUOTAS, DICTIONARIES

В базе данных system таблицы users тоже не вижу.

Что можно делать? Куда смотреть?)
ПРивет. вышло решить?
источник

D

Dj in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
Раньше задавал этот вопрос, но решение не нашел.
КХ версии 20.4 (и сервер и клиент)
Через SQL сделал несколько юзеров.
Теперь хочу посмотреть их список. Деалю SHOW USERS и получаю ошибку:
Syntax error: failed at position 6:
show users
Expected one of: TABLES, GRANTS, CREATE, QUOTA USAGE, POLICIES, ROW POLICIES, PROCESSLIST, CREATE, QUOTAS, DICTIONARIES

В базе данных system таблицы users тоже не вижу.

Что можно делать? Куда смотреть?)
show users;

SHOW USERS

┌─name─────┐
│ default  │
│ mtest    │
│ ptest    │
└──────────┘

3 rows in set. Elapsed: 0.002 sec.
источник

D

Dj in ClickHouse не тормозит
Oleg Fil
ПРивет. вышло решить?
источник

D

Dj in ClickHouse не тормозит
GRANT SHOW USERS ON *.* если не под дефолтом
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Oleg Fil
ПРивет. вышло решить?
в той версии не было еще этой команды
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Egor Zagorskiy
такое количество апдейтов не годится, судя по всему? вызывает непрерывный merge? сорян, я плохо понимаю физиологию КХ..
по дизайну предполается 1-2 апдейта в год. Не шучу
источник

EZ

Egor Zagorskiy in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
по дизайну предполается 1-2 апдейта в год. Не шучу
если будут идти частые заменяющие инсёрты в ReplacingMergeTree -- оно так же ляжет от мержей?
источник