Size: a a a

ClickHouse не тормозит

2021 February 13

D

Dj in ClickHouse не тормозит
Dmitry Titov
Сначала фильтруем с помощью If, потом берем стейт
будет падать
SELECT
   argMaxIf(assumeNotNull(x), y, not isNull(x))
FROM
(
   SELECT
       null AS x,
       1 AS y
   UNION ALL
   SELECT
       null AS x,
       2 AS y
);
DB::Exception: Cannot create column of type Nothing
источник

DT

Dmitry Titov in ClickHouse не тормозит
Dj
будет падать
SELECT
   argMaxIf(assumeNotNull(x), y, not isNull(x))
FROM
(
   SELECT
       null AS x,
       1 AS y
   UNION ALL
   SELECT
       null AS x,
       2 AS y
);
DB::Exception: Cannot create column of type Nothing
Это в примере тип не известен, а так будет
источник

AK

Andrew Kochen in ClickHouse не тормозит

nsert into source values (0,0,null), (1,1,1), (1,2,null)

select a, argMaxMerge(st) from destination group by a

SELECT
   a,
   argMaxMerge(st)
FROM destination
GROUP BY a


┌─a─┬─argMaxMerge(st)─┐
│ 0 │               0 │
│ 1 │               1 │
└───┴─────────────────┘

вроде корректно
источник

D

Dj in ClickHouse не тормозит
Andrew Kochen
Она конвертировала это в 0 )
у вас раньше вполне себе был баг короче.
если вставите две строки с нулл-ом, получите 0 в стейте..
так себе работало изначально оно
источник

AK

Andrew Kochen in ClickHouse не тормозит
Dj
у вас раньше вполне себе был баг короче.
если вставите две строки с нулл-ом, получите 0 в стейте..
так себе работало изначально оно
Да, я верю, что это был баг, однако это поведение у нас считалось корректным)
источник

D

Dj in ClickHouse не тормозит
Andrew Kochen

nsert into source values (0,0,null), (1,1,1), (1,2,null)

select a, argMaxMerge(st) from destination group by a

SELECT
   a,
   argMaxMerge(st)
FROM destination
GROUP BY a


┌─a─┬─argMaxMerge(st)─┐
│ 0 │               0 │
│ 1 │               1 │
└───┴─────────────────┘

вроде корректно
insert into source values (0,0,null), (1,1,null), (1,2,null)
источник

AK

Andrew Kochen in ClickHouse не тормозит

┌─a─┬─argMaxMerge(st)─┐
│ 0 │               0 │
│ 1 │               0 │
└───┴─────────────────┘

Вроде тоже верно
источник

D

Dj in ClickHouse не тормозит
странно, а должно строк не быть...
источник

D

Dj in ClickHouse не тормозит
была оптимизация не генерить пустые парты
источник

AK

Andrew Kochen in ClickHouse не тормозит
это 20.8, может это дальше сделали?
источник

D

Dj in ClickHouse не тормозит
да, у вас так себе поведение в общем, сломается...
вставите 4 строки из них 2 нулл 2 нет, будет один результат
вставите по 2 строки 2 раза, будет другой...
источник

AK

Andrew Kochen in ClickHouse не тормозит
не понял кейс, вроде пока все норм работает
источник

D

Dj in ClickHouse не тормозит
Andrew Kochen
не понял кейс, вроде пока все норм работает
сорри, все правильно, if будет давать пустой стейт и все будет хорошо...
источник

AK

Andrew Kochen in ClickHouse не тормозит
Спасибо большое за помощь!
источник

S

Slach in ClickHouse не тормозит
CHIP
В дороге, через часик ток гляну
ну короче сдается мне что у вас там 6 реплик
и одна реплика поверх этих 6 для выборок

смотрите remote_servers в XML конфигах на сервере
источник

AK

Andrew Kochen in ClickHouse не тормозит
Я правильно понимаю, что в новых КХ по умолчанию Engine для database - Atomic, и при удалении таблиц DROP TABLE - таблица теперь удаляется не сразу, а асинхронно через какое-то время?
Есть вариант как-то зафорсить удаление таблицы сразу, или сделать запрос на удаление синхронным ?
источник

S

Slach in ClickHouse не тормозит
Andrew Kochen
Я правильно понимаю, что в новых КХ по умолчанию Engine для database - Atomic, и при удалении таблиц DROP TABLE - таблица теперь удаляется не сразу, а асинхронно через какое-то время?
Есть вариант как-то зафорсить удаление таблицы сразу, или сделать запрос на удаление синхронным ?
да правильно
DROP TABLE ... SYNC
источник

AK

Andrew Kochen in ClickHouse не тормозит
Slach
да правильно
DROP TABLE ... SYNC
а именно настройки нет, чтоб это происходило по умолчанию?
источник

S

Slach in ClickHouse не тормозит
Andrew Kochen
а именно настройки нет, чтоб это происходило по умолчанию?
database_atomic_delay_before_drop_table_sec=0

можно попробовать, но не советовал бы

у вас {uuid} используется в ReplicatedMergeTree таблицах или нет?
источник

AK

Andrew Kochen in ClickHouse не тормозит
Slach
database_atomic_delay_before_drop_table_sec=0

можно попробовать, но не советовал бы

у вас {uuid} используется в ReplicatedMergeTree таблицах или нет?
Нет, uuid не используем..
источник