Обсуждаем ClickHouse
Это уже лирика и эмпирика. Главное, что есть решение ,)
Читать полностью…Final проще в запросе написать, но argMax по ресурсам выигрывает
Читать полностью…у нас главный поинт - одна плоская таблица
Читать полностью…Мы триллионы строк хранили на одном хосте, и было норм :)
Читать полностью…вооот.... тут мы и поняли что надо что-то с этим делать )
Читать полностью…а Файнал как я понял будет очень дорогой, если в базе уже будут миллионы строк.
Читать полностью…Не удаляются. Надо использовать FINAL - https://kb.altinity.com/altinity-kb-queries-and-syntax/altinity-kb-final-clause-speed/
Читать полностью…1. Вместо FINAL можно использовать GROUP BY + функции вроде argMax(), но естественно тогда это вручную нужно прописывать
Читать полностью…взял дэфолт конфигурацию на 3 реплики в clickhouse cloud
как энджин автоматом у всех таблиц SharedMergeTree
что показывает select * from system.clusters
Всем привет, вожусь с проблемой уже достаточно долго, но думаю, что решение элементарное
До этого всегда юзал оупенсурсный клик, сейчас решил попробовать Clickhouse Cloud + SharedMergeTree
Сделал сетап на 3 реплики, но проблема в том, что поехали все старые запросы.
Условно даже count(*) просто не тот, так как возвещает только кол-во строк на одном шарде (условно в таблице 170к, возвращается 2300)
Где можно почитать, что с этим делать? Заранее благодарен за ответ
Лимиты в целом штука очень нетривиальная для SQL баз почему-то
Читать полностью…кликхаус не пробрасывает limit 10 на сторону MySQL - те он вычитывает все 6м записей. Пробрасывается только where. попробуйте where id = ? написать - должно моментально отработать как и в MySQL
Читать полностью…ну тогда insert_quorum=число_реплик можно поставить и посмотреть не сильно ли начал лагать топик
Читать полностью…Ну за свежие версии не скажу точно. Раньше так было
Читать полностью…С чего бы это так категорично? Версия, колонки в запросе, партиционирование, order by таблицы, включенные оптимизации - все влияет. Прошло то время когда можно было уверенно говорить что argMax выигрывает.
Читать полностью…final очень оптимизированный. При правильном партиционировании, при наличии 1 парта в партиции FINAL автоматически пропускается. Запускайте OPTIMIZE FINAL на старые партиции и будет вам счастье
Читать полностью…Не нужно использовать GROUP BY вместо FINAL в свежих версиях если колонки группировки такиеже как ORDER BY таблицы. Это не быстрее, а скорее - медленнее
Читать полностью…Это осуществляется фоновыми мержами, нет никакой гарантии, когда они запустятся
Читать полностью…удаляются, проверяли, там на фоне видимо дефолтная политика бежит (мы сделали дефолтную инсталляцию) и через 4-5 минут старая строка удаляется из базы
Читать полностью…вручную в смысле в самом квери по таблице? потом что там старые строки как показывает практика удаляется только в течени 4-10 минут
Читать полностью…пересоздал инстансы, прогнал миграции снова и вроде бы починилось... не менял ничего абсолютно
Читать полностью…Всем привет, я новичок с ClickHouse, есть вопрос:
У нас одна большая таблица в ClickHouse (ожидаются сотни миллионов строк), хотим избежать join'ов. Для реализации обновлений используем ReplacingMergeTree с колонкой version.
1. Как правильно забирать только последнюю версию строки по ключу (без использования FINAL в проде)? На самом деле задачи не вообще строку забрать а построить квери по всей таблице так, чтобы старые дубли были проигнорированы
2. Какие подводные камни у такого подхода на больших таблицах? Как избежать merge-затор, как поддерживать производительность?
3. Есть ли best practices по управлению размерами и скоростью фоновыми merge-ов?
Интересует опыт реального продакшна.
вы точно реплики сделали а не шарды?
вообще sharedmergetree никаких реплик не надо насколько я помню
Вот тут в pr написано почему все непросто https://github.com/ClickHouse/ClickHouse/pull/80070
Читать полностью…ещё раз спасибо, нащел в документации
надо более внимательней читать
“The rest of the conditions and the LIMIT sampling constraint are executed in ClickHouse only after the query to MySQL finishes.”
Всем привет.
Создал таблицу используя ENGINE = MySQL
Таблица в 6M записей, проблема в том что если я делаю запрос на mysql стороне всё летает
select * from some_table limit 10;
а вот на стороне clickhouse всё как виснет, хотя есть другие таблицы в 2M записей читает быстро.
Может кто то сталкивался?
Спасибо
если в шард вставляете, то решит по идее, если не в шард, то есть insert_distributed_sync настройка, но наверное оно может затормозить вставку прилично
Читать полностью…