Size: a a a

ClickHouse не тормозит

2021 January 30

AK

Andrew Kochen in ClickHouse не тормозит
Vitaly
А зачем вообще убирать из enum значение?
К сути дела не относится, но так работают миграции, чтобы базу можно было привести к предыдущему состоянию
источник

V

Vitaly in ClickHouse не тормозит
Andrew Kochen
К сути дела не относится, но так работают миграции, чтобы базу можно было привести к предыдущему состоянию
А добавление значений работает?
источник

AK

Andrew Kochen in ClickHouse не тормозит
Vitaly
А добавление значений работает?
добавление работает
источник

V

Vitaly in ClickHouse не тормозит
Вообще звучит логичным, что с полями по которым сортировка-такие ограничения
источник

SC

Smoked Cheese in ClickHouse не тормозит
Andrew Kochen
При наличии колонки типа Enum в ключе сортировки ReplicatedMergeTree невозможно сделать alter и убрать значение из множества значений Enum'a.
Подскажите, пожалуйста, это корректное поведение?
пример
CREATE TABLE t ON CLUSTER replicated
(
   `a` UInt64,
   `b` Enum8('a' = 1, 'b' = 2)
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/default/{shard}/t', '{replica}')
ORDER BY (b, a)

insert into t values (1,1),(2,2)

Далее запрос на кластере ALTER TABLE t ON CLUSTER replicated MODIFY COLUMN `b Enum8('a' = 1)`  падает с ошибкой Cannot execute replicated DDL query, maximum retires exceeded
е
сли делать на одном хосте, то ошибка следующая:
Re
ceived exception from server (version 20.8.12):
Code: 524. DB::Exception: Received from localhost:9100. DB::Exception: ALTER of key column b from type Enum8('a' = 1, 'b' = 2) to type Enum8('a' = 1) must be metadata-only.


Версия КХ 20.8.12.2
мне кажется что это логично - что делать если уже записал данные с новым значением?
источник

V

Vitaly in ClickHouse не тормозит
Придётся тогда получается пересортировать таблицу. а такого в кликхаусе нет
источник

AK

Andrew Kochen in ClickHouse не тормозит
Smoked Cheese
мне кажется что это логично - что делать если уже записал данные с новым значением?
Енам хранится просто как UInt8, конкретно в данных ничего не меняется при изменении его
источник

DT

Dmitry Titov in ClickHouse не тормозит
Andrew Kochen
Енам хранится просто как UInt8, конкретно в данных ничего не меняется при изменении его
кликхаус же должен мапить ваше значение в какой то стринг
источник

AK

Andrew Kochen in ClickHouse не тормозит
Dmitry Titov
кликхаус же должен мапить ваше значение в какой то стринг
если при выборке значение не присутствует для маппинга, то КХ кидает ошибку
источник

SC

Smoked Cheese in ClickHouse не тормозит
Andrew Kochen
если при выборке значение не присутствует для маппинга, то КХ кидает ошибку
это только при инсерте. а что делать, если данные уже на диске?
источник

AK

Andrew Kochen in ClickHouse не тормозит
но если написать, например toUInt8(enum_column), то в данных может вообще все что угодно находиться из UInt8
источник

DT

Dmitry Titov in ClickHouse не тормозит
Andrew Kochen
если при выборке значение не присутствует для маппинга, то КХ кидает ошибку
Лучше получить ошибку во время неразрешенной операции, чем уже постфактум.
источник

AK

Andrew Kochen in ClickHouse не тормозит
Dmitry Titov
Лучше получить ошибку во время неразрешенной операции, чем уже постфактум.
Возможно, но речь не об этом)
Указано, что из енама можно убирать значения
источник

AK

Andrew Kochen in ClickHouse не тормозит
И второе - это что поведение Replicated таблиц и обычных - отличается. На обычных таблицах я ошибок не ловил
источник

DT

Dmitry Titov in ClickHouse не тормозит
Andrew Kochen
Возможно, но речь не об этом)
Указано, что из енама можно убирать значения
Скорее всего это не относится к enum которые учувствуют в ORDER BY  и PARTITION KEY.
Раньше туда в них даже добавлять значения было нельзя.
Впрочем вы можете сделать feature request на гитхабе
источник

AK

Andrew Kochen in ClickHouse не тормозит
Из доки
можно удалять старые значения (это безопасно только если они ни разу не использовались, так как это не проверяется)

Оно небезопасно, но не проверяется)
источник

AK

Andrew Kochen in ClickHouse не тормозит
Dmitry Titov
Скорее всего это не относится к enum которые учувствуют в ORDER BY  и PARTITION KEY.
Раньше туда в них даже добавлять значения было нельзя.
Впрочем вы можете сделать feature request на гитхабе
На гитхабе видел несколько багов, по поводу того, что нельзя альтерить Enum'ы, которые участвуют в Partition by. Их исправляли
источник

AK

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

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Smoked Cheese
arrayMap(x -> toUInt64(x), ["123", "456", "789"])
cast(['123', '456', '789'] as Array(UInt64))
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Eugene Freeman
для clickhouse какая os рекомендуется centos или ubuntu?
ubuntu / debian

rpm неродные, они делаются конвертором из deb
ну в десятки раз меньше инсталляций clickhouse на rpm based
источник