Size: a a a

ClickHouse не тормозит

2020 May 20

M

Maxim Bogdanov in ClickHouse не тормозит
Просто есть snowflake, bigquery, vertica - бд, где это можно делать легко через сложные запросы с джойнами, да можно даже свой мэп редьюс сделать распределенный именно для этой задачи. Мне с кликхаусом именно вопрос воронок надо закрыть, в остальном он идеален 🙂 Если нельзя их строить, то будет печалька.
источник

DT

Dmitry Titov in ClickHouse не тормозит
в клике есть несколько функций для воронок и есть довольно богатый набор для обработки массивов
источник

DT

Dmitry Titov in ClickHouse не тормозит
думаю хватит
источник

8S

87198 Skripko in ClickHouse не тормозит
87198 Skripko
Подскажите, монжо ли как-то "реиндексировать" пересоздать первичный индекс?
Столкнулся с тем, что поиск по индексу для некоторых полей возвращает не все данные:
По индексу
select count(*) from $table WHERE CityID = '15b9f91c-f775-11e7-80a7-00155d03330d'
┌─count()─┐
│  368688 │
└─────────┘
Без использования индекса
select count(*) from $table WHERE toString(CityID) = '15b9f91c-f775-11e7-80a7-00155d03330d'
┌──count()─┐
│ 26781483 │
└──────────┘
Гранулярность по дефолту 8192
Кстати перед этим делали Мутации по первичному ключу
DELETE WHERE CityID = '1931d0f6-b84a-11e6-9c4d-00155d03330d'
Насколько я понял возможность эта появилось недавно, т.к в документации написано обратное.
источник

DT

Dmitry Titov in ClickHouse не тормозит
87198 Skripko
Кстати перед этим делали Мутации по первичному ключу
DELETE WHERE CityID = '1931d0f6-b84a-11e6-9c4d-00155d03330d'
Насколько я понял возможность эта появилось недавно, т.к в документации написано обратное.
какая версия кликхауса?
источник

8S

87198 Skripko in ClickHouse не тормозит
version 20.1.3
источник

DT

Dmitry Titov in ClickHouse не тормозит
был баг, когда мутации ломали индекс и не те данные возвращались
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Dmitry Titov
в клике есть несколько функций для воронок и есть довольно богатый набор для обработки массивов
ок спс в любом случае, тут надо просто попробовать.
источник

DT

Dmitry Titov in ClickHouse не тормозит
87198 Skripko
version 20.1.3
источник

DT

Dmitry Titov in ClickHouse не тормозит
Maxim Bogdanov
ок спс в любом случае, тут надо просто попробовать.
нз
источник

8S

87198 Skripko in ClickHouse не тормозит
Понятно. А есть какая-нибудь возможность перестроить индекс?
Или только через создание копии таблицы и SELECT INSERT?
источник

DT

Dmitry Titov in ClickHouse не тормозит
87198 Skripko
Понятно. А есть какая-нибудь возможность перестроить индекс?
Или только через создание копии таблицы и SELECT INSERT?
изменить PRIMARY KEY нельзя,  можно только перелить данные
источник

DT

Dmitry Titov in ClickHouse не тормозит
можно добавить новые столбцы в ORDER BY, но это не совсем то что тебе нужно как я вижу
источник

8S

87198 Skripko in ClickHouse не тормозит
Dmitry Titov
изменить PRIMARY KEY нельзя,  можно только перелить данные
Понял, спасибо!
источник

m

mrAndersen in ClickHouse не тормозит
mrAndersen
Доброе утро!

Очень странная ситуация, есть MergeTree и AggregatingMergeTree, если в ручную сделать запрос по которому формируется выборка для вьюхи из родительского MergeTree, то приходит правильный набор данных (есть все даты, группировка по нескольким полям в том числе по дате, пропущенных дат нет).

Если же сделать эту выборку из AggregatingMergeTree то там есть пропуски по датам (сортировка сам собой есть по date desc как в первом так и во втором случае), как будто бы не записываются данные. Ошибок в логах нету, uptime у сервера больше 320 дней. Что может быть не так?
Причем если взять по месяцу, то сумма совпадает во вьюхе, но рапсределена в рандомный день\дни
источник

DT

Dmitry Titov in ClickHouse не тормозит
mrAndersen
DDL Вьюхи

CREATE MATERIALIZED VIEW child
(
`appId` UInt32,
`event` UInt8,
`count` AggregateFunction(count, String),
`uniq` AggregateFunction(uniq, String),
`priceId` UInt32,
`date` Date
)
ENGINE = AggregatingMergeTree(date, (appId, event, priceId), 8192)
AS
SELECT appId, event, countState(uidId) AS count, uniqState(uidId) AS uniq, priceId, date
FROM parent_merge_tree
GROUP BY appId, event, priceId, date;
у меня подозрения, что тут у тебя ENGINE = AggregatingMergeTree(date, (appId, event, priceId), 8192)
партиции месячные
источник

DT

Dmitry Titov in ClickHouse не тормозит
а даты нет в PRIMARY KEY
источник

DT

Dmitry Titov in ClickHouse не тормозит
вот оно и схлопывает все даты для определенных appId, event, priceId в 1 месяце в одну запись
источник

m

mrAndersen in ClickHouse не тормозит
Dmitry Titov
а даты нет в PRIMARY KEY
Так ведь она есть в начале при определении ключа партиционирования, или это не считается и нужно указать её дополнительно в виде
AggregatingMergeTree(date, (date, appId, event, priceId), 8192)
источник

m

mrAndersen in ClickHouse не тормозит
?
источник