Size: a a a

ClickHouse не тормозит

2020 September 07

A

Artem in ClickHouse не тормозит
Привет. Можно ли как-то "in place" добавить два новых столбца в существующую таблицу, которые будут являться денормализацией существующего столбца и чтобы данные в этих новых столбцах были заполнены для всей таблицы, а не только новые. Копировать таблицу не хватает места.
источник

Н

Николай in ClickHouse не тормозит
Вот вы сейчас про ввчисляемое поле?
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
materialized column
источник

A

Artem in ClickHouse не тормозит
Николай
Вот вы сейчас про ввчисляемое поле?
Вроде того. Правильно ли я понимаю, что это можно сделать через ALTER TABLE UPDATE?
источник

A

Artem in ClickHouse не тормозит
Viacheslav Nefedov
materialized column
Это работает для старых данных?
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
Не помню, если честно
источник

D

Dj in ClickHouse не тормозит
Artem
Вроде того. Правильно ли я понимаю, что это можно сделать через ALTER TABLE UPDATE?
Добавление столбца всего лишь меняет структуру таблицы, и не производит никаких действий с данными - соответствующие данные не появляются на диске после ALTER-а. При чтении из таблицы, если для какого-либо столбца отсутствуют данные, то он заполняется значениями по умолчанию (выполняя выражение по умолчанию, если такое есть, или нулями, пустыми строками). Также, столбец появляется на диске при слиянии кусков данных (см. MergeTree).

https://clickhouse.tech/docs/ru/sql-reference/statements/alter/column/#alter_add-column

да, мердж нужен (мутация тоже мердж по сути).
иначе старые данные будут пустыми.
источник

A

Arsen in ClickHouse не тормозит
Dj
order by будет быстрее отрабатывать, так как внутри потоков данные будут с диска прочитаны отсортированными.

порядок хранения строк на диске. лучше сжатие если пользователь имеет одинаковые данные в данных находящихся рядом по времени.

фильтрация только event_time при удачном распределении пользователей по временным окнам будет быстрее.
Спасибо)
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
если движок MergeTree - то update
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
а если ReplacingMegreTree, то insert
источник

A

Artem in ClickHouse не тормозит
Viacheslav Nefedov
а если ReplacingMegreTree, то insert
У меня ReplacingMergeTree, но инсерт не вариант, так как придется неделю ждать, пока снова все данные по сети скопируются. Вроде ALTER TABLE UPDATE должно сработать, если я правильно понимаю.
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
да, сработает
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
materialized column будете делать?
источник

A

Artem in ClickHouse не тормозит
Viacheslav Nefedov
materialized column будете делать?
Как это в документации называется?
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
похоже в документации пробел :)
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
источник

A

Artem in ClickHouse не тормозит
Viacheslav Nefedov
похоже в документации пробел :)
Где про это почитать можно?
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
вот тут есть примеры
источник

A

Artem in ClickHouse не тормозит
Viacheslav Nefedov
вот тут есть примеры
Ага, спасибо
источник

VN

Viacheslav Nefedov in ClickHouse не тормозит
не помню заполняет ли старые данные
источник