Size: a a a

ClickHouse не тормозит

2020 July 13

Д

Дмитрий in ClickHouse не тормозит
да, уже нашёл, спасибо)
источник

Д

Дмитрий in ClickHouse не тормозит
Телеграмм - отличная штука в плане сохранения истории в чатах)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Дмитрий
Телеграмм - отличная штука в плане сохранения истории в чатах)
Но оно плохо индексируется в гугле, что не есть хорошо.
источник

Д

Дмитрий in ClickHouse не тормозит
это да, но главное результат)
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
да, и особенно удобно читать историю треда который тянулся неделю
источник

DA

Denis Anfertev in ClickHouse не тормозит
Привет. Подскажите, а есть где-то системная таблица, описывающая формат созданных пользовательских таблиц? В документации вижу запрос show create table, который возвращает запрос create table в текстовом виде. Есть ли такая информация, например, в виде системной таблицы, чтобы можно было вытащить отдельно набор полей и т.п.? КХ версии 20.5.2
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Anfertev
Привет. Подскажите, а есть где-то системная таблица, описывающая формат созданных пользовательских таблиц? В документации вижу запрос show create table, который возвращает запрос create table в текстовом виде. Есть ли такая информация, например, в виде системной таблицы, чтобы можно было вытащить отдельно набор полей и т.п.? КХ версии 20.5.2
system.tables
system.columns
источник

DA

Denis Anfertev in ClickHouse не тормозит
Спасибо
источник

DA

Denis Anfertev in ClickHouse не тормозит
И еще вопрос, при обновлении с 19.14.11 до 20.5.2 поменялся вывод show create table name без опции format. Раньше ответ был в одну строку, в 20 выводится в отформатированном виде с новыми строками и т.п. Вижу, что в system.tables поле create_table_query так и хранится в неотформатированном состоянии. Не могу понять, show create table как-то дополнительно обрабатывает ответ. Можно ли вернуть формат в одну строку?
P.S. парсить ответ show create table не очень хорошая идея и в будущем нужно будет переехать на system.tables + system.columns, но сейчас хочется попрбовать быстро решить проблему.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Anfertev
И еще вопрос, при обновлении с 19.14.11 до 20.5.2 поменялся вывод show create table name без опции format. Раньше ответ был в одну строку, в 20 выводится в отформатированном виде с новыми строками и т.п. Вижу, что в system.tables поле create_table_query так и хранится в неотформатированном состоянии. Не могу понять, show create table как-то дополнительно обрабатывает ответ. Можно ли вернуть формат в одну строку?
P.S. парсить ответ show create table не очень хорошая идея и в будущем нужно будет переехать на system.tables + system.columns, но сейчас хочется попрбовать быстро решить проблему.
нет нельзя сделать в одну строку.

Backward Incompatible Change описано в CHANGELOG
источник

DA

Denis Anfertev in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
нет нельзя сделать в одну строку.

Backward Incompatible Change описано в CHANGELOG
хорошо, спасибо
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Denis Anfertev
хорошо, спасибо
сделано специально, половина чатика умоляла
источник

DA

Denis Anfertev in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
сделано специально, половина чатика умоляла
ну это удобно, если кто-то не написал скрипт, который зависит от формата этого ответа 🙂
источник

DK

Dmitry Konovalchuk in ClickHouse не тормозит
Всем привет!

Используем на таблицах TTL date + toIntervalMonth(3), патриции месячные (PARTITION BY toYYYYMM(date)).

Спустя ровно 3 месяца после добавления TTL таблицам, каждую ночь ровно в 12 КХ съедает диск в 100% на примерно час. Я так понял пересобирает партиции, удаляя лишний день (под капотом TTL отрабатывают мутации?).

Вопросы:
1. Можно ли как-то облегчить эту операцию? Или стоит отказываться от TTL и чистить партиции скриптами?

2. ALTER на TTL таблицы не отрабатывает (не меняется экспрешн). КХ у нас версий 19.7.3.9 и 19.13.7.57. Делаю запросом: ALTER TABLE pv MODIFY TTL date + INTERVAL 1 DAY;
Баг или что-то делаю не так?

Спасибо!
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dmitry Konovalchuk
Всем привет!

Используем на таблицах TTL date + toIntervalMonth(3), патриции месячные (PARTITION BY toYYYYMM(date)).

Спустя ровно 3 месяца после добавления TTL таблицам, каждую ночь ровно в 12 КХ съедает диск в 100% на примерно час. Я так понял пересобирает партиции, удаляя лишний день (под капотом TTL отрабатывают мутации?).

Вопросы:
1. Можно ли как-то облегчить эту операцию? Или стоит отказываться от TTL и чистить партиции скриптами?

2. ALTER на TTL таблицы не отрабатывает (не меняется экспрешн). КХ у нас версий 19.7.3.9 и 19.13.7.57. Делаю запросом: ALTER TABLE pv MODIFY TTL date + INTERVAL 1 DAY;
Баг или что-то делаю не так?

Спасибо!
1. Да, TTL перемерживает партиции, записывает парты без строк которые TTL date + toIntervalMonth(3)
У вас месячные партиции. Т.е. дропать парцию можно когда все строки в партиции toIntervalMonth(3), TTL умеет дропать партиции целиком, есть галочка (ttl_only_drop_parts=1).

2. 19.17? ошибка какая?


19.13.7.57

CREATE TABLE example_table
(
   d DateTime,
   a Int
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
ORDER BY d
TTL d + INTERVAL 1 MONTH;


ALTER TABLE example_table MODIFY TTL d + INTERVAL 3 MONTH;
OK
источник

PL

Piotr Liakhavets in ClickHouse не тормозит
Denis Anfertev
ну это удобно, если кто-то не написал скрипт, который зависит от формата этого ответа 🙂
<command> | tr "\n" " "
источник

DK

Dmitry Konovalchuk in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
1. Да, TTL перемерживает партиции, записывает парты без строк которые TTL date + toIntervalMonth(3)
У вас месячные партиции. Т.е. дропать парцию можно когда все строки в партиции toIntervalMonth(3), TTL умеет дропать партиции целиком, есть галочка (ttl_only_drop_parts=1).

2. 19.17? ошибка какая?


19.13.7.57

CREATE TABLE example_table
(
   d DateTime,
   a Int
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
ORDER BY d
TTL d + INTERVAL 1 MONTH;


ALTER TABLE example_table MODIFY TTL d + INTERVAL 3 MONTH;
OK
Большое спасибо за ответ!

1. ttl_only_drop_parts - то что нужно
2. Ошибки нет. Запрос ALTER проходит, затем смотрю show create - изменений нет.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dmitry Konovalchuk
Большое спасибо за ответ!

1. ttl_only_drop_parts - то что нужно
2. Ошибки нет. Запрос ALTER проходит, затем смотрю show create - изменений нет.
не туда смотрите, попробовал в 19.13.7.57 все ОК
источник

AZ

Alexander Zinoviev in ClickHouse не тормозит
Скиньте плз ссылку на сообщение, если уже было, не могу найти.

Вопрос такой: можно ли поменять Engine таблицы после того, как она была создана? Таблица(ы) создана с движком MergeTree, но данные приходят из Кафки и мы осознали, что иногда прилетают дубликаты, которые нам ну совершенно ненужны. И нужно заменить движок на ReplacingMergeTree.

Нигде не нашел доков по миграции engine
источник

DK

Dmitry Konovalchuk in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
не туда смотрите, попробовал в 19.13.7.57 все ОК
правильно я понял, что если запрос отработал, то экспрешн меняется, ttl начинает работать по новой логике?
А show create таблицы просто не обновляется и не отображает изменения?
источник