Size: a a a

ClickHouse не тормозит

2021 February 09

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Vladimir Rudev
Подскажите пожалуйста - есть ли какая-то возможность повлиять на то в каком порядке кликхаус читает данные с диска(порядок чтения партиций)?

Проблема в чем, есть запрос:
insert select * from <very_big_table> any inner join <medium_table> using id

Именно в таком варианте оно работает, но нет понимания есть ли гарантия повторяемости результатов - any join при параллельном чтении выдает результаты того потока который первее нашел пару для правой части, верно?
Нужно получить гарантированное поведение данного запроса, а именно - чтоб к каждому элементу малого множества клеялась либо самая старая запись(самая старая партиция) либо самая новая. Хотя бы какой-то один из этих вариантов.
Добавляя какую-либо сортировку в very_big_query - сразу вылетаем по памяти( (здесь кстати не понятно почему - если сортируем по ключу партиционирования - все равно вылетает - хотя казалось бы выдавай партици по очереди и ок).

Срезав кол-во потоков через max_threads=1 можно убрать параллелизм и судя по логам вроде как чтение идет в один поток и в порядке партиций от меньшей к большей. Т.е. выглядит как подходящий вариант, но нигде не могу найти подтверждения этой теории - гарантирован ли в данном варианте повтор результата на одних и тех же данных, может кто-нибудь подсказать?

Ну и может есть рычаг заставить читать партиции в обратном порядке? тогда при условии того что предыдущий абзац верный - можно было бы получить вариант _join с самым свежим_.
У вас any join и левую таблицу обрабатывает distinct. Надо либо включить настройку any_join_distinct_right_table_keys

либо использовать semi join
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Alexander Ryzhenko
Скажите, а в kafka engine косюмер поднимается и висит постоянно и поллит, или же когда больше нечего читать из топика, освобождает место в backgroundSchedule пуле для других консюмеров? (речь о ситуаци когда консюмеров больше чем background_schedule_size)
Мы часто стали ловить ошибку при попытке закомитить оффсеты от брокера и консюмер группа постоянно ребалансится.

Clickhouse Server v 20.4.

2021.02.08 15:48:57.944984 [ 41516 ] {} <Error> StorageKafka (kafka_table_name): Exception during commit attempt: Broker: Unknown member
2021.02.08 15:48:57.963076 [ 41516 ] {} <Error> void DB::StorageKafka::threadFunc(): Code: 518, e.displayText() = DB::Exception: All commit attempts failed. Last block was already written to target table(s), but was not commited to Kafka.,
Так кафка устроена. Необходимо постоянно полить. Иначе брокер думает что консьюмер помер и делает ребаланс и отдает партиции другому консьюмеру
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Vladimir Bunchuk
Ребят, всем привет!
Есть Materialized кололнка, в которой выполняется регулярка, которая экстрактит данные из другой колонки.
Регулярка обновилась и хотелось бы обновить некоторые исторические данные. КХ ругается что нельзя делать ALTER UPDATE для MATERIALIZED COLUMN.
Есть вариант как-то все же заапдейтить колонку, или нужно пересоздавать чтобы обновить исторические значения?
источник

СЛ

Станислав Линник... in ClickHouse не тормозит
Ребят привет, а я могу как то реплику запустить без ЗК? Мне только "прочитать" что есть в таблицах, которые были не реплицируемые.
Или лучший вариант, если я мувну все партиции на другой ЗК и приатачу ?
Версия CH: 20.10.6
источник

AR

Alexander Ryzhenko in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
Так кафка устроена. Необходимо постоянно полить. Иначе брокер думает что консьюмер помер и делает ребаланс и отдает партиции другому консьюмеру
Ну у нас так и получается. Может быть, что после получения из кафки кх слишком долго обрабатывает полученный батч, что брокер кикает консюмер? Очень на это похоже по крайней мере
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Рома
Добрый день, подскажите, пожалуйста, как правильно построить кросс-дц сетап кластеров кликхауса. Можно ли использовать несколько кластеров зукипера, по одному в каждом дц. Раскидывать кластер зукипера по нодам в разные дц/держать зукипер лишь в одном дц?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Alexander Ryzhenko
Ну у нас так и получается. Может быть, что после получения из кафки кх слишком долго обрабатывает полученный батч, что брокер кикает консюмер? Очень на это похоже по крайней мере
Вам бы обновится сначала до 20.6+ там сильно лучше все с кафкой
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Станислав Линник
Ребят привет, а я могу как то реплику запустить без ЗК? Мне только "прочитать" что есть в таблицах, которые были не реплицируемые.
Или лучший вариант, если я мувну все партиции на другой ЗК и приатачу ?
Версия CH: 20.10.6
Кх без зукипера стартует, таблицы просто ro
источник

СЛ

Станислав Линник... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
Кх без зукипера стартует, таблицы просто ro
Чет не хочет, он стартовать. Пытается законнектися и после этого вырубается
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Станислав Линник
Чет не хочет, он стартовать. Пытается законнектися и после этого вырубается
не верится что-то. Ну удалите из конфига кусок про зукипер. И покажите лог
источник

СЛ

Станислав Линник... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
не верится что-то. Ну удалите из конфига кусок про зукипер. И покажите лог
забавно, если conf.d/zookeeper.xml будет пустой, то CH не может запуститься, если в сервера ZK запихать localhost, то после попыток подключиться он вырубается.
А если удалить conf.d/zookeeper.xml и закомментировать  <zookeeper incl="zookeeper-servers" optional="true" />, то он стартует
Но прочитать реплицируемую табличку чет не получается
2021.02.09 07:28:00.412261 [ 21805 ] {59dcd7bf-da8b-4737-b293-f0efb5b7c2e9} <Debug> executeQuery: (from 127.0.0.1:42870) SELECT count(*) FROM test_backup;
2021.02.09 07:28:00.416711 [ 21805 ] {59dcd7bf-da8b-4737-b293-f0efb5b7c2e9} <Error> executeQuery: Code: 225, e.displayText() = DB::Exception: Cannot get ZooKeeper (version 20.10.6.27 (official build)) (from 127.0.0.1:42870) (in query: SELECT count(*) FROM test_backup;), Stack trace (when copying this message, always include the lines below):

0. DB::StorageReplicatedMergeTree::getZooKeeper() const @ 0xe0783bb in /usr/bin/clickhouse
1. DB::StorageReplicatedMergeTree::getMaxAddedBlocks() const @ 0xe0da8cd in /usr/bin/clickhouse
2. DB::StorageReplicatedMergeTree::totalRows() const @ 0xe0db63d in /usr/bin/clickhouse
3. DB::InterpreterSelectQuery::executeFetchColumns(DB::QueryProcessingStage::Enum, DB::QueryPlan&, std::__1::shared_ptr<DB::PrewhereInfo> const&, 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&) @ 0xdb543d3 in /usr/bin/clickhouse
4. DB::InterpreterSelectQuery::executeImpl(DB::QueryPlan&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>) @ 0xdb4c46b in /usr/bin/clickhouse
5. DB::InterpreterSelectQuery::buildQueryPlan(DB::QueryPlan&) @ 0xdb4b9c6 in /usr/bin/clickhouse
6. DB::InterpreterSelectWithUnionQuery::execute() @ 0xdcf167d in /usr/bin/clickhouse
7. ? @ 0xde48568 in /usr/bin/clickhouse
8. DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool) @ 0xde4740d in /usr/bin/clickhouse
9. DB::TCPHandler::runImpl() @ 0xe4ee3a6 in /usr/bin/clickhouse
10. DB::TCPHandler::run() @ 0xe4fb1a7 in /usr/bin/clickhouse
11. Poco::Net::TCPServerConnection::start() @ 0x10cd40df in /usr/bin/clickhouse
12. Poco::Net::TCPServerDispatcher::run() @ 0x10cd5af1 in /usr/bin/clickhouse
13. Poco::PooledThread::run() @ 0x10e06c99 in /usr/bin/clickhouse
14. Poco::ThreadImpl::runnableEntry(void*) @ 0x10e02bca in /usr/bin/clickhouse
15. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
16. clone @ 0xfe96d in /usr/lib64/libc-2.17.so
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Подскажите, пожалуйста, что может влиять на скорость выборки из таблицы без фильтров/сортировок?

Я делаю select * from table1 limit 10 и select * from table2 limit 10. При одинаковом наборе полей в таблицах скорость работы запроса может отличаться в разы.
источник

D

Dj in ClickHouse не тормозит
Alexey Sokolov
Подскажите, пожалуйста, что может влиять на скорость выборки из таблицы без фильтров/сортировок?

Я делаю select * from table1 limit 10 и select * from table2 limit 10. При одинаковом наборе полей в таблицах скорость работы запроса может отличаться в разы.
Количество партов
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Dj
Количество партов
Спасибо, гляну.

А можно чуть-чуть теории? Как работает КХ в случае таких запросов и как количество портов влияет на подобные запросы?
источник

D

Dj in ClickHouse не тормозит
Ну надо 1000 файлов прочесть вс 10 файлов.
источник

GA

Gulshan Agivetova in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
(groupArray( tuple(pack_name) )).1
Спасибо огромное,  попробую!!
источник

I

Ilya in ClickHouse не тормозит
Тупой вопрос, но я что то туплю, может кто подскажет
есть JSON (Netflow V9 с CISCO), который никак не соображу как распарсить, чтобы положить в табличку
значения из массива
интересует только массивы из   "DataSets"
{"AgentID":"10.1.1.1",
      "Header":{"Version":9,"Count":1},
      "DataSets":[
           [{"I":2,"V":"0x00000231"},{"I":1,"V":"0x0009c151"},{"I":8,"V":"109.195.122.130"}],
           [{"I":2,"V":"0x00000341"},{"I":1,"V":"0x0009c221"},{"I":8,"V":"109.195.122.233"}]
     
      ]}'
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Dj
Ну надо 1000 файлов прочесть вс 10 файлов.
1000 файлов даже если limit 10?
источник

MM

Michael M in ClickHouse не тормозит
Привет.
Есть бесплатный довольно удобный гуёвый клиент для мускула, постгреса, etc: HeidiSQL . И его автор начал делать поддержку ClickHouse: https://github.com/HeidiSQL/HeidiSQL/issues/135#issuecomment-775711225 . У него возникают вопросы, как делать разные системные запросы по аналогии с MySQL и PG. Требуется Ваша профессиональная помощь, ибо я сам не настолько большой профессионал, чтобы правильно написать все запросы, специфичные для ClickHouse-а.
источник

AV

Artem V in ClickHouse не тормозит
Привет. Подскажите дилетанту. Как можно по синтаксису изменить настройку join_use_nulls. SET join_use_nulls = 1 не работает.
источник