Size: a a a

ClickHouse не тормозит

2021 March 17

MM

Michael M in ClickHouse не тормозит
Привет.
Есть табличка c событиями от юзеров:
CREATE TABLE Events (
   `UserID` UInt64,
   `Url` String,
   `CreatedTime` DateTime
) ENGINE = MergeTree()
ORDER BY CreatedTime

Подскажите, пожалуйста, как по ней считать среднюю продолжительность сессий юзеров по дням, если сессией считается последовательность событий, между которыми не более 15 минут? Не могу придумать запрос...
источник

DT

Dmitry Titov in ClickHouse не тормозит
Michael M
Привет.
Есть табличка c событиями от юзеров:
CREATE TABLE Events (
   `UserID` UInt64,
   `Url` String,
   `CreatedTime` DateTime
) ENGINE = MergeTree()
ORDER BY CreatedTime

Подскажите, пожалуйста, как по ней считать среднюю продолжительность сессий юзеров по дням, если сессией считается последовательность событий, между которыми не более 15 минут? Не могу придумать запрос...
Можно сгруппировать по дням потом
arrayMap(x-> x[-1] - x[1] , arraySplit (x -> x > 15*60,arrayDifference))
источник

D

Dj in ClickHouse не тормозит
Slach
нет
есть только auto-complete по TAB
все параметры можно посмотреть в
clickhouse-client --help
большинство из них можно в клиенте переопределить через SET
Help по самим командам там нет кмк. Например нельзя сказать help drop database
источник

R

Renat in ClickHouse не тормозит
всем привет : )
кто-нибудь сталкивался с ошибкой, когда HAproxy чекает доступность ноды кликахуса? вроде бы на работоспособность не влияет, но логи забивает (версия 21.3.2.5):

2021.03.17 11:53:56.323661 [ 21507 ] {} <Trace> HTTPHandler-factory: HTTP Request for HTTPHandler-factory. Method: HEAD, Address: 10.142.4.2:45514, User-Agent: (none), Content Type: , Transfer Encoding: identity, X-Forwarded-For: (none)
2021.03.17 11:53:56.324065 [ 21507 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 107, e.displayText() = Net Exception: Socket is not connected, Stack trace (when copying this message, always include the lines b
elow):
0. Poco::Net::SocketImpl::error(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x11f75c5e in /usr/bin/clickhouse
1. Poco::Net::SocketImpl::peerAddress() @ 0x11f77ed6 in /usr/bin/clickhouse
2. DB::HTTPServerRequest::HTTPServerRequest(DB::Context const&, DB::HTTPServerResponse&, Poco::Net::HTTPServerSession&) @ 0xf8d4504 in /usr/bin/clickhouse
3. DB::HTTPServerConnection::run() @ 0xf8d3374 in /usr/bin/clickhouse
4. Poco::Net::TCPServerConnection::start() @ 0x11f7ccbf in /usr/bin/clickhouse
5. Poco::Net::TCPServerDispatcher::run() @ 0x11f7e6d1 in /usr/bin/clickhouse
6. Poco::PooledThread::run() @ 0x120b4df9 in /usr/bin/clickhouse
7. Poco::ThreadImpl::runnableEntry(void*) @ 0x120b0c5a in /usr/bin/clickhouse
8. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
9. __clone @ 0x121a3f in /lib/x86_64-linux-gnu/libc-2.27.so
(version 21.3.2.5 (official build))

в конфиге HAproxy:
option httpchk HEAD /ping HTTP/1.1
меняли на метод GET - не помогло.

также проверили на версии CH 21.2.5.5 - принципиальная ошибка та же, только код другой
2021.03.17 11:21:19.528225 [ 32674 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 104, e.displayText() = Connection reset by peer, Stack trace (when copying this message, always include the lines below):
источник

SC

Smoked Cheese in ClickHouse не тормозит
подскажите, а можно как-то смигрировать движок бд с обычного на atomic?
источник

S

Slach in ClickHouse не тормозит
пока никак
пока не переведут на ANTLR грамматику все парсеры

https://github.com/ClickHouse/ClickHouse/blob/master/src/Parsers/New/ClickHouseParser.g4

к сожалению в DataGrip и dbeaver пока с прямой поддержкой ANTLR грамматики прямо из ClickHouse не торопятся
https://youtrack.jetbrains.com/issue/DBE-12184
источник

AP

Al. P. in ClickHouse не тормозит
Renat
всем привет : )
кто-нибудь сталкивался с ошибкой, когда HAproxy чекает доступность ноды кликахуса? вроде бы на работоспособность не влияет, но логи забивает (версия 21.3.2.5):

2021.03.17 11:53:56.323661 [ 21507 ] {} <Trace> HTTPHandler-factory: HTTP Request for HTTPHandler-factory. Method: HEAD, Address: 10.142.4.2:45514, User-Agent: (none), Content Type: , Transfer Encoding: identity, X-Forwarded-For: (none)
2021.03.17 11:53:56.324065 [ 21507 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 107, e.displayText() = Net Exception: Socket is not connected, Stack trace (when copying this message, always include the lines b
elow):
0. Poco::Net::SocketImpl::error(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x11f75c5e in /usr/bin/clickhouse
1. Poco::Net::SocketImpl::peerAddress() @ 0x11f77ed6 in /usr/bin/clickhouse
2. DB::HTTPServerRequest::HTTPServerRequest(DB::Context const&, DB::HTTPServerResponse&, Poco::Net::HTTPServerSession&) @ 0xf8d4504 in /usr/bin/clickhouse
3. DB::HTTPServerConnection::run() @ 0xf8d3374 in /usr/bin/clickhouse
4. Poco::Net::TCPServerConnection::start() @ 0x11f7ccbf in /usr/bin/clickhouse
5. Poco::Net::TCPServerDispatcher::run() @ 0x11f7e6d1 in /usr/bin/clickhouse
6. Poco::PooledThread::run() @ 0x120b4df9 in /usr/bin/clickhouse
7. Poco::ThreadImpl::runnableEntry(void*) @ 0x120b0c5a in /usr/bin/clickhouse
8. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
9. __clone @ 0x121a3f in /lib/x86_64-linux-gnu/libc-2.27.so
(version 21.3.2.5 (official build))

в конфиге HAproxy:
option httpchk HEAD /ping HTTP/1.1
меняли на метод GET - не помогло.

также проверили на версии CH 21.2.5.5 - принципиальная ошибка та же, только код другой
2021.03.17 11:21:19.528225 [ 32674 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 104, e.displayText() = Connection reset by peer, Stack trace (when copying this message, always include the lines below):
можете попробовать tcp-check если хттп валится
источник

n🐈

nikoinlove 🐈 in ClickHouse не тормозит
сокет из нот коннектед на какойто кипелайв похоже
источник

S

Slach in ClickHouse не тормозит
Renat
всем привет : )
кто-нибудь сталкивался с ошибкой, когда HAproxy чекает доступность ноды кликахуса? вроде бы на работоспособность не влияет, но логи забивает (версия 21.3.2.5):

2021.03.17 11:53:56.323661 [ 21507 ] {} <Trace> HTTPHandler-factory: HTTP Request for HTTPHandler-factory. Method: HEAD, Address: 10.142.4.2:45514, User-Agent: (none), Content Type: , Transfer Encoding: identity, X-Forwarded-For: (none)
2021.03.17 11:53:56.324065 [ 21507 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 107, e.displayText() = Net Exception: Socket is not connected, Stack trace (when copying this message, always include the lines b
elow):
0. Poco::Net::SocketImpl::error(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x11f75c5e in /usr/bin/clickhouse
1. Poco::Net::SocketImpl::peerAddress() @ 0x11f77ed6 in /usr/bin/clickhouse
2. DB::HTTPServerRequest::HTTPServerRequest(DB::Context const&, DB::HTTPServerResponse&, Poco::Net::HTTPServerSession&) @ 0xf8d4504 in /usr/bin/clickhouse
3. DB::HTTPServerConnection::run() @ 0xf8d3374 in /usr/bin/clickhouse
4. Poco::Net::TCPServerConnection::start() @ 0x11f7ccbf in /usr/bin/clickhouse
5. Poco::Net::TCPServerDispatcher::run() @ 0x11f7e6d1 in /usr/bin/clickhouse
6. Poco::PooledThread::run() @ 0x120b4df9 in /usr/bin/clickhouse
7. Poco::ThreadImpl::runnableEntry(void*) @ 0x120b0c5a in /usr/bin/clickhouse
8. start_thread @ 0x76db in /lib/x86_64-linux-gnu/libpthread-2.27.so
9. __clone @ 0x121a3f in /lib/x86_64-linux-gnu/libc-2.27.so
(version 21.3.2.5 (official build))

в конфиге HAproxy:
option httpchk HEAD /ping HTTP/1.1
меняли на метод GET - не помогло.

также проверили на версии CH 21.2.5.5 - принципиальная ошибка та же, только код другой
2021.03.17 11:21:19.528225 [ 32674 ] {} <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 104, e.displayText() = Connection reset by peer, Stack trace (when copying this message, always include the lines below):
сталкивались с подобным
но никак не починено
и не факт что это ошибка на стороне clickhouse
возможно HAProxy действительно закрывает соединение раньше чем получает ответ от clickhouse
по идее там должно быть GET
и если есть в HAProxy возможность проверить ответ то ответ должен быть "Ok."
тогда может сможете избавиться от ошибки

а можно через tcpdump взглянуть на дамп того как HAProxy запрос посылает и в какой момент он отсылает RST TCP пакет?
источник

S

Slach in ClickHouse не тормозит
Al. P.
можете попробовать tcp-check если хттп валится
IMHO ошибка будет в логах все равно, clickhouse нервно реагирует когда просто TCP коннекты открываются\закрываются
источник

in

ildar nizamov in ClickHouse не тормозит
Slach
пока никак
пока не переведут на ANTLR грамматику все парсеры

https://github.com/ClickHouse/ClickHouse/blob/master/src/Parsers/New/ClickHouseParser.g4

к сожалению в DataGrip и dbeaver пока с прямой поддержкой ANTLR грамматики прямо из ClickHouse не торопятся
https://youtrack.jetbrains.com/issue/DBE-12184
спасибо за ссылку! буду хотя бы на грамматику оринтироваться
источник

S

Slach in ClickHouse не тормозит
ildar nizamov
спасибо за ссылку! буду хотя бы на грамматику оринтироваться
ну вы там поглядите еще в этой папке не один g4 файл там их парочка... они вроде генерируются откуда то
а не в ручную пишутся
источник

AP

Al. P. in ClickHouse не тормозит
Slach
IMHO ошибка будет в логах все равно, clickhouse нервно реагирует когда просто TCP коннекты открываются\закрываются
какой способ проверки ноды предпочтительней? допустим нужен ендпоинт, чтобы понять, жива ли нода. есть возможность сделать tcp,http,grpc вызов
источник

MM

Michael M in ClickHouse не тормозит
Dmitry Titov
Можно сгруппировать по дням потом
arrayMap(x-> x[-1] - x[1] , arraySplit (x -> x > 15*60,arrayDifference))
а как перевести данные в array ?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Michael M
а как перевести данные в array ?
groupArray(ts)
источник

R

Renat in ClickHouse не тормозит
Slach
сталкивались с подобным
но никак не починено
и не факт что это ошибка на стороне clickhouse
возможно HAProxy действительно закрывает соединение раньше чем получает ответ от clickhouse
по идее там должно быть GET
и если есть в HAProxy возможность проверить ответ то ответ должен быть "Ok."
тогда может сможете избавиться от ошибки

а можно через tcpdump взглянуть на дамп того как HAProxy запрос посылает и в какой момент он отсылает RST TCP пакет?
всем спасибо! понял, что нужно дальше копать : )
проверим предложенные варианты, потом отпишусь по результатам.
источник

S

Slach in ClickHouse не тормозит
Al. P.
какой способ проверки ноды предпочтительней? допустим нужен ендпоинт, чтобы понять, жива ли нода. есть возможность сделать tcp,http,grpc вызов
HTTP GET на /ping с проверкой статуса 200 и ответа
Ok.
источник

S

Slach in ClickHouse не тормозит
Al. P.
какой способ проверки ноды предпочтительней? допустим нужен ендпоинт, чтобы понять, жива ли нода. есть возможность сделать tcp,http,grpc вызов
ну и второй endpoint это /replica_status
но это для мониторинга того что с репликацией все ОК
репликацию чинить надо без выключения ноды по возможности...

https://clickhouse.tech/docs/en/operations/monitoring/#clickhouse-server-metrics
источник

MM

Michael M in ClickHouse не тормозит
Dmitry Titov
Можно сгруппировать по дням потом
arrayMap(x-> x[-1] - x[1] , arraySplit (x -> x > 15*60,arrayDifference))
arrayDifference не работает с DateTime ?
arrayDifference cannot process values of type DateTime: While processing toDate(CreatedTime) AS d, arrayDifference(groupArray(CreatedTime))
источник

DT

Dmitry Titov in ClickHouse не тормозит
Michael M
arrayDifference не работает с DateTime ?
arrayDifference cannot process values of type DateTime: While processing toDate(CreatedTime) AS d, arrayDifference(groupArray(CreatedTime))
Ну можно привести к UInt32(ts)
источник