@clickhouse_ru

Страница 673 из 723
Александр
25.09.2018
12:03:24
Сейчас пофиксил тем, что поменял в конфиге дефолтную таблицу на ту в которой КХ пытается найти локальную для рпаспределенного запроса

Мутации полетели ппц как

Alexey
25.09.2018
12:04:17
дефолтную датабазу наверное?

Александр
25.09.2018
12:04:27
Google
Александр
25.09.2018
12:04:53
Просто у меня запрос был типа ... delete where column global not in (select ... from distributed_table ...)

и вот таблица из которой я удаляю, лежит например в базе some_db вместе с distributed_table, но почему-то КХ при интерпретации запроса внутри global not in пытается таблицу найти в default базе

Подменил default на нужную и мутации поперли, но мне кажется это косяк. Мутацию я запускал будучи в нужной базе данных

Alexey
25.09.2018
12:09:17
а вы явно указали DB.TABLE или просто TABLE?

Александр
25.09.2018
12:10:50
а вы явно указали DB.TABLE или просто TABLE?
Просто table, но повторюсь, я был внутри нужной БД. Видимо КХ при отправке запроса на шард не передает таблицу и непонятно правильно это или нет. Похоже, что лучше явно указывать

Alexey
25.09.2018
12:12:02
Просто table, но повторюсь, я был внутри нужной БД. Видимо КХ при отправке запроса на шард не передает таблицу и непонятно правильно это или нет. Похоже, что лучше явно указывать
может, он передает запрос как есть на все щарды, и когда на другом шарде прилетает в запросе только TABLE, откуда он знает, в какой бд вы находились?

Alexey
25.09.2018
12:12:55
Ну это уже вопрос с КХ :)
да, тут лучше явно указывать :)

можно при отправке запросов на шарды подставлять в запрос бд, в которой вы находитесь, если она не указана, хм

Denis
25.09.2018
12:33:37
Просто table, но повторюсь, я был внутри нужной БД. Видимо КХ при отправке запроса на шард не передает таблицу и непонятно правильно это или нет. Похоже, что лучше явно указывать
в смысле дистрибьютид создана как currentDatabase() ? я бы вообще not in distributed поостерегся запускать, так легко можно все записи снести, из-за маленького бага

Dasha
25.09.2018
13:01:04
Добрый день! match('https//domain.ru/?', '.*.*\/\/domain\.ru\/{0,1}(\?.*){0,}$') выдаёт ошибку DB::Exception: Exception: OptimizedRegularExpression: cannot compile re2

Почему это может происходить?

Alexey
25.09.2018
13:03:59
Добрый день! match('https//domain.ru/?', '.*.*\/\/domain\.ru\/{0,1}(\?.*){0,}$') выдаёт ошибку DB::Exception: Exception: OptimizedRegularExpression: cannot compile re2
:) select match('https//domain.ru/?', '.*.*\/\/domain\.ru\/{0,1}(\\?.*){0,}$') SELECT match('https//domain.ru/?', '.*.*//domain.ru/{0,1}(\\?.*){0,}$') ┌─match('https//domain.ru/?', '.*.*//domain.ru/{0,1}(\\?.*){0,}$')─┐ │ 1 │ └──────────────────────────────────────────────────────────────────┘ 1 rows in set. Elapsed: 0.006 sec.

Google
Alexey
25.09.2018
13:05:05
Почему это может происходить?
Поэтому, чтобы экранировать символ в регулярном выражении, необходимо написать в строковом литерале \ (два обратных слеша).

Dasha
25.09.2018
13:05:44
Спасибо большое!

Vadim
25.09.2018
13:11:21
длительное расхождение чексум смердженных блоков может приводить к удалениям? Перезагружал серверы и пропали данные за 1ч45 минут, хотя в тот момент они были. В лога все ещё идут

<Error> default.graphite (StorageReplicatedMergeTree): Code: 228, e.displayText() = DB::Exception: Unexpected uncompressed size of file Date.bin in data part, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.

серверы нельзя перезагружать?

Wolf
25.09.2018
13:12:16
ну там же написаны причины причем тут перезагрузка то ?

перезагружайте сколько хотите все будет от лично работать

Vadim
25.09.2018
13:16:30
Как узнать, куда делись данные?

Мутаций не было на это время

Wolf
25.09.2018
13:18:23
ну вы сами написали выше причины

Vadim
25.09.2018
13:32:48
это может приводить к удалению данных ?

Ещё в еррор-логе нашел такие сообщения: <Error> HTTPHandler: Cannot send exception to client: Code: 24 , e.displayText() = DB::Exception: Cannot write to ostream at offset 101294441, e.what() = DB::Ex ception, Stack trace: 0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x48abed6] 1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x2682dcf] 2. /usr/bin/clickhouse-server(DB::WriteBufferFromOStream::nextImpl()+0xba) [0x48d1b5a] 3. /usr/bin/clickhouse-server(DB::WriteBufferFromHTTPServerResponse::nextImpl()+0x8e) [0x48d13ee] 4. /usr/bin/clickhouse-server(DB::WriteBuffer::next()+0x26) [0x2682ed6] 5. /usr/bin/clickhouse-server(DB::HTTPHandler::trySendExceptionToClient(std::string const&, int, Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x1b7) [0x2696097] 6. /usr/bin/clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x673) [0x269c593] 7. /usr/bin/clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x23e) [0x49f300e] 8. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x49eefaf] 9. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x110) [0x49ef610] 10. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x77) [0x4a4df27] 11. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x4a4b488] 12. /usr/bin/clickhouse-server() [0x4d3fe1f] 13. /lib64/libpthread.so.0(+0x7e25) [0x7f21a1888e25]

кто-то сталкивался?

Пардон, это в селекте

также вижу в логах <Error> default.graphite (StorageReplicatedMergeTree): void DB::StorageReplicatedMergeTree::queueUpdatingTask(): Code: 999, e.displayText() = ZooKeeperImpl: :Exception: Session expired (Session expired), e.what() = ZooKeeperImpl::Exception, Stack trace: перезагружались зукиперы, менялась конфигурация

мб данные есть, но не смерджены, в system.replicas : queue_oldest_time: 2018-09-25 11:05:14 inserts_oldest_time: 0000-00-00 00:00:00 merges_oldest_time: 2018-09-25 11:05:14

Evgeny
25.09.2018
13:56:11
Скажите ПЛЗ, а в словарях не планируется поддержка массивов и range_complex_key?

Vadim
25.09.2018
14:04:45
ещё обнаружил, что на лидере : echo stat |nc localhost 2181 Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT Clients: /127.0.0.1:57518[0](queued=0,recved=1,sent=0) Latency min/avg/max: 0/0/0 Received: 5 Sent: 4 Connections: 1 Outstanding: 0 Zxid: 0x200001594c Mode: leader Node count: 5826

и на всех фоловерх похожая картина, но на одном: echo stat |nc localhost 2181 Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT Clients: /127.0.0.1:44346[0](queued=0,recved=1,sent=0) /192.168.148.16:36308[1](queued=0,recved=120425,sent=126354) /192.168.173.134:42344[1](queued=0,recved=66734,sent=69028) /192.168.149.242:37916[1](queued=0,recved=94941,sent=100860) Latency min/avg/max: 0/1/75 Received: 282105 Sent: 296246 Connections: 4 Outstanding: 0 Zxid: 0x2000015980 Mode: follower Node count: 5841

@stufently Не подскажешь, нормально ли это?

Google
Alexey
25.09.2018
14:09:42
никто не в курсе, с MemoryTracking фиксили баг?

в новых будуЮщих релизах

которые в тестинге сейчас

Vadim
25.09.2018
14:20:38
поперезагружал зукиперов, лидером стал зукипер с бОльшими числами в счетчиках, но тепрь данные отличаются на нодах, куда копать?

Denis
25.09.2018
14:27:57
Скажите ПЛЗ, а в словарях не планируется поддержка массивов и range_complex_key?
что такое range_complex_key ? типа ренджи заданы туплами, и ищем значение для тупла (ссс,-111) в ренже (aaa,5) : (bbb,-6) ?

Evgeny
25.09.2018
14:28:22
Тайм-рейндж словари с составными ключами

То есть если в словаре задано что для ключа (1,'asdd') между 24 января и 28 февраля значение есть string1, то запрос для ключа (1,'asdd') для 1 февраля даст string1

Denis
25.09.2018
14:34:23
никто не в курсе, с MemoryTracking фиксили баг?
похоже нет, на пустой базе Connected to ClickHouse server version 18.14.0 revision 54409. SELECT * FROM system.metrics WHERE metric = 'MemoryTracking' ┌─metric─────────┬────────value─┬─description──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ MemoryTracking │ -97679066682 │ Total amount of memory (bytes) allocated in currently executing queries. Note that some memory allocations may not be accounted. │ └────────────────┴──────────────┴

Vadim
25.09.2018
14:35:48
селектом смотрю таблицы и ясно вижу, что на одной из реплик в данных "дыра", как заставить ноду засинкаться с остальных ?

Alexey
25.09.2018
14:54:11
селектом смотрю таблицы и ясно вижу, что на одной из реплик в данных "дыра", как заставить ноду засинкаться с остальных ?
я так делал: на годной реплике detach partition, на проблемной реплике почистить папку detached, и потом на годной attach partition, и проблемная все скачает что надо

но это я давно делал, может просто detach attach подряд поможет

Vadim
25.09.2018
14:55:28
а если это партишен в который сейчас все пишется, и мержди в нем идут, не потеряю ли я больше ?

Alexey
25.09.2018
14:55:55
тогда остановить запись, сделать detach attach, и возобновить запись

Vadim
25.09.2018
14:55:58
@Shegloff Спасибо за помощь

Alexey
25.09.2018
14:56:41
при detach точно ничего не потеряете, просто партиция переместится в папку detached

Vadim
25.09.2018
15:00:21
так в партицию запись идет, и мерджи длительные, что с ними будет?, или при аттаче он прибавит куски?

Slava
25.09.2018
15:00:47
было бы классно иметь какой-то способ наподобие аттач фром чужая папка деаттач

Vladislav
25.09.2018
15:08:59
Всем привет. А почему запросы с SAMPLE могут работать дольше? ? select count() FROM Event SAMPLE 0.1 WHERE (eventDate BETWEEN '2018-09-18' AND '2018-09-25') SELECT count() FROM Event SAMPLE 1 / 10 WHERE (eventDate >= '2018-09-18') AND (eventDate <= '2018-09-25') ┌──count()─┐ │ 30478197 │ └──────────┘ 1 rows in set. Elapsed: 1.913 sec. Processed 108.83 million rows, 5.11 GB (56.90 million rows/s., 2.67 GB/s.) ? select count() FROM Event WHERE (eventDate BETWEEN '2018-09-18' AND '2018-09-25') SELECT count() FROM Event WHERE (eventDate >= '2018-09-18') AND (eventDate <= '2018-09-25') ┌───count()─┐ │ 304903885 │ └───────────┘ 1 rows in set. Elapsed: 0.241 sec. Processed 304.91 million rows, 609.82 MB (1.26 billion rows/s., 2.53 GB/s.)

Google
Slava
25.09.2018
15:13:44
ALTER TABLE t [REPLACE|ATTACH] PARTITION
Обычно мы аттачим из deatached папки нашей таблицы, хочется упростить кейс когда нужно грохнуть партицию в таблице 1 и просто мувнуть такую же партицию из таблицы2 в таблицу 1, в оф доке не видел подобных кейсов.

Vladislav
25.09.2018
15:14:26
Потому что еще читается колонка для семплирования
т.е. ключем семлирования нужно задавать такую колонку, которая и так используется во всех запросах?

У нас почему-то на всех запросах при использовании SAMPLE скорость падает в десятки раз

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

Vadim
25.09.2018
15:18:04
при detach точно ничего не потеряете, просто партиция переместится в папку detached
а если на хосте с "дырой в данных" мердж, включающий эти данные пройдет раньше, на других он скачаетя при расхождении? или качается всегда с лидера?

Vladislav
25.09.2018
15:19:47
Kirill
25.09.2018
15:20:35
А что значит достаточно легкой? Вариативность или размер на диске?
Размер + хеширование должно происходить быстро, рандомные строки точно пихать туда не стоит

Vladislav
25.09.2018
15:22:34
и желательно, что бы это было связано с userid?

у нас просто userid - это uuid4

и мы по нему решили сделать сеплирование

Может сделать колонку с cityHash64(userId) И по нему делать семплирование?

Vadim
25.09.2018
16:02:12
при detach точно ничего не потеряете, просто партиция переместится в папку detached
Провернул это на стейджинге, все вроде вернулось, но на фолловерах остались папки в detached

так и должно быть?

Alexey
25.09.2018
16:15:59
добрый день, а как хранить и менять названия объектов на которые ссылки идут по ID из главной таблицы (редкое событие)? Смотрю на словари, чтоб хранить там пару - ID-Name, но словарь, судя по документации, рефрешится только по времени, по событию нельзя рефрешить. Или я что-то пропустил?

Alexey
25.09.2018
16:25:53
В словаре можно указать поле, при изменении которого словарь (или часть) обновится. Что-то типа updatedAt
То есть условно говоря я настраиваю внешнюю таблицу через odbc, ставлю интервал апдейта раз в секунду и указываю поле?

Google
Tima
25.09.2018
16:27:14
Если вам достаточно интерфала апдейта - больше ничего делать не нужно. Если вам нужно прям свежие данные иметь, можно заморочиться с опцией invalidate_query

Alexey
25.09.2018
16:27:18
И он будет раз в секунду дергать мой запрос

Понял, хотел уточнить - нет ф-ции, которая говорит:сходи и обнови словарь?

Tima
25.09.2018
16:28:09
И он будет раз в секунду дергать мой запрос
Тут не скажу, нужно пробовать

Есть команда обновления всех словарей или части

Alexey
25.09.2018
16:29:12
Tima
25.09.2018
16:29:51
SYSTEM RELOAD DICTIONARY имя словаря

https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md

Alexey
25.09.2018
16:30:10
Ок, понял

Wolf
25.09.2018
16:32:22
@stufently Не подскажешь, нормально ли это?
мне кажется проще понять причину узнав что вы делали до этого не правильно , любые сервера можно перезагружать с кх, зукиперы конечно не надо все разом ложить

Vadim
25.09.2018
16:46:57
мне кажется проще понять причину узнав что вы делали до этого не правильно , любые сервера можно перезагружать с кх, зукиперы конечно не надо все разом ложить
Но даже если без кворума зукиперов какое-то время кластер был, таблица была в РО, потом отпустило. Все равно не могу понять, куда могли деться данные. Все из-за расхождения чексум одного куска?

daria
25.09.2018
16:47:22
у кого-то еще есть проблемы с выгрузкой из Метрики по апи? обычный процесс уже неделю или две занимает примерно в 10 раз больше времени

Wolf
25.09.2018
16:47:29
ну видите вы делали видимо очень много странных вещей сказать что именно стало причиной сложно

daria
25.09.2018
16:47:47
выполнение из крона отваливается и срабатывает примерно раз в неделю

Vadim
25.09.2018
16:52:40
ну видите вы делали видимо очень много странных вещей сказать что именно стало причиной сложно
селекты делал, добавлял зукипер-сервер в кластер, деструктивного ничего. Интресуют в принципе сценарии, как можно удалить данные в партиции(кусок, несколько?) без команды "ALTER TABLE ... DELETE WHERE ..." ?

Wolf
25.09.2018
16:53:07
ну собственно говоря добавление зукипера могло все сломать

Vadim
25.09.2018
16:53:17
DETACH / ATTACH на проде также ещё не делал

Wolf
25.09.2018
16:53:41
добавили два новых зукипера ? не развалился кластер на два лидера случаем ?

Vadim
25.09.2018
16:53:48
ну собственно говоря добавление зукипера могло все сломать
каким образом? все забыли прокусок данных при появлении пустого зукипера?

один добавили

Wolf
25.09.2018
16:54:14
ну как вы могли добавить один зукипер если их должно быть не четное количество

Vadim
25.09.2018
16:54:22
и у всех одна конфигурация

Страница 673 из 723