
ClickHouse не тормозит, но не умеет в DML. Часть 1. Мутации
select_zvezdo4ka_from 17 минут назад ClickHouse не тормозит, но не умеет в DML. Часть 1. Мутации Простой 5 мин 547 Data Engineering * Big Data * Базы данных * Карьера в IT-индустрии Учебный процесс в IT Туториал Нет,...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. select_zvezdo4ka_from 17 минут назад ClickHouse не тормозит, но не умеет в DML. Мутации Простой 5 мин 547 Data Engineering * Big Data * Базы данных * Карьера в IT-индустрии Учебный процесс в IT Туториал Нет, клик не превратится в этого монстра. В него превратитесь вы, если не будете знать того, о чем эта статья.
Про особенность хранения данных в клике сказано многое, но сегодня мы взглянем своими на глазами на то, как один элементарный запрос на изменение одной строки может практически убить сервер. Для начала стоит сказать, что мутации - это механизм, через который реализовано изменение, удаление, добавление данных (DML). Один из них вполне безобидный, а вот два других могут доставить много проблем.
Технические детали
И так, начнем с безобидного, но подводящего к краю пропасти. про куски данных и слияния говорить не будем, об этом уже сказано много, в т. в документации, которую оставил выше.
Мы же в статье займемся экспериментами, а не теорией. Добавление новых данныхИмеется: клик, поднятый в докере, версия 25. 3 (в последних все то же самое, и это будет всегда неизменным).
Создадим таблицу t1 с одной колонкой id и двумя записями - 1 и 2. create table t1 engine=MergeTree order by id as (select 1 as id union all select 2 as id);Получаем такую табличку: А теперь посмотрим, где данные физически хранятся. В этом поможет системная таблица system.
Отраслевые последствия
parts и колонка path: select path from system. parts where table = 't1';Видим путь, и мы должны идти по нему: Вот, что по этому пути располагается: Директория detached - это "отсоединенные" куски данных. Нас это не сильно волнует, в реальных условиях эта директория, как правило, пустует.
Куда важнее директория all_1_1_0, являющаяся куском данных и содержащая множество файлов, среди которых главный - data. binИменно в нем физически хранятся данные. Остальные файлы в рамках изучения мутаций нас не интересуют.
Теперь, когда мы увидели, где и как хранятся данные, вставим новую строку: insert into t1 values(3);И взглянем в system. parts: Видим, что теперь два пути! Появился новый all_2_2_0.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





