Обсуждаем ClickHouse
Джойн нагенерит декартово произведение, а предикат его так же зафильтрует.
Читать полностью…Фильтр where будет фильтровать уже сджойненные строки, так что нулей не будет все равно.
Читать полностью…Если нужно добавлять недостающие даты то проще всего order by fill
Если отдельно нужно сгенерить данные, то range и array join или numbers
Да. И чтобы группировать по кривым периодам.
Читать полностью…Привет! Спрашивал в англоязычном чате, но там не очень активное сообщество.
Допустим, у меня есть требование: генерировать агрегаты по периодам дат.
SELECTИ получаю
dp.start,
COLESCE(COUNT(d.value), 0) AS some_agg
FROM date_periods dp
LEFT JOIN data d
ON d.date >= dp.start
AND d.date < dp.end
— AND some business predicate
GROUP BY dp.start
Cannot determine keys in JOIN ON expression.
WITH enriched_date_periods AS (Так работает, но есть ли какой-то более изящный способ получить агрегаты? Читать полностью…
SELECT
start,
end,
some_expression as dim_value
FROM date_periods
)
SELECT
dp.start,
COLESCE(COUNT(d.value), 0) AS some_agg
FROM enriched_date_periods dp
LEFT JOIN data d
ON d.date >= dp.start
AND d.date < dp.end
AND d.dim_value = ds.dim_value
— AND some left business predicate
GROUP BY dp.start
а что за движок у таблицы?
optimize_on_insert ? https://github.com/ClickHouse/ClickHouse/issues/25724
ClickHouse и Cassandra: что скрывают highload-системы
16 октября в 18:00 на митапе 43Tech — три реальных кейса от инженеров, которые ежедневно работают с высоконагруженными хранилищами и миллиардами записей.
🟡Cassandra для маркировки товаров: как UDT помогают (и вредят), какие архитектурные решения работают и как можно оптимизирвать структуры данных
🟡ClickHouse без боли: эффективная запись данных, дедупликация и настройки, которые реально ускоряют вставку.
🟡Расскажем про цену «нулевой потери данных», как мы выбирали между производительностью и надёжностью при использовании Cassandra.
Митап пройдет в гибридном формате: вы можете присоединиться лично или онлайн.
Участие бесплатное, ссылку на трансляцию пришлем накануне.
Регистрация и подробности по ссылке: https://career.crpt.ru/events/database-meetup
Чат для общения и нетворкинга: /channel/+N2GU6FaVzPhlNmYy
Я вообще про Enterprise говорил, а не однонодовую хрень на локальном компе
Читать полностью…а в чем проблема с if not exists?
create database test if not exists on cluster xxx
А вот это, архитектурно вызывает мега-вопросы.
Идея, почему так сделано, понятна - исторически сложилось (кстати "он кластер" появилось совсем недавно ,не мне Вам говорить).
Текущая ситуация с репликацией и понятна и алогична. Просто на ее алогичнсть особо никто не наталкивался, а те кто наталкивался считали это мелочью (да и я считаю мелочью, если честно) - какой вопрос пересоздать бд или ещё что-то.
А по сути же, интересно посмотрите статистику, кто создаёт таблицу без реплики, если у тебя 100500 шардов, по 3 реплики( да хотя бы 2 шарда) и 3 реплики для отказоустойчивости
Гляньте просто в зк и посмотрите. Вообще ничего сложного.
Читать полностью…Я это понимаю прекрасно. Проблема в друго. Что понятие шард игнорируется. А ведь это важно. Это вопрос к архитектуре
Читать полностью…То есть минимальная единица кластера это таблица, а не кликхаус
Читать полностью…О нет! Не так. Или я что-то не так читаю но replicated на порядок сложнее
Читать полностью…О, я придумал! Чтобы добавить недостающие даты можно еще раз наджойнить периоды в конце.
Читать полностью…Так я и говорю что надо другой тип join - cross. В календаре мало строк поэтому это прекрасно работает
Читать полностью…не понятно все равно, пример в https://fiddle.clickhouse.com/ сделайте
как будто вам нужен cross join и фильтры в where
с другой стороны я делал что-то похожее через array join создавая 0 на каждую дату
в смысле нужен join с календарем чтобы 0 отобразить когда данных нет?
Читать полностью…AggregatingMergeTree. ох, точно вся ветка выполняется только когда стоит optimize_on_insert https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergeTreeDataWriter.cpp#L754-L758 Нижайший вам поклон, спасибо!
(только сегодня пересматривал Star Trek Original Series, и человек с аватаркой James T Kirk мне помог, вот это день))
Привет. При вставках батчей по ~ 150k самая медленная часть - это MergeTreeDataWriterMergingBlocksMicroseconds: 380890, 380ms. Учитывая что данных в батче ~ 100mb которые по итогу сжимаются в ~ 5mb, 380ms кажется слишком большим. Что же такое MergeTreeDataWriterMergingBlocks делает и можно ли это как-то ускорить? В данных есть колонка array
Читать полностью…Тут спецы. Но мало ли может кому интересно.
Читать полностью…Да не вопрос. Вы пробовали использовать ну я не знаю, представьте себе в Москве надо евророзетку. Можно сделать? Можно конечно. Геморрой это? Конечно. Какое у вас будет отношение к такой гостинице? (Ну может быть вы такой человек кому нравятся хитрожопости - хызы, тогда не вопрос)
Читать полностью…ну спокойно создают пользователи, чтобы поиграться с данными
Читать полностью…Шард - это лишь часть. Что там будет зависит от вас. Вдруг у вас просто словари в одном шарде.
Читать полностью…ну понятие шард, так же распроняется только на таблицу.
Читать полностью…то есть, у вас может быть 3 реплики и 3 шарда у одной таблицы, а у другой просто 9 реплик.
Читать полностью…это просто мета информация. У вас в одном кликхаусе он для одной таблице, может быть шардом, для другой репликой.
Читать полностью…вы чучуть думаете, что кликхаус это кластер. по факту, то что вы описываете в xml как cluster, это вообще никак не аффектит кликхаус.
Читать полностью…