Size: a a a

ClickHouse не тормозит

2020 August 26

S

Slach in ClickHouse не тормозит
Dmitriy Antonenko
Переслано от Dmitriy Antonenko
Здравствуйте, столкнулись с такой проблемой, что при инсерте данных в реплику некоторые записи не схлопываюся , но при запросе в шард, все хорошо

пример создания и тд.
https://gist.github.com/BrokenEngineerDev/08247416569dd6724da2bcab8de0af3b
замена происходит не мгновенно, а во время background merge
и гарантии что замена произойдет нет

SELECT FINAL от этого помогает
источник

DA

Dmitriy Antonenko in ClickHouse не тормозит
В примере используется FINAL
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
ну всё правильно, при инсерте в реплику некоторые не схлопываются потому что это делается фоном, при запросе в шард с FINAL всё норм
источник

S

Slach in ClickHouse не тормозит
Dmitriy Antonenko
В примере используется FINAL
replace проиходит на реплике
если вы новую версию через rand() через distributed
вставили на разные реплики, оно не схлопнется
источник

S

Slach in ClickHouse не тормозит
Dmitriy Antonenko
В примере используется FINAL
у вас судя по всему разные версии  в разных шардах лежат
потому что Distributed шардируется по rand()
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
можно сказать OPTIMIZE FINAL чтоб схлопнуть досрочно
источник

S

Slach in ClickHouse не тормозит
и вставляете вы в distributed
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Ребят, привет!
А подскажите плз, можно ли создать distributed таблицу, не описывая её колонок?
источник

S

Slach in ClickHouse не тормозит
Константин Трофимов
можно сказать OPTIMIZE FINAL чтоб схлопнуть досрочно
можно, но не нужно
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
ну зависит от контекста
если например партиционируешься по месяцам, почему бы раз в месяц не схлопывать
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
не дожидаясь пока это фоном произойдет
источник

S

Slach in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
А подскажите плз, можно ли создать distributed таблицу, не описывая её колонок?
попробуйте
CREATE TABLE db.table_distributed AS db.other_table ENGINE DIstributed(...);

https://clickhouse.tech/docs/en/sql-reference/statements/create/table/#with-a-schema-similar-to-other-table
источник

Д

Дмитрий in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
А подскажите плз, можно ли создать distributed таблицу, не описывая её колонок?
CREATE TABLE IF NOT EXISTS test AS test_sharded ENGINE = Distributed ...
источник

VS

Vladyslav Sakun in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
А подскажите плз, можно ли создать distributed таблицу, не описывая её колонок?
Да, конечно
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
супер!
спасибо большое
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Dmitriy Antonenko
Переслано от Dmitriy Antonenko
Здравствуйте, столкнулись с такой проблемой, что при инсерте данных в реплику некоторые записи не схлопываюся , но при запросе в шард, все хорошо

пример создания и тд.
https://gist.github.com/BrokenEngineerDev/08247416569dd6724da2bcab8de0af3b
Distributed таблица не делает final, она не в курсе что надо финализировать дубликаты с шардов

Т.е. придется делать argmax/groupby
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Александр Есин
вопрос по этой же теме: а срабатывает ли триггер мат. вью на событие реплицирования? Т.е. если у меня есть Replicated таблица, я делаю инсерт на одном узле, данные реплицируются на другой узел, в этот момент на другом узле выполнится действие определенное в мат. вью?
нет, на реплицирование не срабатывает. Только на инсерт.
Реплицируются парты, там нет инсерта.
Но это и не нужно.
источник

DA

Dmitriy Antonenko in ClickHouse не тормозит
Спасибо)))
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
А подскажите плз, можно ли создать distributed таблицу, не описывая её колонок?
смотря что понимать под "не описывая колонок". Не описывая совсем нельзя, использовать "AS another_table" можно и подставятся колонки из неё. Если надо прям не зная колонок вслепую, то можно сказать select ... from remote(кластер, "база", "таблица")
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Константин Трофимов
смотря что понимать под "не описывая колонок". Не описывая совсем нельзя, использовать "AS another_table" можно и подставятся колонки из неё. Если надо прям не зная колонок вслепую, то можно сказать select ... from remote(кластер, "база", "таблица")
“AS another_table” - как раз то что нужно
источник