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

Прошу еще один совет. Делаю импорт в кликхаус из внешней БД

(постгре) через ODBC.
На очередной итерации имею массив айдюков источника, которые изменились или добавились (по last_update).
Не хватает операции типа UPSERT/MERGE, чтобы только лить изменения - приходится сначала удалять старые записи, так как дубли (старые и новые) не допустимы по бизнес логике.

Как лучше всего сделать эффект UPSERT/MERGE?

Видел ReplacingMergeTree - но там прямо пишут, что не расчитывайте, оно будет чистить в фоне, существование дублей возможно какое-то время.
Тоже самое с CollapsingMergeTree - это асинхронно, кроме того, это менее удобно, так как надо писать по две записи (одна из которыз сторнирующая).

1 ответов

9 просмотров

сколько записей? с ReplacingMergeTree можно жить, но нужно учитывать возможность дублей(либо составлять так что бы дубли не мешали, либо писать FINAL но это дольше будет, возможно сильно дольше)

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
например asm AT&T ... label: .string "hi" ... # not error lea label(%rip), %rax # error ( not compile ) mov %rip, %rax # not error mov (%rip), %rax из форумов прочитал чт...
Simple Sorcerer
6
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
Карта сайта