Size: a a a

ClickHouse не тормозит

2020 August 05

D

Dj in ClickHouse не тормозит
dmitry sevastyanov
нет, статус в system.dictionaries LOADED, про Myisam я поэтому и указал что innodb движок в мускуле.
Словарь работает как положено, при первом запросе грузит в память, атрибуты отдаёт. Визуально всё в порядке. Но вот обновления не происходит. Принудительно обновить получается через SYSTEM RELOAD DICTIONARY и данные обновляются - значение аттрибута меняется.

В доке написано что invalidate query опционален, но возможно для каких то размеров внешних источников, или для каких то специфичных кейсов его всё таки необходимо указывать.
тогда ненаю
источник

D

Dj in ClickHouse не тормозит
делайте баг
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
да и проверяю clickhouse.err.log и там с течение времени никаких ошибок не появляется
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Dj
делайте баг
эх, понял, спасибо
источник

D

Dj in ClickHouse не тормозит
dmitry sevastyanov
да и проверяю clickhouse.err.log и там с течение времени никаких ошибок не появляется
ну попробуйте макс в 4-5 минут выставить и "продолжайте наблюдение"
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
dmitry sevastyanov
нет, статус в system.dictionaries LOADED, про Myisam я поэтому и указал что innodb движок в мускуле.
Словарь работает как положено, при первом запросе грузит в память, атрибуты отдаёт. Визуально всё в порядке. Но вот обновления не происходит. Принудительно обновить получается через SYSTEM RELOAD DICTIONARY и данные обновляются - значение аттрибута меняется.

В доке написано что invalidate query опционален, но возможно для каких то размеров внешних источников, или для каких то специфичных кейсов его всё таки необходимо указывать.
что тако аттрибут? о чем речь?
источник

D

Dj in ClickHouse не тормозит
dmitry sevastyanov
да и проверяю clickhouse.err.log и там с течение времени никаких ошибок не появляется
LIFETIME(300) ещё попробуйте так (без мин-макс)
источник

D

Dj in ClickHouse не тормозит
dmitry sevastyanov
нет, статус в system.dictionaries LOADED, про Myisam я поэтому и указал что innodb движок в мускуле.
Словарь работает как положено, при первом запросе грузит в память, атрибуты отдаёт. Визуально всё в порядке. Но вот обновления не происходит. Принудительно обновить получается через SYSTEM RELOAD DICTIONARY и данные обновляются - значение аттрибута меняется.

В доке написано что invalidate query опционален, но возможно для каких то размеров внешних источников, или для каких то специфичных кейсов его всё таки необходимо указывать.
LOADED не причем, смотрите в last_exception
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Dj
LOADED не причем, смотрите в last_exception
last_exception пустой
last_successful_update_time: 2020-08-05 14:34:36 - то есть судя по всему обновление просто не тригерится
надо попробовать invalidate_query таки
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
dmitry sevastyanov
last_exception пустой
last_successful_update_time: 2020-08-05 14:34:36 - то есть судя по всему обновление просто не тригерится
надо попробовать invalidate_query таки
в логе кх погрепайте по имени словаря, это должно работать, тесты есть
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
что тако аттрибут? о чем речь?
значение колонки из внешней таблицы в мускуле, вроде в доке кх оперируют понятием "аттрибут"
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
в логе кх погрепайте по имени словаря, это должно работать, тесты есть
я его просто смотрю через tail -f и никаких сообщений прост не падает, тестирую на локале пока
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
dmitry sevastyanov
я его просто смотрю через tail -f и никаких сообщений прост не падает, тестирую на локале пока
пфф, вот создал

mysql:  create view test as select 1 as id, now() as t;


CREATE DICTIONARY test_dictionary(
               id UInt64,
               t DateTime
           )
           PRIMARY KEY id
           SOURCE(MYSQL(
               port 3306
               user 'xxx'
               password 'zzzz'
               replica(host 'yyyy' priority 1)
               db 'xxx'
               table 'test'

           ))
           
           LAYOUT(HASHED())
           LIFETIME(MIN 1 MAX 5)

           ;

SELECT *
FROM test_dictionary

┌─id─┬───────────────────t─┐
│  1 │ 2020-08-05 15:56:13 │
└────┴─────────────────────┘

SELECT *
FROM test_dictionary

┌─id─┬───────────────────t─┐
│  1 │ 2020-08-05 15:58:08 │
└────┴─────────────────────┘


tail -f /var/log/clickhouse-server/clickhouse-server.log|grep test_dictionary

2020.08.05 15:58:28.769354 [ 15594 ] {} <Trace> ExternalDictionariesLoader: Start loading object 'dw.test_dictionary'
2020.08.05 15:58:28.774838 [ 15594 ] {} <Trace> ExternalDictionariesLoader: Supposed update time for 'dw.test_dictionary' is 2020-08-05 15:58:29 (loaded, lifetime [1, 5], no errors)
2020.08.05 15:58:28.774846 [ 15594 ] {} <Trace> ExternalDictionariesLoader: Next update time for 'dw.test_dictionary' was set to 2020-08-05 15:58:29
2020.08.05 15:58:33.770862 [ 15546 ] {} <Trace> ExternalDictionariesLoader: Will load the object 'dw.test_dictionary' in background, force = false, loading_id = 31
2020.08.05 15:58:33.770874 [ 15546 ] {} <Trace> ExternalDictionariesLoader: Object 'dw.test_dictionary' is neither loaded nor failed, so it will not be reloaded as outdated.
2020.08.05 15:58:33.770887 [ 15592 ] {} <Trace> ExternalDictionariesLoader: Start loading object 'dw.test_dictionary'
2020.08.05 15:58:33.776387 [ 15592 ] {} <Trace> ExternalDictionariesLoader: Supposed update time for 'dw.test_dictionary' is 2020-08-05 15:58:38 (loaded, lifetime [1, 5], no errors)
2020.08.05 15:58:33.776395 [ 15592 ] {} <Trace> ExternalDictionariesLoader: Next update time for 'dw.test_dictionary' was set to 2020-08-05 15:58:38
2020.08.05 15:58:43.772762 [ 15546 ] {} <Trace> ExternalDictionariesLoader: Will load the object 'dw.test_dictionary' in background, force = false, loading_id = 32
2020.08.05 15:58:43.772775 [ 15546 ] {} <Trace> ExternalDictionariesLoader: Object 'dw.test_dictionary' is neither loaded nor failed, so it wil
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
вот что у меня после грепа:
2020.08.05 15:55:51.327218 [ 190 ] {9029d5c4-115d-4eef-844c-8c18d246b0e8} <Trace> AccessRightsContext (testdb): Access granted: dictGet() ON testdb.test_dictionary
2020.08.05 15:55:51.327239 [ 190 ] {9029d5c4-115d-4eef-844c-8c18d246b0e8} <Trace> AccessRightsContext (testdb): Access granted: dictGet() ON testdb.test_dictionary
2020.08.05 15:55:51.327255 [ 190 ] {9029d5c4-115d-4eef-844c-8c18d246b0e8} <Trace> AccessRightsContext (testdb): Access granted: dictGet() ON testdb.test_dictionary
2020.08.05 15:55:51.331400 [ 150 ] {9029d5c4-115d-4eef-844c-8c18d246b0e8} <Trace> AccessRightsContext (testdb): Access granted: dictGet() ON testdb.test_dictionary
2020.08.05 15:55:51.331429 [ 150 ] {9029d5c4-115d-4eef-844c-8c18d246b0e8} <Trace> AccessRightsContext (testdb): Access granted: dictGet() ON testdb.test_dictionary
2020.08.05 15:55:51.331442 [ 150 ] {9029d5c4-115d-4eef-844c-8c18d246b0e8} <Trace> AccessRightsContext (testdb): Access granted: dictGet() ON testdb.test_dictionary
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
собственно все сообщения такие
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
dmitry sevastyanov
я его просто смотрю через tail -f и никаких сообщений прост не падает, тестирую на локале пока
это я писал про clickhouse-server.err.log, ожидал там увидеть ошибку
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
dmitry sevastyanov
это я писал про clickhouse-server.err.log, ожидал там увидеть ошибку
мой пример попробуйте
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
мой пример попробуйте
да, ваш пример работает, ~ раз в 5сек обновляет
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
dmitry sevastyanov
да, ваш пример работает, ~ раз в 5сек обновляет
а mysql какой у вас?
источник

ds

dmitry sevastyanov in ClickHouse не тормозит
но странно что не вижу в логе похожих на ваши сообщения, только это:
2020.08.05 16:14:28.060467 [ 200 ] {7366b92e-829f-4287-a769-0be03a9877ad} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:28.068312 [ 200 ] {7366b92e-829f-4287-a769-0be03a9877ad} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
2020.08.05 16:14:33.335095 [ 200 ] {9c0c3245-58f8-49bf-aa1e-194eceaf0b95} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:33.335555 [ 200 ] {9c0c3245-58f8-49bf-aa1e-194eceaf0b95} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
2020.08.05 16:14:34.075098 [ 200 ] {20854307-f847-4c7f-b0c7-de9c43574c43} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:34.075255 [ 200 ] {20854307-f847-4c7f-b0c7-de9c43574c43} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
2020.08.05 16:14:34.775005 [ 200 ] {d6602cad-f7f6-4bc3-b87e-d8bf7878a10d} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:34.775451 [ 200 ] {d6602cad-f7f6-4bc3-b87e-d8bf7878a10d} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
2020.08.05 16:14:35.442858 [ 200 ] {92d86932-59fa-48d8-a4cc-7b0eaa5a7606} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:35.442980 [ 200 ] {92d86932-59fa-48d8-a4cc-7b0eaa5a7606} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
2020.08.05 16:14:36.119016 [ 200 ] {1c5167ec-afaa-4b63-8a5e-da93846c7881} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:36.119442 [ 200 ] {1c5167ec-afaa-4b63-8a5e-da93846c7881} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
2020.08.05 16:14:36.623015 [ 200 ] {0de29a00-5950-4e78-b4a1-7cd1f744bad2} <Debug> executeQuery: (from 127.0.0.1:55872, user: test) SELECT * FROM test.test_dictionary
2020.08.05 16:14:36.623472 [ 200 ] {0de29a00-5950-4e78-b4a1-7cd1f744bad2} <Trace> AccessRightsContext (test): Access granted: SELECT(id, t) ON test.test_dictionary
источник