У нас вы можете посмотреть бесплатно Новый тип JSON от ClickHouse: превосходит Elasticsearch, DuckDB и MongoDB. или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Это перезапись доклада Роберта Шульце (менеджера по разработке) из ClickHouse, прочитанного на конференции FOSDEM 2025.
JSON стал универсальным языком для обработки полуструктурированных и неструктурированных данных в современных системах обработки данных. Будь то сценарии логирования и мониторинга, потоковая передача данных в реальном времени, хранение данных в мобильных приложениях или конвейеры машинного обучения, гибкая структура JSON делает его предпочтительным форматом для сбора и передачи данных в распределенных системах.
В ClickHouse мы давно осознали важность бесшовной поддержки JSON. Но, несмотря на кажущуюся простоту JSON, его эффективное использование в масштабе сопряжено с уникальными проблемами. В этом докладе мы обсудим, как мы создали новый мощный тип данных JSON для ClickHouse с истинным столбцово-ориентированным хранением, поддержкой динамически изменяющейся структуры данных и возможностью очень быстрого запроса отдельных путей JSON.
Проект ClickHouse с открытым исходным кодом: https://github.com/ClickHouse/ClickHouse Ссылки по теме: https://github.com/ClickHouse/ClickHo... https://github.com/ClickHouse/ClickHo... https://github.com/ClickHouse/ClickHo... https://github.com/ClickHouse/ClickHo...
ClickHouse предоставляет высокопроизводительный собственный тип данных JSON для аналитики, превосходящий Elasticsearch, DuckDB и MongoDB в тестах на 1 миллиарде документов JSON. Эта возможность использует столбцовую архитектуру ClickHouse для полуструктурированных данных, избегая чрезмерных затрат на десериализацию, связанных с хранением целых объектов JSON в виде строк. Реализация рассматривает каждый документ JSON как набор путей и хранит каждый путь в отдельном столбце, что позволяет быстро выполнять векторизованную фильтрацию и агрегацию непосредственно по полям JSON.
Для обработки бессхемных и гетерогенных данных JSON ClickHouse вводит тип данных `Dynamic` в качестве основного строительного элемента. Блок. Столбец с типом `Dynamic` может хранить значения любого типа данных, обнаруженного во время выполнения, без предопределенной схемы. Он внутренне создает выделенные, плотные подстолбцы для каждого обнаруженного типа, что решает проблему производительности разреженных столбцов, распространенную в анализе полуструктурированных данных. Этот подход обеспечивает прямое решение для хранения JSON-путей с различными типами данных (например, целое число в одном документе, строка в другом) в рамках единой столбцовой структуры, учитывающей типы.
Тип `Dynamic` построен на основе типа данных `Variant`, который действует как объединение нескольких подтипов. Тип `Variant` позволяет одному столбцу эффективно хранить значения разных типов, используя столбец-дискриминатор для отслеживания типа каждого значения и столбец-смещение для сопоставления с правильным значением, хранящимся плотно в соответствующем столбце подтипа. Это внутреннее представление гарантирует, что данные не хранятся разреженно, даже если определенный JSON-путь встречается нечасто.
Для настройки производительности и управления схемами с Благодаря большому количеству уникальных путей, тип JSON предлагает специальные возможности управления. Параметр `max_dynamic_paths` ограничивает общее количество путей JSON, хранящихся в виде отдельных подстолбцов, предотвращая «лавину столбцов». Параметр `max_dynamic_types` устанавливает верхний предел количества подтипов, хранящихся в отдельных столбцах для одного пути; любые типы, превышающие этот предел, хранятся вместе в одном, более медленном резервном столбце с использованием простого представления типа и значения. Для часто запрашиваемых полей пользователи также могут настроить хранение определенных путей JSON в виде обычных высокопроизводительных столбцов ClickHouse для максимальной скорости запросов.
В публично воспроизводимом тесте с использованием сжатого набора данных объемом 125 ГБ, содержащего 1 миллиард событий BlueSky, встроенная поддержка JSON в ClickHouse продемонстрировала, что это самая быстрая база данных для выполнения аналитических запросов, показав превосходную производительность по сравнению с Elasticsearch, DuckDB, MongoDB и PostgreSQL.