Size: a a a

ClickHouse не тормозит

2020 July 23

M

Maxim Bogdanov in ClickHouse не тормозит
И есть ли у кликхауса некое подобие проекций, как в Вертики, когда можно делать несколько индексов, в которых уже сортировать нужные колонки для тех или иных запросов? Или может она как-то это сам внутри организует. Как-то же получается, что он работает быстрее Вертики 🙂
источник

l

lnuynxa in ClickHouse не тормозит
Maxim Bogdanov
подскажите, кто знает внутренности MergeTree. Как кликхаус ходит по индексу, если в условиях есть только вторая колонка, но нет первой. В таком случае получается, что кликхаус должен просканить весь индекс, так как данные второй колонки могут быть разбросаны между гранулами.
представим, что у нас такие записи в ключе
col_1 col_2
a a               1
a b               2
a c               3
a d              4
b a              5
b b              6
b c              7
b d              8

В таком случае, при условии WHERE col_2 = c , клик сможет выбрать несколько гранул(2-4,6-8) и не сканировать всю таблицу
источник

l

lnuynxa in ClickHouse не тормозит
Maxim Bogdanov
И есть ли у кликхауса некое подобие проекций, как в Вертики, когда можно делать несколько индексов, в которых уже сортировать нужные колонки для тех или иных запросов? Или может она как-то это сам внутри организует. Как-то же получается, что он работает быстрее Вертики 🙂
можно через механизм MAT VIEW создавать новые таблицы с нужной тебе сортировкой и данными.
источник

AS

Aleh Sauko in ClickHouse не тормозит
подскажите пожалуйста в настройках кх для репликации:
- interserver_http_host
- macros/replica
стоят внешний aws ip-шники, как правильно их можно переключить на внутренние aws ip-шники, какой порядок действий?
источник

M

Maxim Bogdanov in ClickHouse не тормозит
lnuynxa
представим, что у нас такие записи в ключе
col_1 col_2
a a               1
a b               2
a c               3
a d              4
b a              5
b b              6
b c              7
b d              8

В таком случае, при условии WHERE col_2 = c , клик сможет выбрать несколько гранул(2-4,6-8) и не сканировать всю таблицу
это да, но он в любом случае должен сканировать весь индекс, верно? Чтобы найти все “c"? Или там есть ещё индекс для индекса? 🙂
источник

l

lnuynxa in ClickHouse не тормозит
Maxim Bogdanov
это да, но он в любом случае должен сканировать весь индекс, верно? Чтобы найти все “c"? Или там есть ещё индекс для индекса? 🙂
Сам индекс сканируется весь, но обычно с этим не возникает проблем
источник

l

lnuynxa in ClickHouse не тормозит
Он всегда находится в оперативной памяти
источник

M

Maxim Bogdanov in ClickHouse не тормозит
lnuynxa
Сам индекс сканируется весь, но обычно с этим не возникает проблем
Ага понял, спасибо. Хочу запилить наивную реализацию, сравнить скорость.
источник

AT

Anton T. in ClickHouse не тормозит
Добрый день. Можно ли как-то скопировать таблицу с одного сервера  на другой через функцию remote() включая схему?
источник

M

Maxim Bogdanov in ClickHouse не тормозит
А никто не слышал, планируются ли хранимые процедуры, чтобы можно было самостоятельно итерироваться по данным? Мне нужно посчитать воронки (funnel analysis), а это последовательности действий пользователей. В обычном SQL это сделать крайне сложно, надо делать несколько join это очень костыльно и затратно. Для решения задачи нужно всего лишь отсоротировать таблицу по user_id, session, event и просто ходить по иветам, попутно инкрементируя счётчики в каком-то контексте, который предоставляется, и формируя самостоятельно ответ.  У кликхауса есть sequenceMatch но на первый взгляд она очень ограничена в функционале.
источник

l

lnuynxa in ClickHouse не тормозит
Maxim Bogdanov
А никто не слышал, планируются ли хранимые процедуры, чтобы можно было самостоятельно итерироваться по данным? Мне нужно посчитать воронки (funnel analysis), а это последовательности действий пользователей. В обычном SQL это сделать крайне сложно, надо делать несколько join это очень костыльно и затратно. Для решения задачи нужно всего лишь отсоротировать таблицу по user_id, session, event и просто ходить по иветам, попутно инкрементируя счётчики в каком-то контексте, который предоставляется, и формируя самостоятельно ответ.  У кликхауса есть sequenceMatch но на первый взгляд она очень ограничена в функционале.
Ну есть некоторый набор функций для последовательностей в том, числе sequenceMatch. если этого недостаточно, то можно реализовать логику на массивах и лямбдах. а вообще планируются UDF
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Да я смотрю подобные системы, они все либо свои бд пишут узкоспециализированные, либо юзают bigquery, snowflake. А больше бд я и не знаю. Если кто знает базы данных, у которых очень быстрый и насыщенный функционал по выстраиванию и анализу воронок — поделитесь, плз.
источник

DS

Dimitriy Scherbenko in ClickHouse не тормозит
Всем привет! Подскажите, пожалуйста, можно ли осуществлять join вьюхи с несколькими таблицами?
источник

АS

Алексей @Bloxy.info ... in ClickHouse не тормозит
Maxim Bogdanov
Да я смотрю подобные системы, они все либо свои бд пишут узкоспециализированные, либо юзают bigquery, snowflake. А больше бд я и не знаю. Если кто знает базы данных, у которых очень быстрый и насыщенный функционал по выстраиванию и анализу воронок — поделитесь, плз.
еще есть функции работы с arrays. Они решают много подобных проблем
источник

M

Maxim Bogdanov in ClickHouse не тормозит
Алексей @Bloxy.info Studnev
еще есть функции работы с arrays. Они решают много подобных проблем
да вот найти бы хотя бы один пример более-менее серьёзной аналитики воронок. Ведь даже у самого яндекса в отчётах appmetrics нет воронок.
источник

M

Maxim Bogdanov in ClickHouse не тормозит
нашел ещё функцию windowFunnel
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Pavel
2020.07.23 08:01:25.619105 [ 235 ] {6e8a5c98-c609-4dfc-affa-6d5dbe135670} <Error> executeQuery: Code: 365, e.displayText() = DB::Exception: Output of TreeExecutor is not sorted (version 20.5.2.7 (official build)) (from 172.18.0.3:51428) (in query: OPTIMIZE TABLE log.events_test DEDUPLICATE), Stack trace (when copying this message, always include the lines below):
0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10ed0da0 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x95c923d in /usr/bin/clickhouse
2. DB::IBlockInputStream::getSortDescription() const @ 0xd99c5a9 in /usr/bin/clickhouse
3. DB::DistinctSortedBlockInputStream::DistinctSortedBlockInputStream(std::__1::shared_ptr<DB::IBlockInputStream> const&, DB::SizeLimits const&, unsigned long, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) @ 0xe447d0b in /usr/bin/clickhouse
4. DB::MergeTreeDataMergerMutator::mergePartsToTemporaryPart(DB::FutureMergedMutatedPart const&, DB::MergeListEntry&, DB::TableStructureReadLockHolder&, long, std::__1::unique_ptr<DB::IReservation, std::__1::default_delete<DB::IReservation> > const&, bool, bool) @ 0xe42d70c in /usr/bin/clickhouse
5. DB::StorageMergeTree::merge(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) @ 0xe25356b in /usr/bin/clickhouse
6. DB::StorageMergeTree::optimize(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::IAST> const&, bool, bool, DB::Context const&) @ 0xe2538e9 in /usr/bin/clickhouse
7. DB::InterpreterOptimizeQuery::execute() @ 0xdd8be5a in /usr/bin/clickhouse
8. ? @ 0xe074a59 in /usr/bin/clickhouse
9. DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool) @ 0xe07811a in /usr/bin/clickhouse
10. DB::TCPHandler::runImpl() @ 0xe698946 in /usr/bin/clickhouse
11. DB::TCPHandler::run() @ 0xe699660 in /usr/bin/clickhouse
12. Poco::Net::TCPServerConnection::start() @ 0x10deebcb in /usr/bin/clickhouse
13. Poco::Net::TCPServerDispatcher::run() @ 0x10def05b in /usr/bin/clickhouse
14. Poco::PooledThread::run() @ 0x10f6db86 in /usr/bin/clickhouse
15. Poco::ThreadImpl::runnableEntry(void*) @ 0x10f68f80 in /usr/bin/clickhouse
16. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
17. __clone @ 0x12188f in /lib/x86_64-linux-gnu/libc-2.27.so
Для какого движка ?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, привет!
Столкнулся с такой проблемой. С наращиванием количества таблиц с движком Kafka (сейчас 17) начала сильно расти нагрузка на диск сервера c Zookeeper.
Сейчас IO утилизация стабильно 65%. Это известная проблема? Можно ли что-то оптимизировать?
Зукупер кафки или кх?
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
Зукупер кафки или кх?
КХ
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
диск ссд у зк? В логе если смотреть часто снепшоты создаются?
источник