Size: a a a

ClickHouse не тормозит

2020 May 25

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexander Malikov
а вообще, есть альтернативные способы реплику заполнить?
например, погасить одну из живых, ринкануть данные
так сработает?
нет, нельзя. Все равно скачает, репликейтид таблица берет список того что у нее есть из зукипера, а там пусто.
источник

Д

Дмитрий in ClickHouse не тормозит
ALTER TABLE ... DELETE WHERE expr блочит всю таблицу на чтение и запись? В доке сказано что да, но я не добавляю и не удаляю столбцы, поэтому решил уточнить.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Дмитрий
ALTER TABLE ... DELETE WHERE expr блочит всю таблицу на чтение и запись? В доке сказано что да, но я не добавляю и не удаляю столбцы, поэтому решил уточнить.
нет не блочит. Вообще в КХ нет блокировок
источник

Д

Дмитрий in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
нет не блочит. Вообще в КХ нет блокировок
хех,

The ALTER query blocks all reads and writes for the table. In other words, if a long SELECT is running at the time of the ALTER query, the ALTER query will wait for it to complete. At the same time, all new queries to the same table will wait while this ALTER is running.

Или тут речь про изменение самой структуры таблицы? Документация к версии LATEST.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
уже и при добавлении колонок не должно быть блокировок(с 20.3), просто доку не исправили
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
SELECT 
   date,
   runningAccumulate(sumState(n))
FROM
(
   SELECT
       arrayJoin(['2020-01-01', '2020-01-02', '2020-01-03']) AS date,
       1 AS n
   ORDER BY date ASC
)
GROUP BY date
ORDER BY date ASC

┌─date───────┬─runningAccumulate(sumState(n))─┐
│ 2020-01-01 │                              3 │
│ 2020-01-02 │                              2 │
│ 2020-01-03 │                              1 │
└────────────┴────────────────────────────────┘

Все правильно в этом запросе ^^^? Я бы ожидал увидеть результаты такие:
┌─date───────┬─runningAccumulate(sumState(n))─┐
│ 2020-01-01 │                              1 │
│ 2020-01-02 │                              2 │
│ 2020-01-03 │                              3 │
└────────────┴────────────────────────────────┘
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Дмитрий
хех,

The ALTER query blocks all reads and writes for the table. In other words, if a long SELECT is running at the time of the ALTER query, the ALTER query will wait for it to complete. At the same time, all new queries to the same table will wait while this ALTER is running.

Или тут речь про изменение самой структуры таблицы? Документация к версии LATEST.
было так:

1. бежит селект x
2. запускаем alter, он блокирует таблицу
3. следущие селекты зависнут на блокировке
4. селект x закончился
5. alter за одну миллисекунду меняет метаданные, и убирает блокировку
6. следущие селекты запускаются
7. alter два часа перемалывает парты

теперь уже не так, alter-а который меняет метаданные таблицы никто не ждет

alter delete никого не блочил и раньше
источник

C

Cargeh in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
ну это на диске 20ГБ, а если разжать? Можно затюнить и на 8ГБ, надо просто время тратить и разбираться как это сделать в вашем конкретном случае.
Ну и есть якобы пользователи у которых и на 4ГБ продакшин, но видимо у них очень прямые руки.
пальцем в небо, какой объем оперативки бы выделили под КХ, если данных на диске 500ГБ?

Часто бывает фуллскан (по всем партициям) и в основном идёт выборка строк, а не аналитические запросы (т.е груп баев и прочего мало, но есть джоины в таблицу линков)
источник

Д

Дмитрий in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
уже и при добавлении колонок не должно быть блокировок(с 20.3), просто доку не исправили
понял, спасибо. а как определить прогресс мутации? делаю SELECT * FROM system.mutations WHERE is_done = 0;, но данные все те же, значения не меняются. если что, у меня пожилая версия 18.14.15. Столкнулись с тем, что КХ скушал весь диск, хотим почистить архивные данные, но мутации похоже зависли.
источник

C

Cargeh in ClickHouse не тормозит
Cargeh
пальцем в небо, какой объем оперативки бы выделили под КХ, если данных на диске 500ГБ?

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

DC

Denny Crane (I don't... in ClickHouse не тормозит
Дмитрий
понял, спасибо. а как определить прогресс мутации? делаю SELECT * FROM system.mutations WHERE is_done = 0;, но данные все те же, значения не меняются. если что, у меня пожилая версия 18.14.15. Столкнулись с тем, что КХ скушал весь диск, хотим почистить архивные данные, но мутации похоже зависли.
на самом деле чистить надо используя drop partition,
таблица Replicated ?
источник

Д

Дмитрий in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
на самом деле чистить надо используя drop partition,
таблица Replicated ?
нет, таблица MergeTree обычный, репликации нет. партиции не по дате
источник

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Подскажите плизз, как то можно в КХ в таблице поменяь PARTITION BY, без болезненно чтобы не надо было всю таблицу перезаливать или сервер останавливать ?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Cargeh
пальцем в небо, какой объем оперативки бы выделили под КХ, если данных на диске 500ГБ?

Часто бывает фуллскан (по всем партициям) и в основном идёт выборка строк, а не аналитические запросы (т.е груп баев и прочего мало, но есть джоины в таблицу линков)
чем больше дать тем быстрее будет работать из-за кеширования диска
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Oleksii Mylotskyi
Подскажите плизз, как то можно в КХ в таблице поменяь PARTITION BY, без болезненно чтобы не надо было всю таблицу перезаливать или сервер останавливать ?
нельзя
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Дмитрий
нет, таблица MergeTree обычный, репликации нет. партиции не по дате
читайте в логе КХ, грепайте по id мутации
источник

Д

Дмитрий in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
читайте в логе КХ, грепайте по id мутации
спс
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Oleksiy Golovko
SELECT 
   date,
   runningAccumulate(sumState(n))
FROM
(
   SELECT
       arrayJoin(['2020-01-01', '2020-01-02', '2020-01-03']) AS date,
       1 AS n
   ORDER BY date ASC
)
GROUP BY date
ORDER BY date ASC

┌─date───────┬─runningAccumulate(sumState(n))─┐
│ 2020-01-01 │                              3 │
│ 2020-01-02 │                              2 │
│ 2020-01-03 │                              1 │
└────────────┴────────────────────────────────┘

Все правильно в этом запросе ^^^? Я бы ожидал увидеть результаты такие:
┌─date───────┬─runningAccumulate(sumState(n))─┐
│ 2020-01-01 │                              1 │
│ 2020-01-02 │                              2 │
│ 2020-01-03 │                              3 │
└────────────┴────────────────────────────────┘
SELECT
   date,
   runningAccumulate(n)
FROM
(
   SELECT
       arrayJoin(['2020-01-01', '2020-01-02', '2020-01-03']) AS date,
       sumState(1) AS n
   ORDER BY date ASC
)
ORDER BY date ASC

┌─date───────┬─runningAccumulate(n)─┐
│ 2020-01-01 │                    1 │
│ 2020-01-02 │                    2 │
│ 2020-01-03 │                    3 │
└────────────┴──────────────────────┘
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
@den_crane Спасибо! Т.е. всегда имеет смысл заносить -State во внутренний запрос?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Cargeh
(сейчас 16 и падает м ООМ, понятно, что надо увеличивать, но хотелось бы понять, какой следующий рубеж :))
можно и на 16 заточить и с помощью свопа сделать чтобы не падал, но это все трата времени. Если есть возможность 32 воткнуть или 64, то сильно быстрее будет работать КХ и сильно менее заморочно это.
источник