Size: a a a

ClickHouse не тормозит

2021 February 20

В

Виктор in ClickHouse не тормозит
Блин, читал же это.. а сделать забыл
источник

В

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

В

Виктор in ClickHouse не тормозит
случайно уронил зукипер, теперь в таблицы с репликацией не пишет:
2021.02.20 22:59:43.347217 [ 12944 ] {} <Error> void DB::StorageKafka::threadFunc(size_t): Code: 242, e.displayText() = DB::Exception: Table is in readonly mode (zookeeper path: /clickhouse/tables/ch/msgw_sharded), Stack trace (when copying this message, always include the lines below):

0. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x8692d81 in /usr/bin/clickhouse
1. DB::StorageReplicatedMergeTree::assertNotReadonly() const @ 0xf4386d9 in /usr/bin/clickhouse
2. DB::StorageReplicatedMergeTree::write(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&) @ 0xf4387f2 in /usr/bin/clickhouse
3. DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::__1::shared_ptr<DB::IStorage> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&, std::__1::shared_ptr<DB::IAST> const&, bool) @ 0xee35528 in /usr/bin/clickhouse
4. DB::InterpreterInsertQuery::execute() @ 0xee293e1 in /usr/bin/clickhouse
5. DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::__1::shared_ptr<DB::IStorage> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&, std::__1::shared_ptr<DB::IAST> const&, bool) @ 0xee34d54 in /usr/bin/clickhouse
6. DB::InterpreterInsertQuery::execute() @ 0xee293e1 in /usr/bin/clickhouse
7. DB::StorageKafka::streamToViews() @ 0xf4f41be in /usr/bin/clickhouse
8. DB::StorageKafka::threadFunc(unsigned long) @ 0xf4f346e in /usr/bin/clickhouse
9. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0xeb39ae2 in /usr/bin/clickhouse
10. DB::BackgroundSchedulePool::threadFunction() @ 0xeb3bf17 in /usr/bin/clickhouse
11. ? @ 0xeb3d191 in /usr/bin/clickhouse
12. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x86415ed in /usr/bin/clickhouse
13. ? @ 0x86451a3 in /usr/bin/clickhouse
14. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
15. __clone @ 0x12188f in /lib/x86_64-linux-gnu/libc-2.27.so
(version 21.1.2.15 (official build))
источник

В

Виктор in ClickHouse не тормозит
В метриках readonly replicas по нулям
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Виктор
случайно уронил зукипер, теперь в таблицы с репликацией не пишет:
2021.02.20 22:59:43.347217 [ 12944 ] {} <Error> void DB::StorageKafka::threadFunc(size_t): Code: 242, e.displayText() = DB::Exception: Table is in readonly mode (zookeeper path: /clickhouse/tables/ch/msgw_sharded), Stack trace (when copying this message, always include the lines below):

0. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x8692d81 in /usr/bin/clickhouse
1. DB::StorageReplicatedMergeTree::assertNotReadonly() const @ 0xf4386d9 in /usr/bin/clickhouse
2. DB::StorageReplicatedMergeTree::write(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&) @ 0xf4387f2 in /usr/bin/clickhouse
3. DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::__1::shared_ptr<DB::IStorage> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&, std::__1::shared_ptr<DB::IAST> const&, bool) @ 0xee35528 in /usr/bin/clickhouse
4. DB::InterpreterInsertQuery::execute() @ 0xee293e1 in /usr/bin/clickhouse
5. DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::__1::shared_ptr<DB::IStorage> const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::Context const&, std::__1::shared_ptr<DB::IAST> const&, bool) @ 0xee34d54 in /usr/bin/clickhouse
6. DB::InterpreterInsertQuery::execute() @ 0xee293e1 in /usr/bin/clickhouse
7. DB::StorageKafka::streamToViews() @ 0xf4f41be in /usr/bin/clickhouse
8. DB::StorageKafka::threadFunc(unsigned long) @ 0xf4f346e in /usr/bin/clickhouse
9. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0xeb39ae2 in /usr/bin/clickhouse
10. DB::BackgroundSchedulePool::threadFunction() @ 0xeb3bf17 in /usr/bin/clickhouse
11. ? @ 0xeb3d191 in /usr/bin/clickhouse
12. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x86415ed in /usr/bin/clickhouse
13. ? @ 0x86451a3 in /usr/bin/clickhouse
14. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
15. __clone @ 0x12188f in /lib/x86_64-linux-gnu/libc-2.27.so
(version 21.1.2.15 (official build))
зукипер работает?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
что значит уронил?
источник

В

Виктор in ClickHouse не тормозит
Да, метрики показывают, что сессии есть
источник

В

Виктор in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
что значит уронил?
Рестартнул с мисконфигом
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Виктор
Рестартнул с мисконфигом
там еще ошибки должны быть
источник

В

Виктор in ClickHouse не тормозит
А… я поменял папку с логами …
источник

В

Виктор in ClickHouse не тормозит
Ща верну
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Виктор
А… я поменял папку с логами …
ну так логи надо было переложить
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
зукиперу надо накатить логи на снепшот
источник

В

Виктор in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
ну так логи надо было переложить
да, уже понял, что в зукипере просто нет никаких данных
источник
2021 February 21

A

Alexander in ClickHouse не тормозит
Добрый день! Подскажите, есть широкая таблица примерно такого содержания:

client1 event1 data1
client1 event2 data2
client2 event1 data1
client2 event2 data2
client3 event1 data1
client3 event3 data3
Как можно выбрать таких клиентов, у которых есть event1 и event2 одновременно?
То есть в данном примере должны выбраться
client1 и client2
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Alexander
Добрый день! Подскажите, есть широкая таблица примерно такого содержания:

client1 event1 data1
client1 event2 data2
client2 event1 data1
client2 event2 data2
client3 event1 data1
client3 event3 data3
Как можно выбрать таких клиентов, у которых есть event1 и event2 одновременно?
То есть в данном примере должны выбраться
client1 и client2
Мне кажется, вам подойдёт что-то типа hasAll(groupUniqArray(event_id), [event1, event2])
источник

K

Kakvablyat in ClickHouse не тормозит
Хороший вопрос, тоже есть подобный кейс. Делал через join, но это 2 прохода по таблице. Посмотрим на ответы экспертов
источник

AK

Anton Khokhrin in ClickHouse не тормозит
В традиционных субд
Having Max(case when event1 then 1 else 0 end)=1 и тд
Для кх стоит сравнить с вариантом с массивами
источник

DT

Dmitry Titov in ClickHouse не тормозит
Alexander
Добрый день! Подскажите, есть широкая таблица примерно такого содержания:

client1 event1 data1
client1 event2 data2
client2 event1 data1
client2 event2 data2
client3 event1 data1
client3 event3 data3
Как можно выбрать таких клиентов, у которых есть event1 и event2 одновременно?
То есть в данном примере должны выбраться
client1 и client2
вариант через hasAll неплохой
Единственное что можно еще посоветовать если позволяет логика в WHERE написать event IN ('event1', 'event2')
источник

A

Alexander in ClickHouse не тормозит
Dmitry Titov
вариант через hasAll неплохой
Единственное что можно еще посоветовать если позволяет логика в WHERE написать event IN ('event1', 'event2')
Немного не понял каким образом? Простой IN вернёт строчки, которые содержат хоть один из эвентов.

Есть ещё вариант, конечно, делать только одну строчку на клиента, эвенты сделать массивами и обновлять строчку через Replacing или Aggregating. На самом деле у нас схема примерно такая и есть сейчас. Клиент всегда один, а собираем все его эвенты (их немного, буквально до 10, соответственно массивы тоже небольшие) и в ReplacingMergeTree храним.
Интересует именно быстрота поиска. Будет быстрее смотреть на заранее составленный массив в колонке с типом array или составлять массив через groupArray и искать уже в нем?
источник