Size: a a a

ClickHouse не тормозит

2020 June 03

DT

Dmitry Titov in ClickHouse не тормозит
можешь создать таблицу с расширенным enum и аттачнуть парты к ней
источник

SL

Sergey Lossev in ClickHouse не тормозит
Dmitry Titov
можешь создать таблицу с расширенным enum и аттачнуть парты к ней
Т.е., по сути, получается - создать новую таблицу и перезалить
источник

DT

Dmitry Titov in ClickHouse не тормозит
ну перезалить это INSERT SELECT долго и мучительно
источник

DT

Dmitry Titov in ClickHouse не тормозит
аттачнуть парты это бесплатно почти
источник

SL

Sergey Lossev in ClickHouse не тормозит
Т.е. делаю новую таблицу с дополненным enum-ом, а затем циклом по всем партициям в исходной таблице делаю детач из старой и аттач к новой. А MOVE partition прокатит? Или опять хзче начнется
источник

DT

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

DT

Dmitry Titov in ClickHouse не тормозит
ATTACH PARTITION FROM¶
источник

SL

Sergey Lossev in ClickHouse не тормозит
Dmitry Titov
из старой необязательно детачить.
на самом деле там можно разными способами все сделать, все зависит от условий
Всмысле? Одна партиция может принадлежать нескольким таблицам?
источник

DT

Dmitry Titov in ClickHouse не тормозит
нет, будут созданы хардлинки
источник

SL

Sergey Lossev in ClickHouse не тормозит
Ок, а какие могут быть "условия"? Просто интересно, чем следует руководствоваться в каких случаях
источник

SL

Sergey Lossev in ClickHouse не тормозит
На самом деле, нужно всего лишь расширить енум. Т.е., по-другому - старая таблица будет не нужна
источник

SL

Sergey Lossev in ClickHouse не тормозит
Но, тем не менее, узнать о других вариантах тоже интересно
источник

DT

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

DT

Dmitry Titov in ClickHouse не тормозит
тогда нужно будет сделать MAT VIEW которое будет копировать вставку в новую таблицу и только потом делать attach from
источник

DT

Dmitry Titov in ClickHouse не тормозит
и потом сделать RENAME TABLE tbl TO tbl_old, tbl_new TO tbl;
источник

SL

Sergey Lossev in ClickHouse не тормозит
Dmitry Titov
тогда нужно будет сделать MAT VIEW которое будет копировать вставку в новую таблицу и только потом делать attach from
А в чём, вообще, разница между материализованным представлением и копией данных? Это, типа, как столбец с мутациями, только таблица?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Lossev
А в чём, вообще, разница между материализованным представлением и копией данных? Это, типа, как столбец с мутациями, только таблица?
Мат VIEW это триггер на инсерт, в данном конкретном случае он будет новые данные так же отправлять в другую таблицу
источник

SL

Sergey Lossev in ClickHouse не тормозит
Dmitry Titov
Мат VIEW это триггер на инсерт, в данном конкретном случае он будет новые данные так же отправлять в другую таблицу
То есть, как я понимаю, последовательность действий следующая:
1. Создаю мат вью t_new с точно такой же структурой, но с изменённым столбцом src (дополнив enum новым полем)
2. Во всех скриптах, использующих t_old, я подменяю имя старой таблицы на новую t_new (с этого момента данные начнут литься в неё)
3. Прохожусь циклом по старой таблице, где
3. а) аттачу старую партицию к новой таблице t_new,
3. б) сразу же детачу партицию из старой таблицы t_old

Так?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Как бы делал я:
1. Создают таблицу t_new
2. Создаю mat view TO t_new SELECT * FROM t (на этом этапе новые данные льются в обе таблицы)
3. Прохожусь циклом по старой таблице, где
3. а) аттачу старую партицию к новой таблице t_new,
4. RENAME TABLE t TO t_old, t_new TO t;
5. проверка, что все работает
6. DROP TABLE t_old;
источник

SL

Sergey Lossev in ClickHouse не тормозит
тэкс... надо переварить. Спасибо в любом случае
источник