Size: a a a

ClickHouse не тормозит

2021 February 03

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Станислав Линник
Привет ребят, нашел странности в логах КХ
2021.01.18 22:54:34.868742 [ 19518 ] {} <Error> InterserverIOHTTPHandler: Code: 24, e.displayText() = DB::Exception: Cannot write to ostream at offset 4195414, Stack trace (when copying this message, always include the lines below):

0. DB::WriteBufferFromOStream::nextImpl() @ 0x9a4b360 in /usr/bin/clickhouse
1. DB::WriteBufferFromHTTPServerResponse::nextImpl() @ 0xe4aaca7 in /usr/bin/clickhouse
2. DB::HashingWriteBuffer::nextImpl() @ 0xe22227d in /usr/bin/clickhouse
3. DB::DataPartsExchange::Service::sendPartFromDisk(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::WriteBuffer&, bool) @ 0xe21c543 in /usr/bin/clickhouse
4. DB::DataPartsExchange::Service::processQuery(Poco::Net::HTMLForm const&, DB::ReadBuffer&, DB::WriteBuffer&, Poco::Net::HTTPServerResponse&) @ 0xe21b46a in /usr/bin/clickhouse
5. DB::InterserverIOHTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&, DB::InterserverIOHTTPHandler::Output&) @ 0xe4ae339 in /usr/bin/clickhouse
6. DB::InterserverIOHTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&) @ 0xe4aea64 in /usr/bin/clickhouse
7. Poco::Net::HTTPServerConnection::run() @ 0x10c9c915 in /usr/bin/clickhouse
8. Poco::Net::TCPServerConnection::start() @ 0x10cd40df in /usr/bin/clickhouse
9. Poco::Net::TCPServerDispatcher::run() @ 0x10cd5af1 in /usr/bin/clickhouse
10. Poco::PooledThread::run() @ 0x10e06c99 in /usr/bin/clickhouse
11. Poco::ThreadImpl::runnableEntry(void*) @ 0x10e02bca in /usr/bin/clickhouse
12. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
13. __clone @ 0xfe96d in /usr/lib64/libc-2.17.so
(version 20.10.6.27 (official build))
2021.01.18 22:54:34.869191 [ 19518 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 32, e.displayText() = I/O error: Broken pipe, Stack trace (when copying this message, always include the lines below):

0. Poco::Net::SocketImpl::error(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x10cccd8d in /usr/bin/clickhouse
1. Poco::Net::SocketImpl::sendBytes(void const*, int, int) @ 0x10cce3e7 in /usr/bin/clickhouse
2. Poco::Net::StreamSocketImpl::sendBytes(void const*, int, int) @ 0x10cd3176 in /usr/bin/clickhouse
3. Poco::Net::HTTPSession::write(char const*, long) @ 0x10ca0233 in /usr/bin/clickhouse
4. Poco::Net::HTTPChunkedStreamBuf::writeToDevice(char const*, long) @ 0x10c8e15d in /usr/bin/clickhouse
5. Poco::BasicBufferedStreamBuf<char, std::__1::char_traits<char>, Poco::Net::HTTPBufferAllocator>::sync() @ 0x10c8f0b9 in /usr/bin/clickhouse
6. Poco::Net::HTTPChunkedIOS::~HTTPChunkedIOS() @ 0x10c8e3ac in /usr/bin/clickhouse
7. non-virtual thunk to Poco::Net::HTTPChunkedOutputStream::~HTTPChunkedOutputStream() @ 0x10c8ef2b in /usr/bin/clickhouse
8. Poco::Net::HTTPServerResponseImpl::~HTTPServerResponseImpl() @ 0x10c9e06f in /usr/bin/clickhouse
9. Poco::Net::HTTPServerConnection::run() @ 0x10c9c969 in /usr/bin/clickhouse
10. Poco::Net::TCPServerConnection::start() @ 0x10cd40df in /usr/bin/clickhouse
11. Poco::Net::TCPServerDispatcher::run() @ 0x10cd5af1 in /usr/bin/clickhouse
12. Poco::PooledThread::run() @ 0x10e06c99 in /usr/bin/clickhouse
13. Poco::ThreadImpl::runnableEntry(void*) @ 0x10e02bca in /usr/bin/clickhouse
14. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
15. __clone @ 0xfe96d in /usr/lib64/libc-2.17.so
(version 20.10.6.27 (official build))


Это может означать только одно - беды с диском?
CH не смог клиенту по http поток отдать, потому что клиент ушел
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Жека Челак
Можно ли сделать MATERIALIZED VIEW которая будет обновлятся по заданаму периоду времени (например каждые 10 мин)?
Что значит "обновляться"? MV обрабатывает только вставляемые в таблицу данные.

Можно сделать MV, которая будет писать в буфер, имеющий период вставки в следующую таблицу - 10 минут. Тогда результат обработки MV в результирующей таблице будет появляться раз в 10 минут.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Sergey Sesiunin
Всем привет! Есть тут эксперты по odbc-драйверу? Нормальная ли производительность, фулскан с винды через odbc-драйвер таблицы 1 млн строк и 472 столбца, занимает 1 минуту в формате RowBinaryWithNamesAndTypes? При этом пробовали через нативный clickhouse-client, там скорость в таком же формате около 12 сек. Упора в сетку/цп/озу нигде нет, ни на сервере ни на клиенте. Пробовали как с одной ноды дергать, так и с кластера в 2 и 5 нод, используя distributed таблицу, результаты примерно одинаковые +- 1-2сек, что наверное погрешность. Как-то ещё можно ускорить или всё-таки упор уже в драйвер ? В таблице в основном числовые значения
а curl через http с RowBinaryWithNamesAndTypes сколько дает?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Владислав
timedatectl set-timezone UTC
можно переопределять

cat /etc/default/clickhouse
export TZ=Europe/Berlin

тогда нужен рестарт только КХ
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Artem Z
Привет, ткните пожалуйста куда почитать, как правильно удалить колонку использующуюся в ключе? Я так понимаю это причина ошибки DB::Exception: ALTER of key column <column_name> must be metadata-only
никак
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Kid
Добрый вечер. Подскажите, почему такой запрос не выполняется? Просто висит в процессах и все? Пинг ходит с  локал ну удаленный, бд/таблицы есть. Куда можно взглянуть?
Сервера должны быть прописаны в remote_server?
select * from remote('192.168.XXX.XXX:8123192.168.XXX.XXX:8123', default.test_tab2, 'XXX, 'XXX);
81238123 это нет тот порт. remote умеет только 9000 tcp, 8123 = http
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Artem Z
как минимум похоже можно делать через копирование partition ALTER TABLE dst_table ATTACH PARTITION '<partition_from_sys.part>' FROM source_table; и ничего лучше пока не нахожу, но в любом случае за подсказки спасибо.
нельзя
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Жека Челак
Можно ли сделать MATERIALIZED VIEW которая будет обновлятся по заданаму периоду времени (например каждые 10 мин)?
нет
источник

K

Kid in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
81238123 это нет тот порт. remote умеет только 9000 tcp, 8123 = http
спс, я уже понял, там ниже ответил сам себе)
источник

K

Kid in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
81238123 это нет тот порт. remote умеет только 9000 tcp, 8123 = http
пока тут, можно спросить.
Есть таблица, в ключе сортировки на первом месте id.
Выполняются регулярно запросы select * from tab where id in( и тут большой список id).
Как можно ускорить, если можно конечно?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Kid
пока тут, можно спросить.
Есть таблица, в ключе сортировки на первом месте id.
Выполняются регулярно запросы select * from tab where id in( и тут большой список id).
Как можно ускорить, если можно конечно?
надо смотреть используется индекс или нет.

я бы просто запустил select * from tab where identity(id) in( и тут большой список id)
и посмотрел есть разница или нет в статистике запроса
источник

K

Kid in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
надо смотреть используется индекс или нет.

я бы просто запустил select * from tab where identity(id) in( и тут большой список id)
и посмотрел есть разница или нет в статистике запроса
значительно хуже
set force_primary_key=1;
говорит не могу выполнять запрос(
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Kid
значительно хуже
set force_primary_key=1;
говорит не могу выполнять запрос(
значительно хуже с identity ?
источник

K

Kid in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
значительно хуже с identity ?
да
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Kid
да
значит используется primary_key и уже ничего больше не выжать, ну или index_granularity но надо смотреть внимаетльно что за таблица и что вообще за воркфлоу.
источник

K

Kid in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
значит используется primary_key и уже ничего больше не выжать, ну или index_granularity но надо смотреть внимаетльно что за таблица и что вообще за воркфлоу.
правильно ли я понимаю, если ставлю такую настройку (set force_primary_key=1;), то запрещает выполнять если не используется ПК?
Нужно использовать весь ПК или можно только его часть?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Kid
правильно ли я понимаю, если ставлю такую настройку (set force_primary_key=1;), то запрещает выполнять если не используется ПК?
Нужно использовать весь ПК или можно только его часть?
вы чето брешите

create table xxx( A Int64) Engine MergeTree order by A;
set force_primary_key=1;

select * from xxx where A in (1,2,3)
Ok.

select * from xxx where identity(A) in (1,2,3) ;
DB::Exception: Primary key (A) is not used and setting 'force_primary_key' is set..
источник

K

Kid in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
вы чето брешите

create table xxx( A Int64) Engine MergeTree order by A;
set force_primary_key=1;

select * from xxx where A in (1,2,3)
Ok.

select * from xxx where identity(A) in (1,2,3) ;
DB::Exception: Primary key (A) is not used and setting 'force_primary_key' is set..
sorry, неправильно выполнил последовательность команд
все как у вас, да
источник

BK

Brahma Kumaris in ClickHouse не тормозит
Подскажите пожалуйста, можно ли при создании базы данных указать ей место для хранения данных в соответствии с какой-то политикой хранения?
Хочу создать MaterializedMySQL на другом диске
источник
2021 February 04

GE

Grisha Egorov in ClickHouse не тормозит
Есть несколко вопросов по Buffer таблице:
> Заметим, что даже для таблиц типа Buffer не имеет смысла вставлять данные по одной строке, так как таким образом будет достигнута скорость всего лишь в несколько тысяч строк в секунду…
Понимаю что это довольно условно, но имеется ввиду запись в одну таблицу или в общем по кластеру.
Сейчас есть одна табличка, в нее идет порядка 4k одиночных записей в секунду, можно ли обойтись Buffer?
Так же несовсем понятен смысл этого
> Если таблица назначения является реплицируемой, то при записи в таблицу Buffer будут потеряны некоторые ожидаемые свойства реплицируемых таблиц.
Может кто-то расшифровать?
источник