184 похожих чатов

Доброе утро, коллеги! Может вы что-то подскажите по следующей ситуации. Загружаем

словари в витрины в CH по следующему алгоритму:
- создали 2 таблицы с одинаковой структурой: целевая и tmp; имена разные.
- ключ партиционирования batch_id (все записи грузятся с одним batch_id, но день ото дня он разный)
- загрузили данные в tmp
- 2 операции move partition: старый батч из целевой -> в tmp, и новый из tmp -> в целевую.
- при следующей загрузке - truncate tmp. И алгоритм выше.
Грузим ежедневно 100500 словарей, все автоматизировано, алгоритм одинаковый для всех.

Но один конкретный словарь периодически остаётся пустым.

По приложению, через которое грузим (etl) ошибок нет.
Если тут же повторить загрузку конкретно для этого словаря - данные появляются.
По логам CH: 2 запроса, один insert, второй move. Ошибок нет. Insert успешно, на 824тыс.записей.

Не отрабатывает insert. Move потом успешно перемещает ничего в целевую.
Куда хоть копать?

Единственное, таблицы старые, после их создания меняли маску пути в зукипере на uuid. Пересоздала словарь - не помогло.

27 ответов

61 просмотр

движок какой у tmp и в целевой? ReplicatedMergeTree?

Maria Besedina
да

тогда может INSERT в таблицу скипаться через дедупликацию если это один блок и он имеет теже самые значения по контрольнной сумме среди 100 последних вставленных блоков

> - загрузили данные в tmp если тут INSERT и tmp Replicated тогда если это теже самые значения. INSERT скипнется.. хотя у вас batch_id меняется... может не меняется? может повторяться среди последних 100 insert?

Maria-Besedina Автор вопроса
Slach [altinity]
> - загрузили данные в tmp если тут INSERT и tmp ...

меняется, это автоинкрементное поле из постгреса смотрела это уже, блок один, и он разный день ото дня - и батч разный и кол-во записей\байт в блоке

Maria-Besedina Автор вопроса
Slach [altinity]
system.part_log смотрели по времени на NewPart ?

посмотрела, все корректно: - 5-9 строки - загрузка, которая вернула пустую таблицу - 1-4 - повтор загрузки, который вернут корректный результат - 8 строка - как раз вставка в tmp, батч 50032 ( = 3 строке из повторной загрузки)

Maria Besedina
посмотрела, все корректно: - 5-9 строки - загрузка...

а можно system.query_log query и event_time все таки посмотреть чтобы понять в каком порядке и что именно вы делаете? я правильно понимаю.. вы это запускаете только на одной реплике? или паралельно сразу на нескольких репликах? расшарьте на pastila.nl ?

Maria-Besedina Автор вопроса
Slach [altinity]
а можно system.query_log query и event_time все та...

пара глупых вопросов: нужен "дамп" с таблицы system.query_log, верно? в каком виде и с фильтрацией по интересующим таблицам? что значит "и event_time"? да, выполняем на одной машине, на вторую "реплицируется" через ZK

Maria Besedina
пара глупых вопросов: нужен "дамп" с таблицы syst...

SELECT query, event_time FROM system.query_log WHERE has(tables,'...') OR has(tables,'...') AND event_date=... AND event_time BETWEN ... почитайте про system.query_log вообще

Maria-Besedina Автор вопроса
Slach [altinity]
SELECT query, event_time FROM system.query_log WHE...

в каком формате нужно выложить на pastila.nl ? чтобы это читаемо было я уточняла про формат, что такое query_log - известно

Maria-Besedina Автор вопроса
Maria Besedina
screenshot в каком формате нужно выложить на pastila.nl ? что...

select * from system.query_log where (has(tables, 'ims.dic_meg_pos') or has(tables, 'service_part.ims_dic_meg_pos')) and event_date = '2023-10-26' and event_time between '2023-10-26 13:00:00' and '2023-10-26 13:46:00' order by event_time_microseconds desc ;

Maria Besedina
select * from system.query_log where (has(table...

ну... все верно... катинкой то результат зачем шарить? pastila.nl он для текста... попробуйте использовать clickhouse-client вместо JetBrains это надежнее и информативнее...

глядя на картинку вы паралельно партиции пытаетесь move делать? так?

Maria-Besedina Автор вопроса
Slach [altinity]
глядя на картинку вы паралельно партиции пытаетесь...

все последовательно очистили service_part залили в service_part партицию 50032 узнали, какая партиция в ims (49955) переместили ims->service_part партицию 49955 переместили service_part->ims партицию 50032

Maria-Besedina Автор вопроса
Slach [altinity]
ну логи показывают что это не так

да, согласна, последние 2 альтера в параллель

Maria Besedina
screenshot в каком формате нужно выложить на pastila.nl ? что...

будем общаться картинками, может ощуитте на себе всю боль

Maria-Besedina Автор вопроса
Maria Besedina
все последовательно очистили service_part залили ...

результат этих операций: 49955 - в service_part и null - в ims

Maria-Besedina Автор вопроса

да, поняла подскажите возможные причины такого поведения?

Maria Besedina
да, поняла подскажите возможные причины такого пов...

ну попробуйте ALTER все таки последовательно сделать ... а не паралельно... если partition by у вас это batch_id то вроде бы должно норм отработать... ну и в логах поискать что там было в /var/log/clickhouse-server/clickhouse-server.log по query_id из system.query_log

Maria-Besedina Автор вопроса
Maria-Besedina Автор вопроса
Slach [altinity]
ну попробуйте ALTER все таки последовательно сдела...

у нас уровень лога Warning нужно до debug поднять, верно?

Maria-Besedina Автор вопроса

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть Pipeline для GitLab Runner (executor = "shell") В нём есть: default: before_script: - set -eo pipefail - source "$(~/bin/trdl use werf 2 stable)" - source...
Aleksandr Karabanov
1
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта