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

Привет! На кластере реализована следующая архитектура: cronjob -> kafka -> stream table

-> MV -> ReplicatedReplacingMergeTree table.
В kafka могут попадать дублирующиеся записи, которые не нужно записывать в CH.
Нужно построить над конечной таблицей несколько ReplicatedSummingMergeTree MV, сейчас при попадении дубликатов в таблицу данные в MV дублируются.
MV с argMaxState работает медленно ((
Как можно избежать вставки дублирующих записей из kafka?

10 ответов

6 просмотров

КХ тут не поможет. Надо делать до.

Дублирующие записи в разных батчах прилетают в кх? Если в одном, то разве в первом mv их нельзя исключить? Если в разных, то только конечным запросом их убирать (даже если и появилась возможность вешать mv над mv, но replacingmergetree работает в фоне, поэтому поставив над ним summingmergrtree, туда в любом случае улетят дубликаты, так как фон не успеет отработать)

serge- Автор вопроса
Munir
Дублирующие записи в разных батчах прилетают в кх?...

Да, прилетают в разных батчах. Как можно отфильтровать уникальные записи по PK в рамках одного батча с помощью MV?

Munir
Дублирующие записи в разных батчах прилетают в кх?...

Какой фон? Mv над mv над mv получает записи от инсерта. Не важно сколько там глубина. Не от таблицы.

Denny [Altinity]
Какой фон? Mv над mv над mv получает записи от инс...

Сорри, с общим принципом наврал, но с конечным результатом нет.

serge- Автор вопроса
serge
Спасибо!

Сейчас меня опять поругают,) но я бы попробовал (а вдруг сработает) сделать в mv not in из view над таблицей (которая после mv) . Если все оттюнить и вставка не очень масштабная, то есть вероятность, что может помочь.

Munir
Сейчас меня опять поругают,) но я бы попробовал (а...

Ага сработает если один инсерт в день. Ну нельзя проверить есть такой ключ в таблице или нет. Это слишком медленно. И не работает для многопоточности. Два одновременных инсерта навставляют дубликаты.

Denny [Altinity]
Ага сработает если один инсерт в день. Ну нельзя ...

Я не решение предлагал, а вариант, который стоит рассмотреть. Мы не знаем какие данные, какие дубликаты, какой трафик льётся. Поэтому есть вероятность, что дубликаты по дате, и если групбаем убирать внутри батча, то останутся только в соседних. Есть вероятность, что там же и ключи, то выборка двух-трех батчей по ключам будет не слишком дорогая. Ну и есть вероятность, что там один поток на шард.)

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
1
Подскажите пожалуйста, а я могу вот такую штуку использовать? rpc, только реализованное в реббите https://www.rabbitmq.com/tutorials/tutorial-six-php ( или https://habr.com/ru...
Artyom
11
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Всем привет! У меня почему-то по-разному отображается TListView в Debug и Release режимах (FireMonkey)! При запуске под Win приложения TListView заливается программо. в Debug ...
Александр COM
8
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
Карта сайта