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

Привет V22.3.2.1 Создал таблицу с движком ReplicatedReplacingMergeTree на кластере из нескольких шардов

с репликами
вставил две строки с одинаковым набором полей из order by, делаю запрос с final, получаю две строки, ожидаю одну

нашёл похожий запрос на гите с ответом
Merge combines parts over partition. If you have duplicates in different partitions or at different servers they will not be removed / merged.

данные лежат в одной партиции, получается если они попали на разные сервера, то дубли не удалятся?

5 ответов

7 просмотров

Первое обновитесь до последней версии 22.3, второе покажите ddl и что вы вставили

Roman-Дубатов Автор вопроса
Константин
Первое обновитесь до последней версии 22.3, второе...

обновление в процессе ddl create table table_replica ( timestamp DateTime, account_id UInt64, application_id UInt64, platform Enum8(...), type Enum8(...), count UInt64 ) engine = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/{database}/{table}', '{replica}') PARTITION BY toYYYYMMDD(timestamp) ORDER BY (timestamp, account_id, application_id) SETTINGS storage_policy = 'waterfall', index_granularity = 8192; строки 2022-10-01 00:00:00|1000|100|TYPE_SMTH|TYPE_AAA|225132 2022-10-01 00:00:00|1000|100|TYPE_SMTH|TYPE_AAA|245840

Roman Дубатов
обновление в процессе ddl create table table_repl...

сделайте select hostName(), * from clusterAllReplicas('{cluster}', default.table_replica) без final для начала надо понять, как действительно эти две строки раскидало по нодам

Roman-Дубатов Автор вопроса
ivan
сделайте select hostName(), * from clusterAllRepli...

получил 4 записи с разных хостов 2 строки из примера на разных шардах + их реплики

Roman Дубатов
получил 4 записи с разных хостов 2 строки из приме...

ок, по дефолту дедупликация в ReplacingMergeTree идёт в рамках партиции на ноде select final дополнительно умеет удалять дубликаты из разных партиций (есть настройка do_not_merge_across_partitions_select_final, чтобы тюнить это поведение) в выборке, но вроде удалять дубликаты из разных нод не обучен. местные знатоки меня поправят, если неправ

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

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

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
Есть сайт. Там была древняя версия эво. Стоял плагин, который каждый коммент в Jot делал отдельной страницей. После обновления все слетело, теперь старница открывается отдельн...
Artem
1
Всем привет! Кто нибудь парсил в ручную JSON без библиотек и фреймворков? Есть может ссылки на оптимальный алгоритмы работы с текстом и примеры таких парсеров?
Lem
27
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
Добрый день. А shovel'ы можно как-то сконфигурировать в definitions.json? Пробовал что-то вроде: { "users": [ { "name": "agent", "password_hash": "RBCbTzQd...
Aleksey
1
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Карта сайта